Why Agile?
Before we move into discuss why we should select Agile, we
need to consider on predictive models such as waterfall model. In waterfall we
have to be in the prediction where the requirements are not going to change. That they are accurate. Also the translation is going to be perfect.
But what really happen in the industry is, in most of the
projects requirements are not easy to identify. Specially clients are not aware
of the exact requirements. Due to the intangible nature of the software it is
very difficult to predict the requirements in early stage.
Sometimes even if we could identify requirements correctly,
by the time we deploy the system, it may be 12 months or more. In such cases market may have been shifted by the time we deploy the system,
therefore the original thought that was needed in the market is, no longer
needed, which means user needs may have been changed.
Also in the sense of practicality, translation is also not going
to be perfect. Because whatever written in the requirements, designers may find
it bit differently. So the real outcome is not what the client may need. For an
example assume that you find an issue in a software, in waterfall model it
happen in later stages. In such cases due to the cost of change, the later we find
the problem, the costlier it is going to be.
Therefore, even if the waterfall approach is valuable sometimes it becomes unpractical which results in failure of the projects.
This is why Agile methodology appear. The
main idea of selecting Agile Methodology is to reduce learning cycle by
delivering in short iteration (and adapt what to build based on what they
learned.) and to keep the cost of change down by following engineering practices
and close collaboration.
4 values
- Individual interactions over process and tools
- Working software over comprehensive documentation
- Customer collaboration over contact negotiation
- Responding to change over following a plan
12 principles
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Applying these values and principles for your project is
important because,
Agile methodology is keeping all the stakeholders (client, project
manager, development team, testing team etc.) together and all of them have clear
visibility in the project. Also another important thing is that team is actively
involved and thus make the working environment enjoyable with their
collaboration. Next thing is speed to market. Due to incremental and
iterative approaches agile can brings the product out to the market soon. Product quality is guaranteed. In waterfall method testing
happen after the development process in which the detection of errors is hard and late.
In agile, inspection happen throughout development process. This
allows the product owner to make any necessary adjustments and aware product team of
any quality issues.
How agile works
Agile Frameworks
SCRUM
XP (extreme programming)
Kanban
Lean
Interesting, write more.
ReplyDelete