If you are in the process of developing and creating software, a business, or product, the steps to get from point A – the idea – to point B – the finished product – can seem completely overwhelming. You start brainstorming, you get a great idea and follow it, but if it doesn’t work out, you are back at the beginning, brainstorming. It might feel like you are going nowhere, you don’t know which way to turn, and all you’d really like is a road map straight to success.
Well, I can’t promise you a road map, but I can get you close. First – there are two ways of thinking about the development process. The first is called the waterfall system, because when you draw it out, each idea cascades down to the next logical step – it will look like a waterfall. Think of it this way:
Each step logically follows the next, and you do not move on to the next step until you have fully completed the step you are one. For many people, this kind of straight layout helps them think, stay organized, and keep on track. However, maybe your business model doesn’t fit this type of planning, or maybe your brain doesn’t like this kind of rigid thinking. In these cases, you might want to try the agile model. The agile model allows you to try a few different steps, and if something doesn’t work out, you can easily backtrack without losing too much time (and possibly money). Here is what an agile road map would look like:
In agile planning, you can move on to any step from (almost) anywhere. You can start with an idea and move to planning, but if things are going well you can jump to implementation. The description truly is in the name – you will be very agile, that is, graceful, moveable, and quick.
Each of these types of development has its own advantages and disadvantages. In waterfall planning, you can plan big projects. It is well suited to the type of project that needs to move slowly and methodically. However, this is also one of its main drawbacks. If you are on a tight deadline, slow and methodical may win you the race but lose you the client. It also has a drawback of leaving important steps, like implementation and testing, to the very end – so if bugs develop, it might be too late to go back and fix things.
Agile planning has the drawback that it can be easy to fritter your time away bouncing from idea to idea. However, if has the definite advantage that it is quicker and less prone to bugginess – for example, if you are programming some code, you don’t have to wait until the very end to test, you can jump right to testing and determine if you are on the right path or not. Because of the built-in agility of this system, it is the preferred method of operation for many technological fields.
Here is the question back to you – Which Software Development Methodology do you use and why?
Reference: Pinal Dave (http://blog.sqlauthority.com)