Search

AGILE Software Development Methodology - SCRUM

>> Tuesday, July 28, 2009


I was to talking a friend of mine who is a very talented BA. This evening she asked me if I know anything about Agile, Scrum and I immediately thought of a need to summarize what I know about Agile on a post. Please see my thoughts on Agile and as you all contributed a lot with your awesome presentations on Agile, I would appreciate if you could share your 2 cents.
We all saw how writing software changed over a period of time. It actually started off with waterfall methodology to the very famous Rational Unified Process (RUP) and now Agile, which is a group of software development methodologies based out of similar principles. A software methodology is a pattern or a process to be followed while writing and delivering a piece of software.
Do you guys know who Dr. Edward Demings is? Agile’s principles we all see can be found in Six Sigma or Lean Manufacturing whose concepts look at improving quality, properly utilizing the resources, creating processes, thus by enhancing customer value. If you want to learn more about lean software development, please go ahead.
Agile simply can be referred as a methodology based on iterative and incremental approaches and delivering software with shorter release cycles. One of the things people go wrong most often is forgetting the fact that
AGILE CHOSES TO DO THINGS IN SMALLER INCREMENTS WITH MINIMAL PLANNING THAN LONG TERM PLANNING…..
Which means, when you are following Agile Software Development Methodology, you do not really look into long term planning and longer increments. Its all about shorter time frames of each increment along with shorter planning. From time to time, we saw software getting built and delivered to the stakeholders. Otherwise, we had to wait for longer periods of time and until the software gets delivered, there was no guarantee that it will be successful encountering challenges like
- Changes in the requirements
- Missing requirements
- Urgency in Customer needs
If you remember Rapid Application Development (RAD), Agile has some common aspects of it in terms of rapidly developing the software. Also the traditional waterfall model in which you see each iteration following requirements, analysis, design, development etc. Well, Agile does the same but in smaller increments, usually 2 to 4 weeks. The team size involved in this kind of Software Methodology will be around 5 - 9 members, relatively small compared to Waterfall or RUP.
How about communication? In Agile, focus is not on the documents but on face-to-face communication. Collaborating with the teams on a regular basis, and communicating on the changes are MUST traits, a resource part of Agile development should utilize. Even though there is a huge need for face-to-face communication, utilizing Version Control, Collaboration and Change Management tools is a MUST for a successful Agile Software Development. As most of us are already using Web 2.0 technologies, using Blogs, Wikis, Forums to collaborate is a very common thing you see out there today.
When you look at the disadvantages of Agile - These methodologies, remember Agile is a group of methodologies with common principles, are sometimes characterized as unplanned and undisciplined methods. By the time, a release gets developed, the engineering team might finish coming with a totally different software application that what the Product owner (or we call Product Manager) would have planned. In this particular scenario, you do not blame the engineering team, it is the Product Manager who has to take the responsibility right from the start of the development cycle. As the length of the Agile Software Methodology release cycle is so small, it is so easy to fall in this trap.
Some of the terms you need to understand while working towards Agile Software Development Methodology are SCRUM Master, Sprint Cycle, and Roles. As you know, organizations (and departments within an organization) do customize software development methodology according to the needs. In my previous work life, I see Product Manager being the SCRUM Master running the show with a sprint cycle (duration of the release cycle) of 2 - 4 weeks. Ideally, as we all know the core principles of Agile Software Development methodology is not forgotten irrespective of any customization.

0 comments: