The Agile Movement

Software Development Methodology: The very purpose is to “pursue the development of an information system in a very deliberated, structured and methodical way requiring each stage of SDLC (Software Development Life Cycle) to be carried out rigidly and sequentially within the context being applied.

The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by project team to develop or maintain an information system.

In the earliest days of software development, ‘Code-and-Fix’ method was adopted. Difficult nature of this approach brought ‘Waterfall’ methodology in picture.

The Waterfall model is a sequential process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.

Each phase consists of a defined set of activities and deliverables that must be accomplished before the next phase can begin.

Good thing about this methodology is Discipline and the fact that it forces to have complete requirement prior to start. However, over the years it has been realized that most of the times requirements are unclear at the time of inception of project and this model limits the early feedbacks leading to high cost of reworks at later stage.
Methodologies have evolved over the years and there are a variety of methods available suiting to one or other development requirements with individual strength and weaknesses.

A recent Gartner user survey shows that, while large IT projects are more likely to fail than small projects, around half of all project failures, irrespective of project size, were put down to functionality issues and substantial delays.
(source:http://thisiswhatgoodlookslike.com/2012/06/10/gartner-survey-shows-why-projects-fail/)
Recommendations say:

  1. Keep the project size small.
  2. Provide regular feedback to customer
  3. Implement system of engagement practices.

Project Development now a days needs to be more adaptive to ever changing business needs. Time-to-market plays another significant role in overall delivery of project. Keeping client and development teams closer is utmost important. Agile Methods meet these challenges by allowing stakeholders to try more, invest and select as much required and move on without much impact on Production Cost.

Any Agile method uses interdisciplinary teams in iterative cycles, reduces waste and increases productivity. Where Waterfall is doing just one thing at a time, being Agile is about doing little of everything all the time.
Agile
The Agile Manifesto places a new emphasis on communication and collaboration, functioning software, team self-organization, and the flexibility to adapt to emerging business realities.
The 10 Principles of Agile development is:

  1. First and foremost priority is to satisfy the customer through early and regular delivery of useful software and qualities.
  2. Change is welcome, even at later stages of development. Agile processes harness the change as a competitive advantage for the customer.
  3. Frequently deliver a functional application, every two weeks or a month.
  4. Build project around motivated individuals. Give them the environment and support they need, and have faith in their ability to do the job.
  5. The most effective way to convey information is face to face conversation.
  6. Working software is the best unit of the project’s progress.
  7. A continuous attention to technical excellence and good design enhances agility.
  8. Simplicity – the art of maximizing the amount of work not done – is essential.
  9. The best architectures, requirements and designs come from self organized teams.
  10. At regular intervals, the team analyses how to become more effective, then tunes and adjusts its behavior in this direction.

Agile Software Development is a Framework for undertaking projects that embraces and promotes evolutionary change throughout the entire life-cycle of the project. It promotes industry best practices that emphasize teamwork, customer involvement and the frequent creation of small, working pieces of the total System.
In the next post, I will discuss about different Agile Methodologies used in PSI.

For now as MIYAMOTO MUSASHI, a famous 17th century Samurai believed in the principle “Do not develop an attachment to any one weapon or any one school of fighting”, I would recommend the same; pay attention to pros and cons of each methodology. Stay Agile to the changes required. “Inspect and Adapt” what best suits to your project. More the project remains customer centric, more successful it will be.

Shailja Rampal is a Consultant and is managing multiple projects @ PSI. She is a certified Scrum Master.Software Development Methodology: The very purpose is to “pursue the development of an information system in a very deliberated, structured and methodical way requiring each stage of SDLC (Software Development Life Cycle) to be carried out rigidly and sequentially within the context being applied.
The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by project team to develop or maintain an information system.
In the earliest days of software development, ‘Code-and-Fix’ method was adopted. Difficult nature of this approach brought ‘Waterfall’ methodology in picture.
The Waterfall model is a sequential process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.
Each phase consists of a defined set of activities and deliverables that must be accomplished before the next phase can begin.
clip_image002
Good thing about this methodology is Discipline and the fact that it forces to have complete requirement prior to start.
However, over the years it has been realized that most of the times requirements are unclear at the time of inception of project and this model limits the early feedbacks leading to high cost of reworks at later stage.
Methodologies have evolved over the years and there are a variety of methods available suiting to one or other development requirements with individual strength and weaknesses.
A recent Gartner user survey shows that, while large IT projects are more likely to fail than small projects, around half of all project failures, irrespective of project size, were put down to functionality issues and substantial delays.
(source:http://thisiswhatgoodlookslike.com/2012/06/10/gartner-survey-shows-why-projects-fail/)
Recommendations say:

  1. Keep the project size small.
  2. Provide regular feedback to customer
  3. Implement system of engagement practices.

Project Development now a days needs to be more adaptive to ever changing business needs. Time-to-market plays another significant role in overall delivery of project. Keeping client and development teams closer is utmost important. Agile Methods meet these challenges by allowing stakeholders to try more, invest and select as much required and move on without much impact on Production Cost.
Any Agile method uses interdisciplinary teams in iterative cycles, reduces waste and increases productivity. Where Waterfall is doing just one thing at a time, being Agile is about doing little of everything all the time.
clip_image004
The Agile Manifesto places a new emphasis on communication and collaboration, functioning software, team self-organization, and the flexibility to adapt to emerging business realities.
The 10 Principles of Agile development is:

  1. First and foremost priority is to satisfy the customer through early and regular delivery of useful software and qualities.
  2. Change is welcome, even at later stages of development. Agile processes harness the change as a competitive advantage for the customer.
  3. Frequently deliver a functional application, every two weeks or a month.
  4. Build project around motivated individuals. Give them the environment and support they need, and have faith in their ability to do the job.
  5. The most effective way to convey information is face to face conversation.
  6. Working software is the best unit of the project’s progress.
  7. A continuous attention to technical excellence and good design enhances agility.
  8. Simplicity – the art of maximizing the amount of work not done – is essential.
  9. The best architectures, requirements and designs come from self organized teams.
  10. At regular intervals, the team analyses how to become more effective, then tunes and adjusts its behavior in this direction.

Agile Software Development is a Framework for undertaking projects that embraces and promotes evolutionary change throughout the entire life-cycle of the project. It promotes industry best practices that emphasize teamwork, customer involvement and the frequent creation of small, working pieces of the total System.
In the next post, I will discuss about different Agile Methodologies used in PSI.
For now as MIYAMOTO MUSASHI, a famous 17th century Samurai believed in the principle “Do not develop an attachment to any one weapon or any one school of fighting”, I would recommend the same; pay attention to pros and cons of each methodology. Stay Agile to the changes required. “Inspect and Adapt” what best suits to your project. More the project remains customer centric, more successful it will be.
Shailja Rampal is a Consultant and is managing multiple projects @ PSI. She is a certified Scrum Master.[:]