By Ewelina Matalowska
What is Agile?
Agile has become a very popular and wanted process within organisations, but what exactly lies behind it? Agile is all about collective work, collaboration between team members, constant improvement and adaptability to change. Agile development allows more flexibility in changing requirements and assessing the direction throughout the product development life cycle. It consists of short work cycle repetitions known as iterative or incremental sprints.
One of the ways to introduce Agile to the company is Scrum. There are three roles in scrum: Product owner, Team and Scrum master. The essential part is the Daily Scrum, also known as a 15 minute stand up. During this short but intensive meeting, the team members provide updates on; what has been done since the last Scrum, what is planned ahead of the next meeting and what are the obstacles that will prevent completion of tasks. There are many other Agile methodologies, such as:
– eXtreme Programming
– Pair Programming
– Behaviour Driven Development
– Test Driven Development
– Dynamic Software Development Method
– Lean Software Development, etc.
• Agile teams are more responsive to changes in requirements, even at later stages of the development life cycle
• Customers gets working features of the product at the end of every Sprint
• Teams work in a collaborative and interactive way, with daily Scrum meetings
• Works well for smaller projects that require small teams
• Can be cost effective as the customer gets the required product at the end of the development life cycle
• Less documentation could be a risk factor for planning and estimating
• Requirements are often not very clear and can affect the end product
• Minimal upfront planning could potentially face some unknown risks
• Not always suitable for lengthy and large projects
• Does not work if team members are not willing to collaborate and interact with each other
Is Agile Methodology Right for Large Companies?
The Manifesto says: “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value”:
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan
Usually, large-sized companies are heavily centred on processes and procedures with an implemented waterfall or V-model software development life cycle. There is not a perfect Agile solution for every company. It might be difficult to implement Agile methodology, as often development and testing teams are based in different locations which do not allow smooth and flawless collaboration. However, Agile transition is not impossible in large companies. It’s all about the culture and applying the right solutions to the right projects. All teams should have a willingness to change and collaborate in order to successfully implement the values of the Agile Manifesto. Implementing Agile on a large scale can be challenging as it works best for smaller, shorter projects. On the other hand, it can bring more benefits to the company through responsiveness to change, efficiency and fast adaptability. This will lead to higher customer satisfaction and as a result increased sales and profit margins.
Challenges of implementing Agile in large organisations can be overcome by applying an appropriate set of tools and solutions. Every large scale Agile development has at its foundation – the system architecture. That requires that all the parts of the systems are as independent as possible, which brings benefits for the design stage. Increment planning can manage coordination between modules and teams. “Large scale” does not mean it is not possible to go Agile.
Agile software development is different. That does not mean it is better or worse than traditional software development models. It simply breaks down large and inflexible projects into frequent, incremental and iterative releases. Software goes through the typical life cycle (it is designed, built, tested and quality verified) at each short iteration. Agile teams are more in control of their work. Swift feedback and closer interaction with customer’s needs can avoid unnecessary activities. So in conclusion, with the right frameworks in place, Agile development is possible for all sorts of projects, either small and manageable, or large scale projects.
e-testing offer Agile software testing training courses, such as: iSQI Certified Agile Tester (CAT) and ISTQB Foundation Level Extension – Agile Tester which will provide the skills to successfully apply Agile methods to your projects. For more information contact us.