12.07.2015 Views

Migration from Waterfall model to Agile model - QAI

Migration from Waterfall model to Agile model - QAI

Migration from Waterfall model to Agile model - QAI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Migration</strong> <strong>from</strong> <strong>Waterfall</strong><strong>model</strong> <strong>to</strong> <strong>Agile</strong> <strong>model</strong>ByVipul KumarFiserv India Pvt. Ltd.5 th floor Plot No. 6Tech BoulevardSec<strong>to</strong>r 127NoidaUttar Pradesh


Abstract General Impacts and Changes Impact on QA and Testing QA process in <strong>Agile</strong> Testing and QA practises in <strong>Agile</strong> Developmentagainst <strong>Waterfall</strong> <strong>model</strong> Closing Statement Refrenceses


Abstract<strong>Waterfall</strong> methodology has been there for years now and is identifiedfor being the most classic and proven methodology for simpleprojects. This is probably best suited for shorter duration projectwhere vision and directions are clearly defined.But over the time, since projects have become more and more complexand demands more support and meeting the changes andchallenges of business such as financial market and banking whereregulations of government and demands of cus<strong>to</strong>mers, forces IT <strong>to</strong>meet their changes and deliver it quickly. Here comes the concep<strong>to</strong>f <strong>Agile</strong>, a methodology that accentuates more on ethics and valuesrather than processes.Switching <strong>to</strong> <strong>Agile</strong> may be caused due <strong>to</strong> many reasons, may be yourmanagement is all of sudden falling in love with <strong>Agile</strong>, or may be itsmandate for your project <strong>to</strong> meet cus<strong>to</strong>mer expectations or deliverquickly for meet changing business needs. Whatever is the case,either way, you, as a team member; need <strong>to</strong> learn the new ways ofworking, learn agile and most importantly need <strong>to</strong> know how <strong>to</strong>transit <strong>from</strong> waterfall <strong>to</strong> agile and what are the things team need <strong>to</strong>remember and keep in consideration? Here we are going <strong>to</strong> discussall these concerns.


In the first part we will take a look on general impacts of this transitionand later on we will see detailed impact on QA and Testing when yourproject moves <strong>from</strong> <strong>Waterfall</strong> <strong>to</strong> <strong>Agile</strong> methodology.General Impacts and ChangesThe shift <strong>from</strong> waterfall <strong>to</strong> agile will have following impacts and changes inwork culture:Releases and delivery are more frequentIncreased variety of workEstimating your work at your ownImpact on quality assurance-Quick and immediateMore leaders and module leadsReduced documentation efforts and more communication/meetingsMore hit and trial methodsPriority driven workTeamwork becomes more crucialTerminology changes


1. Releases and delivery are more frequent:Production releases become more frequent, near daily, not like inwaterfall where release comes at the end of the road. These releasesbecome the part of daily life and surely team gets comfortable with itlike other happenings of the daily life.2. Increased variety of work:At the time of inspection the work and sprints are planned for next 2-3weeks. The focus is always on delivery and this creates opportunity forteam members <strong>to</strong> work in different roles. A tester who has theknowledge of entire in and outs of project may have <strong>to</strong> play the role ofbusiness analyst.


3. Estimating your work at your own:Team members are supposed <strong>to</strong> do estimation of their work on theirown for a sprint. Honesty and intelligence of estimation are blood andbone of overall planning and if a member over estimates or underestimates his work, not just overall planning will impact but also hisability are viewed poorly by team.4. Impact on quality assurance-Quick andimmediate:Quality assurance and testing usually requires a different environment thandevelopment and requires migration of code. However as very less codegoes <strong>to</strong> production each time, regression testing becomes crucial.Prioritization of test cases and requirements is key of a successfulregression (or any type of testing) in agile. Many times explora<strong>to</strong>ry will bethe best way <strong>to</strong> discover the defects. QA will require working harder than inother methodologies, <strong>to</strong> keep up with development and also maintainingtheir traditional approaches. QA is tightly-coupled <strong>to</strong> development becausethe size of the change package can be medium <strong>to</strong> small but the frequencyof deployment is very often


5. More leaders and module leads:The dynamic nature and work environment create opportunity formultiple leaders and modules leads. Distribution of responsibility androles creates space for new leading areas like project owner and scrummaster.6. Reduced documentation efforts and morecommunication/meetings:Unlike other long-established <strong>model</strong>s of development, agile includesless documentation. The client is online and mostly verbalcommunications and mails are used for further progress.


7. More hit and trial methods:Quick releases quicker fixing is the core of agile deliveries. Faster youwork, better ways you need <strong>to</strong> find <strong>to</strong> get the job done. To find thebetter ways hit and trial is the key.8. Priority driven work:when team got <strong>to</strong> work faster and frequent releases are done onproduction, prioritization becomes the driving force <strong>to</strong> it. Based onbusiness criticality and needs, requirements in each sprint are <strong>to</strong> beprioritized and delivered. It doesn’t go like in <strong>Waterfall</strong> where you followa straight line of development mostly.


9. Teamwork becomes more crucial:since entire team is tagged common: team member; seniors resourcesneed <strong>to</strong> work mixing with junior resources and the performance thebased more on delivery than seniority. There will be usually more “WEWE WE” in a successful agile implementation, rather than “ME MEME”. And this will be the key of success in agile methodology.10. Terminology changes:team become aware of new terminology. Sprints, Scrum, Online clientare few examples of those which we don’t find in waterfall <strong>model</strong>


These are few other points that team must rememberalong with above mentioned points:<strong>Agile</strong> is not a way <strong>to</strong> reduce documentations. <strong>Agile</strong> has its owndocumentation concepts and works primarily on oral communicationand commitments. This is the place where ethics and values playtheir roles.It does not <strong>to</strong> encourage unnecessary changes but <strong>to</strong> tackle therequired changes, effectively.<strong>Agile</strong> does not says <strong>to</strong> put planning aside. Planning is a crucial par<strong>to</strong>f it but the way we plan in <strong>Agile</strong> differs and based on prioritiesrather than a straight line of development.The last and most important thing <strong>to</strong> remember is <strong>Agile</strong> is not foreveryone and <strong>Waterfall</strong> either is not suitable for every project. Teamand management need <strong>to</strong> be very careful while picking up themethodology that most suits <strong>to</strong> their requirement.


Impact on QA and TestingQA process in <strong>Agile</strong>:A very short definition of <strong>Agile</strong> testing is a testing that follows thefundamentals of <strong>Agile</strong> Software Development.The process of <strong>Agile</strong> testing is not very different <strong>from</strong> traditionaltesting involved in <strong>Waterfall</strong> <strong>model</strong> but it’s a speedy and veryflexible way of testing <strong>to</strong> meet the changing requirements and rapiddevelopment of software. The typical process is as follows:


Business requirements are created by cus<strong>to</strong>mer and business analysisgroup, development group and testing group review it. Involvement oftesting group is a mandate here so that they can plan their strategy fortesting the requirements. Further during design phase user s<strong>to</strong>ries arecreated and reviewed by client and accordingly requirements arechanged and altered. Testing team follows up all these changes until aconsolidated document of requirements is prepared and reviewedfinally. This will ensure that all the parties are on the same page. Therewill be lots of changes in the requirement and test team need <strong>to</strong> beflexible enough <strong>to</strong> make sure that these changes are addressed in theirtest strategies and planning.


Just like in waterfall, while development team is busy in coding, testingteam will create its test plan, test cases and other testing artefacts.Cus<strong>to</strong>mer reviews all these documents and gives thump up! This willensure the test coverage and also helps <strong>to</strong> find out ambiguity in testplan if any.Once code is delivered for testing, a quick smoke test is done just likein <strong>Waterfall</strong> <strong>model</strong> but the core of smoke test here is not <strong>to</strong> make sure ifapplication is ready <strong>to</strong> test but <strong>to</strong> report show s<strong>to</strong>ppers and criticaldefects first hand so that it development team can work them out and itcan save valuable time during project life cycle. As we already knowhow close testing and development groups work <strong>to</strong>gether, smoke testbecomes one of the most crucial point of testing.


One the application is under test after bugs fixed in smoke test,different type of testing, similar <strong>to</strong> waterfall <strong>model</strong> are applied. Thesetypically are Functional testing, integration testing, and system testingetc. Here regression testing becomes much more crucial. Every nowand then you have code change. Each time code is changedregression is done. Apart <strong>from</strong> your scripted test cases, explora<strong>to</strong>rytesting is the most used and best utilized in agile testing environment.


Testing and QA practises in <strong>Agile</strong>Development against <strong>Waterfall</strong> <strong>model</strong>Whatever we have discussed above are generic changes andchallenges apart <strong>from</strong> technical issues that entire team will have <strong>to</strong> dealwith. But there are certain QA related precautions and challenges alsothat QA team need <strong>to</strong> take care.QA team need <strong>to</strong> be careful and understand that developersmostly in <strong>Agile</strong> are not just technically sound in their work but also mayhave good understanding of au<strong>to</strong>mation scripts (remember the point“Increased variety of work”). So QA must remember developmentalso has good understanding of not just product (vs. their specificmodule) but also good knowledge of testing. Dev team must bepracticing Test Driven Development or may be Behaviour Drivendevelopment.


In this case just finding the bugs isn’t going <strong>to</strong> do wonders. You,as a QA guy need <strong>to</strong> provide some value adds. Here are sometips:Provide a different outlook of the project. From development side,it’s <strong>to</strong>o obvious for them <strong>to</strong> get so much engrossed in coding thatthey miss <strong>to</strong> see application <strong>from</strong> end user’s eyes. As a QA yourvalue add will not be just a bug, but bringing up those points and ou<strong>to</strong>f box scenarios that a typical user will follow.Be in constant <strong>to</strong>uch with development and client. Most of the timesyou may find several defects with have same root cause and youstat logging dozen of defects and at the end of the day, afterspending hours on all defects separately development team figureout a common root cause. In such scenarios best will be just be in<strong>to</strong>uch with developer, let them know what all you are finding andraise a single bug for multiple related defects.


Do a great job <strong>to</strong> isolate the bugs. You see this is a rapiddevelopment and quick <strong>to</strong> quicker deliveries <strong>to</strong> cus<strong>to</strong>mer,development cannot spend <strong>to</strong>o much time in finding out the path <strong>to</strong>recreate an issue testing team reported. In <strong>Waterfall</strong> <strong>model</strong> you mayrepost exactly what you see and the same path <strong>to</strong> recreate a bugwhat you followed (however it is advisable there also bug should beas clear as possible) because we have some timelines and straight<strong>to</strong> go path in front of us. But in agile we have <strong>to</strong>o little time mostly inhands and <strong>to</strong>o much <strong>to</strong> do in that time that developers cannotspends hours <strong>to</strong> know how <strong>to</strong> recreate the bug. Just spend littleextra time <strong>to</strong> figure out the simplest way of reproducing the bugrather than jumping at your seat and filling the defect logimmediatelyTest team should always be ready <strong>to</strong> welcome changes even late intesting. Whereas in waterfall, you would find these kind of latechanges very rare and they are mostly treated as Change Requestsand are developed and tested in a separate go, in <strong>Agile</strong> there arealways chances of changed requirements that will drive a change incode and hence a change in testing.


Closing StatementAt testing strategy side, explora<strong>to</strong>ry testing is heart and soul in agilemethod. If you have been working in waterfall <strong>model</strong> for long, you musthave dealt with long scripts designing and running those scripts whiletesting.One reason this approach is not appropriate for agile projects is therequired lead time <strong>to</strong> do it well. It's not unusual for an agile project <strong>to</strong>have sprints of two <strong>to</strong> four weeks, and test cases aren't writtenovernight. Explora<strong>to</strong>ry testing is more lightweight and quick way <strong>to</strong>keep up with constantly changing requirements and codes and thefrequency of delivery involved in agile. Prioritize your testing forregression, keep explana<strong>to</strong>ry as heart and soul of your strategy andagile will be really fun for you.


Referenceshttp://en.wikipedia.org/wiki/<strong>Agile</strong>_testinghttp://www.pettichord.com/http://www.softwaretestingtimes.comhttp://www.exforsys.com/tu<strong>to</strong>rials/testing/testing-for-agile-softwaredevelopment.html

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!