Software development: paradigms [duplicate]

11

I have always heard and still hear many comparisons, someone claiming that building software is equated with a building construction.

I see that engineers are able to project buildings on schedule and within budget much more often than IT professionals, in fact computer professionals rarely get these "feats."

Some comparisons:

  • Make a software the way a building is made: once the building is ready you can not move it any meter in any direction, software virtually speaking that would be possible.
  • Building buildings has well defined steps and many of them can not be anticipated or reversed: Planning, then foundation, then finishing for example
  • Build software always demands a "back and forth" is full of "comings and goings" as project progresses.

My question is:

Impose a single hand of steps , well-defined type: requirements survey, analysis, design, implementation, testing and deployment, one time as a building, start the next one.

or

Move through the steps: ex: Learn about a requirement and do requirements survey, analysis, design, implementation, testing and deployment then go back to the steps and start another cycle with a new requirement , edit: or not to follow a methodology, but to use whatever is necessary according to the independent need of the methodology.

    
asked by anonymous 28.08.2015 / 16:17

1 answer

11

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? :

    
28.08.2015 / 16:42