Why software development resembles the construction of a building?
The two processes are similar in that they follow development methodologies . Methodologies are very common strategies to be used in engineering areas of knowledge, such as: Software Engineering and Civil Engineering . So there is this similarity.
What is methodology?
A methodology is understood as the way - way - to use a
coherent and coordinated set of methods for achieving an objective,
so as to avoid, as far as possible, subjectivity in the execution
of work. Providing a roadmap, a dynamic and interactive process
for structured development of projects, systems or software,
aiming at the quality and productivity of the projects.
The dictionary [WEBSTERS, 1998] defines methodology as a set of
methods, rules and postulates employed by a discipline: a
procedure or set of procedures.
So, methodology is a strategy used to define "who", "when", "how" and "when" to do things.
And that's why it's as important as software development, choosing the right methodology for developing a project.
There's no way to say, "The cascade method is better than the RUP" or "SCRUM is the best of all times." Everything depends on the need of the moment, the company and the customer.
How to choose the methodology?
The choice of a methodology to be used in development should be
be based on the nature of the project and the product to be
developed, the methods and tools to be used and the
controls and intermediate products.
There are 5 variables that need to be considered in choosing the methodology:
Time
The time required to complete the project. For analytical reasons,
the time to complete the project is divided into the time required for
completing each of the activities that contribute to the completion of the
project.
Cost
It is the cost of the project, calculated from the resources used.
Quality
Time dedicated to individual activities determines quality
the project. Some tasks require a
completed, but with additional time
completed with exceptional quality. Throughout a project
quality can have a significant impact on time and cost.
(or vice versa).
Scope
Requirements specified for the final result. It is the definition
general objective of the project should be achieved or a specific description of
what should be the end result.
Risk
Potential points of failure. Most risks can be
overcome or resolved with sufficient time and resources.
Conclusion
Based on this, to choose a development methodology, you need to solve an "equation" of type metodologia = TEMPO X CUSTO X QUALIDADE X ESCOPO X RISCO
. This was just a joke, as it is not as accurate as a simple equation and may have other variables, which were not mentioned in this post, which for some reason may influence the choice too.
Then, once you have understood the whole need of the project, it is time to choose. But nothing prevents you from developing parts of the project using different methodologies as well.
Sources: Software Development Methodology and What is Project Management? :