Software development: paradigms

Asked

Viewed 230 times

11

I’ve always heard and still hear many comparisons, someone claiming to build software is assimilated to a building construction.

I see that engineers are able to design buildings on time 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: after the building is ready you can not move it no meter in any direction, already a software virtually speaking this would be yes possible.
  • Build buildings has well-defined stages and many of them cannot be anticipated or reversed: The plans, then the foundations, then the finishes for example
  • Build a software always demand a "back and forth" is full of "back and forth" as the project advances.

My question is:

Impose a single hand of steps, well defined type: requirements survey, analysis, design, implementation, testing and deployment, once as a building, ie make a step finish to then start the next.

or

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

  • 3

    Making software is completely different from building a building. This metaphor is invoked precisely to be denied. Without a doubt a circular approach, with short cycles of planning, execution and testing (SCRUM type) is the one that works best (or is less worse),

  • 6

    I have my doubts whether the question is adequate. It seems Gorilla vs Shark. On the other hand, if it is not, it may be duplicated from http://answall.com/q/3274/101

  • I think the answer to your question is depends. Soon I will try to write an answer.

  • I’m not comparing methodologies, I think this more to: follow a methodology or dance according to the music.

  • The trend today is iterative processes and Agile, that is, the second option. The first option is Waterfall and is more plastered, at least for most projects. But the choice still depends on the type of project, as evidenced in the @Pedrolaini response (although I believe that projects suitable for Waterfall are rarer to appear).

  • @Piovezan ie, the question is duplicated, right?

  • @bigown It had not occurred to me, but I think so. I thought that perhaps it was not the knowledge of the questioner these methodologies.

  • While I don’t refer to methodologies or cite them, now that I read the @bigown question it seems like something very similar to me, the difference is that I haven’t tried to compare methodologies whatever it is, it would be to use one or do as needed

  • "I see that engineers are able to design buildings on time and within the budget much more often."Where? When? I’ve never seen that ;)

Show 4 more comments

1 answer

11

Why software development resembles building a building?

The two processes are similar because they follow development methodologies. Methodologies are quite common strategies to be used in areas of knowledge focused on engineering, such as: Software Engineering and Civil Engineering. So there’s this resemblance.

What is a methodology?

Methodology is understood as the way - way - to use a a coherent and coordinated set of methods to achieve a so as to avoid, as far as possible, the subjectivity in the execution work. Providing a roadmap, a dynamic and interactive process for the 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 particular procedure or sets of procedures.

Therefore, methodology is a strategy used to define "who", "when", "how" and "when" do things.

And that’s why it’s as important as software development, choosing the right methodology for developing a project.

There is no way to say: "The cascade method is better than the RUP" or "SCRUM is the best of all time". 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 the development, shall be carried out on the basis of the nature of the project and the product to be the methods and tools to be used and desired controls and intermediate products.

There are 5 variables that need to be considered in the choice of methodology:

Weather

The time required to complete the project. For analytical matters, the time to complete the project is divided into the time required for complete each of the activities contributing to the completion of the project.

Cost

It is the cost of the project, calculated from the resources used.

Quality

The time devoted to individual activities determines the quality project overview. Some tasks require a certain time to to be completed properly, but with additional time be completed with exceptional quality. Throughout a project great, quality can have a significant impact on time and cost (or vice versa).

Scope

Requirements specified for the final result. This is the definition of what the project should achieve or a specific description of what the final result should be.

Risking

Potential points of failure. Most risks may be overcome or resolved, with sufficient time and resources.

Completion

Based on this, to choose a development methodology, you need to solve an "equation" like metodologia = TEMPO X CUSTO X QUALIDADE X ESCOPO X RISCO. This was just a joke, because it is not as exact as a simple equation and may have other variables, which were not mentioned in this post, which for some reason may influence the school as well.

Then, after you understand all the need of the project, it’s time to choose. But nothing prevents you from developing parts of the project using different methodologies.

Sources: Methodology of software development and What is Project Management?:

Browser other questions tagged

You are not signed in. Login or sign up in order to post.