Professional Documents
Culture Documents
Wanda Alexander
October 1, 2017
In todays fast-changing business environment, organizations must be agile to adapt their products
and processes to respond to their customer needs. Software development is becoming increasingly more
integral to organizations effectiveness and efficiency and they are discovering their biggest hurdle to
running an agile business is the development processes used by their IT departments (Laanti, 2012).
Many organizations use the Waterfall approach despite the barriers it raises in the area of change and
innovation, high project rates of failure and widespread customer dissatisfaction. Modern day approaches
based on iterative and incremental delivery, are designed to adapt to change throughout the project
lifecycle. These approaches are based on using quality techniques that have been proven in product
development and delivers different levels of flexibility and responsiveness that was previously
unachievable in software development. Organizations can respond quickly to customer needs, deliver
product solutions rapidly and adapt to change more efficiently using the Agile approach (Pierce, 2016).
When it comes to developing new software applications and systems, a large majority of the
organizations today choose the Agile approach. Agile software development recognizes the fact that
software development is a type product development and a learning process curve will exist. It is iterative,
explorative and designed to make learning as efficient and as quickly as possible. Quality in a software
development project is judged by its fitness for use which means Agile is designed to support the needs of
organizations (Radigan, 2017). Most organizations heavily rely upon customized software and large scale
interconnected systems and the Agile software development methodology is used to develop these
sophisticated software applications and systems. Agile emphasizes simple code generation, frequent code
testing, adjusting goals and expectations on a regular basis, delivery of functioning pieces of the software
applications or systems at set intervals and delivering value and quality to the customers. The Manifesto
for Agile software development define the following terms (QAComplete, 2017):
Individual teams and interactions over processes and tools (QAComplete, 2017).
Requirements change management over following the project plan (QAComplete, 2017).
Organizations looking to customize software or large scale systems can benefit from the Agile
Improve Quality This achieved by breaking the project down into manageable units
allowing the project team to focus on developing and testing high quality code. Software
developers working on Agile projects test early, often and as efficiently as possible which is
the key to high productivity. Writing tests before writing code can help prevent defects that
occur do to ambiguous requirements. Automating these tests provides some security for the
software developers giving them an early warning in case the code should inadvertently break
Go to Market Quickly and Improved ROI Organizations are able to free themselves from
being forced to rely on features and deliverables that was proposed months and even years
previously and adjust and deploy much more quickly based on the needs of today. Agile can
quickly produce a working version of the software and deploying functional parts means that
the organization will begin to see ROI much more rapidly (Varhol, 2017).
Risk Management This is accomplished by frequent testing with short feedback loops
making problems discovered and addressed quickly. Functioning code can continue to
operate while any issue that may need to be resolved are addressed in later additions.
Experienced project managers understand the importance of managing risks. They understand
that problems will be found by executing proof of concept tests in the high risk areas. This
way they manage the risk based on fact and surface problems discovered early which will
make it cheaper to resolve. The iterative process uncovers problems early by making the
software development teams execute functioning software from beginning to end starting
with the first iteration. Successful Agile teams make formal risk assessments throughout each
phase of the project and move high risk and high value features to early iterations (Varhol,
2017).
Easy Management of the Project Scope The Agile approach emphasizes a list of
requirements with short development cycles that evolve as the project progresses. This
flexible process leads to predictable release date and budgets that are easy to manage plus it
helps to prevent software development projects from getting out of control (Varhol, 2017).
Improves Decision Making and Promotes Transparency The Agile approach uses software
development practices that allow stakeholders to have early opportunities to have input and
The two best known Agile approaches are Scrum and Extreme Programming (XP). Scrum is a
lightweight method used for planning and executing iterative software development projects. It utilizes
the teams existing software engineering practices. XP also is used for software development on an
iterative development projects and shares many of the same project management practices with Scrum.
XPs power comes in from its use of powerful quality and engineering practices (Habib, 2013). No silver
bullet exists with iterative development projects because it is demanding work. While they are many
advantages in releasing software to customers on a frequent basis, many organizations are not accustomed
to working this way. They initially find it challenging to adapt the processes to Release Management,
iterative basis tend to highlight the existing bottlenecks and dysfunctionality within the organization that
was previously undiscovered and scaling Agile beyond the initial pilot project requires significant change
management skills. The key to overcoming these obstacles is to have commitment from the executive
level to adopt the Agile approach, understand why the Agile approach works across all level and doesnt
create any obstacles. Agile highlights those obstacles and show where to focus efforts to improve
quality software, on time and within the forecasted budget. In todays market there are many available
development and project management methodologies but the agile approach is a fast and an efficient way
to deliver products with less impediments and obstructions in the way (Dawson, 2015). The software is
developed in time boxed units ranging from one to four weeks and are called iterations. Each iteration
produces a functioning piece of the software application or system meeting the requirements, coding,
design and testing. The product owners and/or product managers have to elaborate and define a complete
set of use cases that the product should include. The development starts when all the initial requirements
have been approved. When the development begins, it will last until all the requirements have been coded
according to the specifications provided by the product manager and then the quality assurance team takes
Agile software development teams work with a sense of urgency that can be considered tough to
match because responding to changing requirements is the teams core value. The team knows how
quickly todays software development market is progressing so they use adaptive planning to practice
dynamic software development. Each role on the Agile team forms a cohesive whole and the members of
these teams can have different roles depending on the methodology the organization chooses to use. The
typical Agile team consists of the Stakeholders, a Product Manager/Sponsor, Project Manager, Business
Analyst, User Experience (UX) Designer, Software Developers, Architect, Quality Assurance and in
The stakeholders represent a broad category of people that can consist of users, managers of users,
Portfolio Managers, operations, support, the executive team, investors and other Agile team
dependencies. In addition to these roles, the team can sometime have extended cast members who are
called upon to utilize their technical or domain expertise for specific specialized skills that may not be a
part of the present team members skillset (Agile Business Consortium, 2008).
The product manager has a very important role in an organization that is using the Agile
methodology. He is the change leader and manages the backlog, communicates project information to the
stakeholders and inform the other groups in the organization about the project. The product manager has
the role of motivating the project team members to be agile from the project inception to its closure. He
has to focus on what is needed now and in the near future, ensuring that whats being delivered is actually
valuable to the customers and the client. Using the Agile approach will ensure that proven processes are
being used to implement, follow and report on the main project objectives (Pascal, 2009).
The project manager is responsible for all aspects of the solution delivery including the management
of the project team. The project manager can fill multiple roles which include the Agile Coach and the
Scrum Master. The project manager coordinates all aspects of the project which includes: gathering
information from all the stakeholders, cost estimates, advising the software developers on their estimates
using historical data, task assignments, decision making, roadblock removal, liaise between management
and the project team, manage scope creep, build and maintain team culture, prioritize requirements, track
the project progress with the schedule, update plans, log lessons learned and log defects (Pascal, 2009).
The business analyst is responsible for ensuring all the communications between the business and
technical teams are timely and unambiguous. He is responsible for managing the development,
distribution and approval of all documentation and software products related to the requirements and how
they should be interpreted. The business analyst ensures that all the day to day decisions related to the
software products are proper and well thought out (Pascal, 2009).
The UX designer is responsible for understanding the product managers vision for the product. He
proposes and ensures a technical UX design that supports the product vision with a good user experience.
The UX designer is responsible for testing the proposed design with real users using user research. He
works closely with the product manager to define and refine user stories. He collaborates with the
software developer as the first user in the user research (Pascal, 2009).
The software developer is responsible for analyzing, estimating, designing, coding and testing the
software product. He estimates the size of the backlog items, translate backlog items into engineering
design and tasks, evaluates the technical feasibility, implements in the items in the backlog, writes unit
test first, writes and verifies that the code meets the acceptance criteria and apply product development
The architect is responsible for leading the technical direction of the software project. He is
responsible for the end-to-end cross functional system design and communication. The architect works
with the product manager to group features based upon the elements that support them. He tests the
elements with executable and tests design, oversee the technical decisions, produce alternative design
concepts with detailed approaches, ensure the design goals are met and leads the design review and
Quality Assurance role is to prevent defects from occurring in the system in the early stages as
opposed to finding them at the end and facilitates building integrity in the software product and the
development process. The role can be and individual or a team of people. QA is responsible for writing
test plans that enforce the acceptance criteria, keeping test plans and test cases up to date when the
requirements change, integrating the codebase with automated build and regression testing, notifying the
product team when production is blocked due to errors found in development, measuring, defining and
In todays fast changing business world, it is a must for organizations to be flexible, adaptive and
responsive. Organizations must deliver new products to the marketplace in a rapid fashion and create
products that meet the needs of their customers and adjust swiftly to change in a cost effective way. Many
organizations find their biggest obstacle to being flexible and adaptive is how they utilize software
development. Agile software development approaches have been successfully implemented in large
organizations, utilized in different industries to increase productivity and to increase ROI (Pierce, 2016).
References
Agile Business Consortium (2008), DSDM Atern Handbook, Retrieved September 28, 2017,
https://www.agilebusines s.org/content/roles-and-responsibilities-0
Dawson, Carla (2015), The Pros and Cons of Utilizing Agile Methodologies, Retrieved September 28,
2017, http://www.nearshoreamericas.com/agile-methodology-advantages-disadvantages/
Habib, Monjuraal (2013), Agile software development methodologies and how to apply them, Retrieved
methodologies-and-how-t
Koch, Alan (2011), 12 Advantages of Agile Software Development, Retrieved September 28, 2017,
https://cs.anu.edu.au/courses/comp3120/public_docs/WP_PM_AdvantagesofAgile.pdf
http://jultika.oulu.fi/files/isbn9789526200347.pdf
Pascal (2009), The Roles and Responsibilities of an Agile Team, Retrieved September 28, 2017,
http://www.agilecoach.net/coach-log/the-roles-and-responsibilities-of-an-agile-team/
Pierce, William (2016), When not to use Agile. Retrieved September 28, 2017, https://atlaz.io/blog/when-
not-to-use-agile/
testing/what-is-agile-testing/
Radigan, Dan (2017), Scrum - A brief look into using the scrum framework for software development,
agile-development