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. Software Development Methodology
Goals of Software development Organization
Responsiveness to changes
Being competitive with quality and timeliness
Sustenance and Growth
Profitability
Establish ROI
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. 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. 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. 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. 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. 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. 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. 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. 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. 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.