Nowadays, most companies must use ICT in the development and expansion of their business. That’s why currently, it’s difficult to imagine a company that hasn’t had to implement a software development methodology, whose goals are generally to simplify, automate, and/or speed up processes according to the type of business or company.
However, software development and implementation processes can get complicated if the appropriate methodology is not applied. So what happens when these processes start to get complicated? Everything takes longer than expected, and costs surpass the initial budget, generating dissatisfaction for everyone involved. For this reason, you must understand the development methodologies and learn to identify which is most viable and most profitable for your business.
Let’s start by saying that a methodology refers to logical procedures that serve to achieve one or various objectives within a specific task. So, in the execution of software projects, the methodology represents a framework. It allows one to establish a structure and determine the project’s development process in question.
Maybe you’re thinking about what would be the appropriate methodology for that software project you need to implement at your company. Still, to do this, it’s key to understand the methodology “families” and the pros and cons of each one.
Traditional Development Methodologies, the classic ones.
Everything starts with Traditional Methodologies that develop in the software industry’s roots when projects need to be established under a logical work structure. These methodologies contain very defined and solid phases and under sturdy and thorough documentation parameters that generally make the process slow and complex.
At this point, the involvement of the client is usually limited; for example, in some traditional methodologies like the Cascade, as a client, you only participate in the first phase of the project to make your necessity clear; what it is that you want and what is the result you are hoping for.
You’ll get involved again later in the software implementation stage. But, what happens in between phases is, to some extent, unknown to you. Although it may seem trivial to ignore project phases, it might be that there are mistakes in the understanding of the needs of satisfaction (actually, it’s quite common). Thus, when implementing the product, you realize it doesn’t fully meet your expectations. Of course, this can be corrected, but it has an additional cost, and taking into account that you will have already invested considerable time and resources, the project loses profitability.
Agile Software Development Methodologies, a pragmatic vision.
Inconveniences observed in the projects developed under traditional methodologies were the reason Agile methodologies were born. The needs started to get more and more variable and dynamic.
It was no longer viable to spend so much time obtaining tangible results in each phase of the project. Plus, this approach had the additional risk of the final product not meeting expectations. Speed in execution and a loss of documentation relevance (although it doesn’t disappear) are Agile methodologies’ characteristics.
This type of methodology proposes to do what is necessary; no more, no less. In contrast to the traditional ones, Agile methodologies are flexible. Their purpose is to adapt to any necessity to achieve effective investment of time and resources to attain the desired profitability.
Within this family, some of the most used are the methodologies XP, Kamban, and Scrum. But we will go into more detail about that in a future post.
Hybrid Methodologies, a good try.
Finally, towards 2010, hybrid methodologies appeared, combining traditional methodologies and agile methodologies’ best practices. They look for documentary robustness and swiftness in the delivery of results to the clients. However, this type of methodology has not had much success in practice, so you probably won’t hear much about that.
Agile methodologies currently frame our industry, and to a lesser extent the traditional ones too. After this broad overview of development methodologies, do you have any idea which is the most appropriate for your business?