Tuesday, October 25, 2016

Agile Software Development Method

When developing a software, it's not easy to deal with the client and changing environment. We have been introduced to many software process models such as waterfall, prototype, incremental, agile etc. We are hoping to talk about all these in our blog. But for now we'll brush up your knowledge on agile software development.

History

        On February 11-13, 2001, a group of 17 software leaders met at the Snowbird resort in Utah and discussed about the "light weight" development methods, and that's how manifesto for agile software development published.


Why bother?

                                                                              
           Agile software development is a group of software methods including 
  • Extreme Programming (XP)
  • Scrum
  • Crystal
  • Dynamic System Development Method (DSDM)
  • Lean Development and Future Driven Development (FDD)
Above mentioned agile development methods are kind a popular these days to build the right software at the right time. Even though all these methods are unique in their own way. They all have continuous planning, continuous testing, continuous integration and other forms of continuous evaluation of both projects and the software in common.


 Figure 1: Life cycle of agile software development method

Characteristics 

  • Warmly welcome changing requirements even late in development
  • Customer Concentric Software Development methodology  
  • Light Weight Software Development Methodology which is less document centic 
  • Usually work bet for small team sizes (<15)

Agile Manifesto 

Individuals and Interactions over process and tools Working Software over comprehensive documentation Customer Collaboration over contract negotiation Responding to Change over following a plan
"That's while there is value in the items on the right , we value the items on the left more"
Individuals and Interactions 
  • Self-organization and motivation are important
Working Software
  • Working software works than pieces of papers when presenting to the clients.
Customer Collaboration
  • Human mind changes continuously so do clients requirements.Therefore continuous customer or stakeholders involvement is very important. 
Responding to Change
  • Agile Methods are focused on quick responses to change and continuous development.

Agile Principles


Agile Developing Method based on 12 principles.
  1. Customer satisfaction by early and continuous delivery of valuable software
  2. Welcome changing requirements, even in late development
  3. Working software is delivered frequently (weeks rather than months)
  4. Close, daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted
  6. Face-to-face conversation is the best form of communication (co-location)
  7. Working software is the principal measure of progress
  8. Sustainable development, able to maintain a constant pace
  9. Continuous attention to technical excellence and good design
  10. Simplicity the art of maximizing the amount of work not done is essential
  11. Best architectures, requirements, and designs emerge from self-organizing teams
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

Drawbacks 


Everything has drawbacks so why not in Agile Developing Method
  • Agile methodologies can be inefficient in large organizations and certain types of developments
  • Team members' mind set should be set into that this Software Product has no end
  • Since this Method is new most of the team members don't have good knowledge about this.
  • Most of the time teams members might spend more time on planing at the very first place due to not familiar to the Agile method
  • Attempting to take on too much in an iteration is an another failure. Even though Agile development method allows continuous changes, having too much works in progress results inefficiencies.

Overview 


Agile Software Development is 
Philosophy + a set of Guidelines for software development.
P :
  • Customer Satisfaction
  • Early incremental delivery
  • Small, highly motivated project team
  • Overall development simplicity
  • Less paper works
G :
  • Active continuous communication and collaboration between developers and users.
Here's a video which will give you an idea about Agile Software Development Method in a graphical way.  




Hope you guys got a clear idea about Agile Software Development Method. If you guys would like to share any thoughts about this post with us, comment below :)

6 comments:

  1. Agile software development Awesome article, it was exceptionally helpful! I simply began in this and I'm becoming more acquainted with it better! Cheers, keep doing awesome!

    ReplyDelete
  2. 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
  3. Agile Software Development Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info.

    ReplyDelete
  4. Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read. Offshore development services

    ReplyDelete
  5. We website designing company in Chicago, Build User & SEO Friendly websites with customized features and designs all according to the needs and requirements of our clients.

    ReplyDelete