Agile Software Development
Software crisis and evolution of Agile methodology
The popularity of Agile methodology is gained when software crisis emerged where software teams are managed with the same methods used by manufacturing or construction projects.
Generally
manufactured products are identical. In our example, if you think about manufacturing cars of the same make and
model coming down on assembly line one after another, Design
engineers and managers typically produce well defined checklists with well
defined processes and tools that workers are expected to
follow. Comprehensive system documentation is produced so defects can
be tracked and fixed easily. And in construction projects, once you sign a contract
to build a house or any building, the requirements are frozen and if you want something to be changed or added then there would be an additional cost.
All early
software development projects tried to mimic the approach followed by construction and manufacturing
projects which is known as the waterfall model.
What is Waterfall model
Waterfall
has five phases such as requirements, analysis and design, development, test, and
deployment and maintenance. Each phase ends with a well defined
frozen deliverables that act as inputs for the next
phase. Requirements are captured early and are used as inputs for
analysis and design. When the analysis and design phase is completed, we
have a fully designed system that is ready for development. When
development is done, the system is expected to be ready for testing and so
on and so forth.
Pitfalls of waterfall approach
Customer
could not see the product before the early testing phase, which
is usually two thirds of the way through the product timeline. You
could be in the deployment and maintenance phase before you would realize
that the product you are building was no longer viable due to changed market
conditions or organizational direction or you
could realize that the product had a major architectural flaw that
prevented it from being deployed. In other words your product development
initiative could completely fail after a lot of money and time had
been spent on it.
The second problem with the waterfall approach is
that it uses top down management. Development team members are
expected to follow checklists and detailed controls, in other words this approach strategizes
processes over people. Each phase is gated and has entry conditions
before the development team can start working on the next phase.
The
software industry started debating the manufacturing industry like
approach which is a Waterfall approach used for developing software as early as the 90's. According
to a 1994 Standish Group report, only around 16 percent of the projects
surveyed were successfully finished within budget and on time with the
features originally scoped. 53 percent of software projects went
either over budget, lacked features, did not finish on time, or a
combination of these. So clearly a new approach
was required for software development which is Agile methodologies.
Agile Manifesto
"Individuals and interactions over processes and tools." The agile mindset values people and their interactions over detailed processes and the comprehensive use of tools.
Preference of customer collaboration over contract negotiation. Collaborating with customers to build something that delights them is more important than executing contracts with fixed requirements.
Preference of responsiveness to change over following a preordained plan. Agile teams embrace change.
Comments
Post a Comment