Pros and cons of agile development methodology and agile principles
Agile Development Interview Questions and Answers
|Agile Development methodology Q1 - Q6||Agile Development methodology Q7 - Q16||Agile methodology: theme, epic and user story||Pros and cons of agile development methodology and principles|
Q. What are the key benefits of agile mehodology?
- Decreased time to market as agile process is based on the philosophy of early and regular releases. The iterative nature of agile development means features are delivered incrementally, enabling some benefits to be realised early as the product continues to develop.
- Better quality as testing is integrated throughout the sprints, enabling regular inspection of the working product as it develops. This allows the product owner to make adjustments if necessary and gives the product team early sight of any quality issues.
- Improved communications due to active involvement and colocated multi-disciplinary teams. This provides excellent visibility for key stakeholders, both of the project’s progress and of the product itself, which in turn helps to ensure that expectations are effectively managed.
- Lower costs because unlike in traditional development projects, where you write a big spec up-front and then tell business owners how expensive it is to change anything, particularly as the project goes on. In fear of scope creep and a never-ending project, we resist changes and put people through a change control committee to keep them to the bare minimum. Agile development principles are different. In agile development, change is accepted. Instead of rejecting changes, the timescale is fixed and requirements progressively emerge and evolve as the product is developed.
Q. It looks too good, now what are the drawbacks of agile?
- Agile is a very sophisticated process and requires full management commitment and requires experienced and dedicated teams to achieve things within the allocated sprints. Otherwise, everything will blow up to become a backlogs.
- Time boxing can encourgage agile members to cut corners in terms of unit test coverage, documentation, code quality, design , failing to test negative scenarios, etc. It can also lead to over worked staff who lose motivation.
- It assumes that all developers are created equal. Doing a particular task might be a 5 point task for developer A, whereas for developer B, it takes 20 points. For example, this can happen if developer B is a back-end developer and not experienced with GUI development.
- Not all projects nor all phases are good candidate for agile. You should use agile if you can deliver tangible releases that can be tested by the testers within the sprint. For example, a GUI screen. Some projects may spend months developing back-end architecture without any tangible deliveries. Website development is a good candidate for agile development. It is also not suited where different teams use different methodologies. What happens when a development and QA team adheres to the principles of Agile, but the platform and production support do not?
Q. What are the agile resource Management principles?
A. The resourcing principles can be abbreviated to FASTEST as shown below.
Agile projects require require experienced developers and testers to get things done in allocated sprints. More and more organizations are getting into agile methodology, and it is really worth learning and experiencing it. I was fortunate enough to work on a number of such projects. These projects do need full commitment and support of the senior management.