Agile or traditional development, what is the best path?
Internet of "things", e-commerce, mobility, cloud computing and many other trends that come to revolutionize the existing operating models or create new "digital business" are faced with an old question: what is the best development approach to ensure speed to business needs, with productivity and without jeopardizing quality for end customers of the solution?
Over the past few years, many models, approaches and frameworks have been developed to assist development leaders and project managers. The best solution goes through assessing the system's technical features, its maturity level and an assessment of risk x return between the speed of deploying something and possible risks caused by solution's quality issues. Currently, as an alternative to applying the methodology in cascade, the most used interactive methods are RUP and its variants, which emphasize the process and project control through more complete and consistent deliverables.
They are widely used in software factories and are hand in hand with CMMI and PMI.
On the other hand, agile methodologies, such as Scrum and XP, try to refine the interactive methodologies, removing focus from processes and emphasizing the contribution of those involved in the project, bringing the business area closer to IT and generating faster value deliveries. Given this range of options and their different applications and benefits, it is not trivial to determine the appropriate methodology for each company, so we list some points that should be observed for this selection:
1. Requirement stability: in situations where the project scope is set, mapped requirements are stable and futures are foreseeable, methodologies that are traditional and planning-oriented are advantageous. On the other hand, when the requirements are subject to many changes as the project progresses, teams are small and deliveries can be smaller, fast development is critical, requiring the application of more agile methods.
2. Company culture: regardless of the methodology to be applied, the roles, responsibilities and processes must be defined and executed for success to be achieved. However, when we talk about agile methods the presence of people dedicated and committed to the project is even more necessary.
3. IT organizational structure: organizational maturity is an important indicator of which system development model should be adopted.
Agile processes require greater company maturity in terms of controls, processes, resources, time, and especially flexibility.
Understanding these aspects and considering the best for a company is to have proper IT management processes for your reality and needs, that is, systematized processes aligned to your culture and strategic objectives, and we notice that often the adaptation of one methodology or even the combination of the best practices of two methods may be the best alternative.
And this can vary by solution, segmenting by technology type, strategic importance of adjustment speed, user/consumer features, availability of developers, among others.