The process of taking an idea and turning it into a working piece of code. The whole process fascinates me because of the social interactions that arise from groups like Engineering, Marketing, Product Management, and Quality Control interacting and contributing.

The process of creating a software system. The software engineering process typically consists of the following stages, whether they are consciously followed or not:

  1. requirements engineering
  2. problem domain analysis
  3. system&design
  4. system implementation
  5. testing
  6. maintenance

Actually, username has described the Linear sequential model of software developement. There are a few others, including the prototyping model, the incremental model, and the spiral model.

Actually, pretty much all professional software development models include all the stages described by username. The difference is that the more sophisticated ones interleave those stages one way or another, which enables them to get a better result in a shorter time.

Why? Because in software development, it is embarassingly often the case that you don't know how to do it right until after you've done it wrong, and having to start over from scratch because you find out during testing that the whose system is crap because the requirements weren't specified exactly is a real bitch. So instead, you try to do everything at the same time in a way that allows fundamental changes with minimal pain (by trying to make them early).

Realizing the necessity for this and incorporating it into your project management is the first and most important step towards mastering software engineering.

Log in or register to write something here or to contact authors.