Sep 22, 2009

Agile Development




Agile development is the modern software development process that allows for a rapid development of software in unknown, fast-changing environment, through the use of iterations, collaboration between the development team and customer, short cycles and strong communication skills. Cross-functional teams utilize a more efficient method of development that does adhere to a rigid timeline and checklist, eliminating excess time spent in modeling every detail or documenting every minor item, but in the end delivering a high-quality software product. This is not to say that the developers have free reign to write whatever code they wish and leave it undocumented, just that the primary emphasis is on developing workable prototype(s) software to the customer, over the need for rigidity.

The project development team and the customer must both maintain a high level of communication throughout the development process, with the software development team working on short cycles of approximately two to three weeks, and at the end of these delivering a useable prototype to the customer and there end-user’s can look at and provide feedback, allowing for the necessary changes to be implemented in later prototypes. This allows for the customer to continually make changes during the development process instead of asking for a lot of major changes at the end of development which is typically the case in more traditional projects.

In traditional development projects the customer may not fully understand what exactly they want the software to do, or may not communicate their ideas and wants to the development team who may spend considerable time and effort developing a product that meets the contract, but that the customer does not like, or requires expensive, time consuming changes. Agile and it’s seemingly a less focused method of development is actually just as structured utilizing the project management approach typically used in six-sigma and lean projects, and can greatly reduce costs and overall development time.

Agile development follows these four core idea know as the Manifesto for Agile Software Development:
• Responding to change over following a plan
• Individuals and interactions over process and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation

And follows the Principles behind the Agile Manifesto:
• 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.


7 comments:

  1. James,
    Your links do not work. Do you think you could update them?

    Thanks.

    ReplyDelete
  2. Your blog really gave me a good view on what is going on.

    ReplyDelete
  3. James,

    Loved the top graphic on this one. This is form of development is excellent for providing proof of concept as well. By moving development into the planning stage of the game one can complete the project sooner, reduce costs, and produce a higher quality product given there is more user interaction. Why wouldn't a business take advantage of this form of development? I think in some cases it would be because it would require reengineering the development process which for large cooporations would be a project in and of itself.

    ReplyDelete
  4. Sorry for the original link SNAFU. They have been corrected.

    ReplyDelete
  5. Agile software development You made such an interesting piece to read, giving every subject enlightenment for us to gain knowledge. Thanks for sharing the such information with us to read this...

    ReplyDelete
  6. Thanks for taking the time to discuss this, I feel about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me. Agile software development

    ReplyDelete
  7. Nice blog and absolutely outstanding. You can do something much better but i still say this perfect.Keep trying for the best. Offshore development services

    ReplyDelete