This is a must see talk by Glenn Vanderburg for every developer about what it’s software engineering and how this discipline it’s misunderstood in the business world and even in the software market.
Some interesting points of this talk and some comments about them:
- Modeling and analysis are about reducing costs, not for correctness: all mathematical models are representations of the reality not the reality itself, so it’s more valuable for software to test your App, prototype instead of having a complete UML model and documents (the equivalent of math in software development).
- Software is very unlike bridges and buildings: yeah it is, so the processes in software projects are very different for building projects, because of different needs.
- Additional complexity hinders requirements, design and approval
- Source code IS a model: we don’t need UML designs or many documents, source code itself are documents, and more precise than any document because it builds the system, modern programming languages enables us to write code more self expressing than before, use that advantage!. Of course some kinds of diagrams are useful but no more than the code itself, focus on the code.
- Building and testing our interim designs its effectively free: Through time this has become easier and easier, test are documents, executable documents to check the integrity of the solution and its fulfillment of requirements, test are the specification of the system.
- Empirical processes are rational for software