1.Seven Reasons for Agile Software Development : Introduction to Waterfall Model

Hey everyone, This is Raja, Enterprise Agile Coach from ProXL consulting. welcome to the Agile Scrum training In the first module, we are going to
discuss about seven reasons for agile software
development. There are so many ways of developing
software. The most popular one which is being
followed currently by many companies is called waterfall model
or V Model, a modified version of Waterfall Model. In this traditional waterfall model software is developed in a sequential
manner we start with Requirements Analysis, where we capture the requirements from the client once the complete set of requirements are
captured, we more on to design phase where the
complete set of requirements have been completely designed and after the design is over, we move on to
coding where that design is converted into
various codes using different programming languages. After
the coding is completed we go to testing, where the entire programs are tested to check whether the programs are in line with the
requirements. After the testing is completed, the software is
delivered to the client. when it is delivered to the client there
could be some issues or hitches at the customer’s place. If that happens,
then the software enters into the maintenance phase. so the software developers will fix
those problems which are being faced by the client and
then subsequently the software is getting maintained. so this is a typical sequential life
cycle model most of the software companies are following currently. And this is called waterfall model primarily because once the requirements
are, all the requirements and completed and frozen we don’t allow any changes to the requirements, when we enter into design. same way, when you do… when you complete the design and move into coding there cannot be any changes to the design.
So primarily the water only flows down, you can not
make the water flow up. So it has to fall down. So that’s why it is called waterfall model. This model is being followed by many
companies as we discussed earlier, let’s try to understand a bit more
deeper into this particular model. So it all starts with the
requirements analysis. the Business Analyst or the Requirements
Analyst from the software organisation sits with the
client, or the stakeholders, or the end users,
or all of them understand all the requirements of the
software product that is expected out of this. ones all the requirements have been understood, it is documented into something called Business Requirement Specification or
Software Requirement Specification. So once the equipment specifications
are being written those documents are shown to the client
and we expect the client to approve the
documents. Once the documents are approved, the requirements are frozen, so to say,
because that will be the basis for subsequent development. So we use the frozen requirements document as the basis for both planning as well as subsequent
technical activities. So subsequently we move on to design. The complete set
of requirements have been converted into various designs,
starting with architecture to design where you come up with the high level architecture of the system. Once the architecture has been frozen, and finalised you move on to modular design. So you design various modules and then moved down to unit design. So, once you complete all the design,
both high-level and detailed and we freeze the design. If possible you
have to back to the customer, get their
approval, otherwise at least internally the technical team will review, approve and freeze the design. once the design have been finalised and frozen, we move on to coding phase. In the coding phase, the programmers create various programs in line with the design. The programs are written in
various programming languages, whichever has been selected and once the complete set of programs
have been coded, then be move on to testing phase. We
also do the reviews of this particular program and every individual programs have been tested, what we call as unit
testing. Sometimes we also call this phase as Coding and Unit Testing phase C U T, CUT phase. Once the CUT phase is over, we move on to the full-fledged testing phase, here the
testers will take over the code, and they do a complete thorough testing. every module is independently tested,
module to module is assembled and tested, and finally the entire system is tested to see whether the system
is working in line with the requirements, which has been understood and analyzed from the client’s place. So subsequently,
after the testing the software is delivered to the
client. And if required customer also does their acceptance
testing. Time passes this way in this life cycle. We start this analysis phase say sometime in January, January second
week then we keep on moving, let’s assume this
is a one year project, and by somewhere middle of December, let’s assume just before Christmas we deliver the software to the client.
So January/February timeframe we do
requirements, probably about March/April timeframe design. Subsequent timeframe coding and then testing and deliver to
the customer. So, the time passes this way in this
traditional lifecycle. what are the advantages of this life cycle? There are quite a few. number one, it is very logical, so finalise the requirements, and then
go to design, and then go to coding, and then go to testing… pretty logical
sequence. So plan everything up front, then do as per the plan, then check everything goes after the plan, and then keep on moving and finally
deliver the product to the customer. so, pretty logical steps…

47 thoughts on “1.Seven Reasons for Agile Software Development : Introduction to Waterfall Model

  1. You may want to watch this nice video (not made by me!) on the history of Waterfall model.
    Very well made…
    The Rise And Fall Of Waterfall

  2. thanks for the presentation 🙂
    clean and with out the heavy indian accent which is very difficult to understand

  3. Very informative. Thanks!

    Have a look into this for more http://www.etechpulse.com/2014/06/difference-between-agile-and-waterfall.html

  4. Hi Rajamanickam ,ur waterfall methodology  tutorial is realy superb…..it helps me lot.Thank you so much for giving us a nice tutorial

  5. i am currently doing MBA in IT and i have software engineering as university paper in class i don't even understood single world but watching your video atleast i got to learn many thing, sir your video is just amazing and very helpful thank you very much. 

  6. https://www.youtube.com/watch?v=gLd4NZLVrFw
    More information on Scrum (one of the popular Agile framework) is here. Pls watch and leave your comments.

  7. Dear Sir,
    Your videos on 7 reasons for Agile development helped me a lot in the preparations for classes on Software Engineering subject. Also I suggested my students to watch these videos in youtube
    Thank you Sir

  8. After watching this tutorial, I agreed with Leonardo Da Vinci when he said, "simplicity is the ultimate sophistication".
    Thank you very much sir for this great tuts. Everything is on point, explanation given in simple terms, practical examples and the background sound, conducive instead of being disruptive…. Thumb's up !!

  9. Hello Sir – This is the best 30 minutes coaching for getting fundamental knowledge of Scrum . Thank you s much

  10. Dear Rajamanickam,
    Hats off nice presentation, it was very helpful to me, if you have any other technology experience please share with us.

Leave a Reply

Your email address will not be published. Required fields are marked *