I call it a philosophy!
Agile development using sprints is not new to the software industry.
It’s an iIterative development where requirements and solutions evolve thru collaboration between self-organized cross functional teams.
Here collaboration is crux of all. Not “You” and “me” but “us” matters in all operations.
A philosophy of leadership deployment with fully empowered, accountable, self-organized team that promotes collaboration of different functions and roles along with the different technical skills; using all the communication means (prefer face to face communication though — as it is accepted as the best way to collaborate) and has full decision making capacity and capability is AGILE DEVELOPMENT.
Why we need to be Agile?
Competition in the business and thrust for “early marketing” has led to have dynamic changes in the business requirements followed by an aggressive schedule that demands Agility in operations.
Agile focuses on delivering shippable product / services and test automation suits to be used by the customers for their business growth and operations. Taking care of dynamic environments, agile helps in managing the changes in the business requirements; followed by continuous integration and testing that supports early detection of defects and quick fixes by a close collaboration of teams like business analysts, product owners, developers and test engineers and yes automation engineers; agile drives us towards operational excellence . There are no surprises in the whole process because of the disciplined agile approach and transparency.
Transparency within working team is inevitable!
Yes, user involvement and customer involvement is imperative!
Agile categorizes in uniqueness –
-Individual personal interactions over processes and tools,
-Working software over documents (that does not mean absolutely no docs),
-Customer collaboration over contract negotiations,
-Responding to changes over following a plan (that does not mean there is no plan),
-Daily build creation/testing preferably automated,
-Explicitly specified Acceptance criteria evaluated per sprint.
Myths about Agile —
Agile is misinterpreted as deployment processes which do not advocate any documentation. The methodology does not recommend architecture development and planning. There is no project plan. There is no process. Just be agile on all tasks and operations those are needed for software development, QA testing and deployment. There is no role for manager.
To top up all, it’s assumed that we can change business requirements day in and day out, since we are agile. That is why we are agile.
I totally disagree.
It’s the most disciplined and mature way of collaborating different teams which are striving for quality and excellence and ready to improve continuously.
Agile process — a disciplined approach
Analyses of business requirements are done by business analysts and the domain experts to generate a requirements repository called Product backlog! Development of product backlog is done by deploying different time bound, small, iterative, development schedules called Sprints. Contents of the Sprints are planned by prioritizing the different business requirements in simple, readable format called User Stories.
Sprint planning is generally done using tools used in the market today for agile project management. The plan shall have listed user stories with task allocation, who would work on what and in what time frame and the sequence by considering tasks dependencies. We cannot skip project plan in any development methodology for sure.
Every sprint shall be deployed as planned. Tracking of the tasks is crucial and done on the daily basis. Daily stand up adds value in finding what’s done, what’s pending and what issues we are facing. Hit the issues by close collaboration. Learning from the members in the different teams with different skills and different perceptions is value addition!
Sprint performance should mature and enhance in its effectiveness in delivery and productivity by continuous improvement. Retrospective meetings with teams should focus on evaluating sprint performance. Sprint specific metrics and measurements shall guide to know where we are in improvement. Strive to eliminate bottlenecks and drive issues to solutions.
Best practices in Agile
Agile effectiveness double folds by deploying standard best practices like pair programming, automated unit testing and continuous integration associated with test automation regression etc. Collaborative practices like owning of a story by developer and tester together and making close sitting arrangement of all the stakeholders encourages close communication. Close communication drives to clear close the gaps in requirements interpretation and understanding due to different perceptions and finally enhances quality and performance.
All the best practices have to be implemented to get the right results.
Challenges of Agile Philosophy
Yes, it’s not a silver bullet that solves all the problems.
Active involvement of all stakeholders is imperative. There is no place for non commitment. Ownership and accountability is the back bone of this methodology. A very strong collaboration of all striving for excellence by healthy competition is inevitable. Transparency and status accounting should be part of agile life. Need strong requirements analysis with 80 % of the business requirements frozen upfront. Acceptance criteria of each user story should be explicitly specified by Business Analysts. A small change can be definitely absorbed in the sprint plan.
Multi locations, multi time zones and unavailability of domain experts (SMEs) within agile teams reduce productivity. Commitment to quality and schedule is also a very important challenge.
Strong leadership followed by commitment, accountability and ownership is a mindset and the soft skills needed within the team members to make the agile development methodology successful should be inculcated as a culture within the teams. Collaboration is dependent on this mindset. Hence I call it a philosophy.
Industry strives for early marketing and being agile in all tasks today is needed but we should also strive for right mindset for collaboration that enhances productivity and quality in this philosophy!
To learn more about best practices in Agile and CI, join us for our webinar tomorrow at 10am PST with Stanley Fong.