Historical software development methodology was typically as
- Get Requirements
- Code It
- Test It
- Deploy It
In this
typical approach (AKA Big Bang Approach or Waterfall model of software development methodology), once requirement
gathering is done, coders used to disappear for coding, and clients wouldn't
understand what they are actually doing! After lots of sleepless nights coder
might think “Whoa! That was hard work! I was working like crazy!” and hence
expecting that while showing working piece of software, we will get “WOW!
Amazing!” from audience (Clients). However too frequently the reaction was
“Yeah this is fine, you did lot of work but what I really expecting or wanted was…..” and
from this point all disappointments and project delays start. All rework (Recode, Retest,
and Reintegrate!) then starts hampering your timelines and those cost of
changes become increasingly high.
Big bang
approach usually ends up with big mess. There is an unwritten rule that “If
your customer is unhappy, you have built wrong software!” (No matter
how great you think it is) and in such cases don’t waste your time in trying to
tell them how they are wrong. But then how to find out what customer really
wants from you…….simple, “Involve them ASAP”
Secret of
great software development is iteration; hence involve client/user during all
iterations (Agile Methodology for Software Development) So once you make significant progress you can check it with them
and then refine if required or move ahead. As you are getting customer feedback
frequently, he is also well aware of the current stage of the software.
Iteration is
a frequent check-up of your software! In big bang approach, probably your
software gets ready at the end and its utterly wrong time to realize that
something went tremendously wrong. With iteration you can immediately come to
know that probably you are going wrong.
Consider your each iteration as
project in itself or
rather a mini project which should involve requirement,
design, code, test and feedback. But while doing iterations you should
meticulously follow these things
- Estimate the new features
- Let your customer decide priority for new features
- Revisit your iteration plan
- Check timelines
I’m sure
that involving customers early into project really helps a lot! Try it! (If you
are still following big bang approach)
Good
Software Development Delivers What Is Needed On Time and On Budget
No comments:
Post a Comment