Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile and XP


Published on

  • Login to see the comments

  • Be the first to like this

Agile and XP

  1. 1. Software Development Methodology An Insight into “Agile” and “XP”
  2. 2. Software Development Methodology Current Challenges Rapid Changes in the technology – availability of frameworks, tools technologies etc “Change is constant” - Frequent Changes in client requirements Increasing customer awareness about software development and tools & technologies Traditional methodologies (like waterfall) not scaling to changes, focus on documentation and are predictive & prescribed heavily regimented, regulated and micromanaged.
  3. 3. Software Development Methodology Goals of Software development Organization Responsiveness to changes Being competitive with quality and timeliness Sustenance and Growth Profitability Establish ROI
  4. 4. Software Development Methodology Importance of choice of methodology The software development methodology can be thought of mechanism to meet challenges simultaneously achieving goals TCO (total cost of ownership) can be said to be largely depending on methodology chosen Different methodologies have different efficiencies (Efficiency can be decided by the quality of ultimate software product, the number of bugs and the development time consumed)
  5. 5. Software Development Methodology Agile (Philosophy & Characteristics) Adaptive Iterative Incremental Fundamental issue is communication and not documentation Document the stable things, not speculative things. Evolutionary approach to documentation development (seeking and acting on feedback)
  6. 6. Software Development Methodology Agile (Philosophy & Characteristics) Preference to executable work products such as customer test over static work products such as plain old documentation Concise documentation – product overviews/road maps preferred over detailed documentation (describing more than nitty-gritty) High quality source code and test suite – needing a lot less system documentation Documentation shall be barely just good enough.
  7. 7. Software Development Methodology Agile (Philosophy & Characteristics) Primary goal is developing software , secondary goal is to enable next development efforts The benefit of having documentation must be greater than the cost of creating and maintaining it. Create documentation only when you need it at the appropriate point in the life cycle.
  8. 8. Software Development Methodology Agile (Philosophy & Characteristics) Update documentation only when it hurts It is recognized that documentation is an intrinsic part of any system, the benefits should outweigh the increased burden on the team. It’s important to note that sometimes the benefits are received by someone else other than the people experiencing the costs, e.g. the development team is impacted by the costs of creating system documentation that the maintenance developers benefit from.
  9. 9. Software Development Methodology XP (Philosophy & Characteristics) Enough design Up front On-Site customer Pair Programming Coding Standards Simple design User stories, CRC cards, sketches, test suite, acceptance tests Concrete experiments
  10. 10. Software Development Methodology XP (Philosophy & Characteristics) If you need it to do it – simple artifacts (documents etc) Collective Ownership Travel light Communication – open and honest communication
  11. 11. Software Development Methodology Summary Traditional software development methodologies were inherited from hardware manufacture and strategies. In these methodologies, the production cycle progresses sequentially. The basic belief is that the considerable time spent in initial design effort would help correcting bugs in advance. These were successfully implemented by many organizations but the software industry has experienced the limitations of these methods such as low ability to embrace changes, overall quality not in correspondence with initial design efforts and overall cost & efficiency.
  12. 12. Software Development Methodology Summary Rise of new methodologies like Agile which represents the agility and adaptability have given new direction to software development. Efficiency of these methodologies have been established to be better than traditional and also its resulting in better client communication and satisfaction. Of course all such methodologies have benefits and limitations and many a times the combination of these methodologies could serve the purpose.
  13. 13. Software Development Methodology Conclusion Given the dynamics of current businesses, frequent changes, increased competitiveness and awareness, the agile (and XP) methodologies can be the best bet which would give ability to remain ahead of the curve. Such methodologies can adapted to specific environments and some characteristics from traditional methodology can be combined to find a good match and suitability. Employing such methodologies would have impact on organization structures, architectures and employees and of course the business.
  14. 14. Software Development Methodology References Wikipedia IBM - resources
  15. 15. Software Development Methodology Big Thanks