#begin

David provides us with his definition of Software Engineering (SE) in this chapter:

Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.

When I read this it matches really nicely with my own ideas of what SE is. I never really thought about defining it but I always liked the idea that: We in the software industry have computer scientists who do in depth research to all kinds of interesting topics and then industry applies and puts these theories to the test. In the end we will then find out which of these theoretical solutions work in the real world. I guess that’s the empirical part of Davids definition.

David also mentions (in bold :D) that: “we must become experts at learning and experts of managing complexity”. He defines these two types of experts in a couple of subjects:

Experts at learning need the following:

  • Iteration
  • Feedback
  • Incrementalism
  • experimentation
  • Empiricism

Experts at managing complexity need:

  • Modularity
  • Cohesion
  • Separation of Concerns
    Abstraction
  • Loose Coupling

These subjects align nicely with the first parts of the book. And when these theoretical ideas are explained David will provide us with some practical tools to drive SE into the right direction. These are the following:

  • Testability
  • Deployability
  • Speed
  • Controlling the variables
  • Continuous delivery

David then goes on to talk about what engineering is and where the term Software Engineering came from. Apparently the term “Software Engineering” originates from the 1960s and was first used by Margaret Hamilton who later became the director of the Software Engineering Division of MIT Instrumentation Lab. Amazingly she was working on flight-control software for the Apollo space program.

It truly amazes me how much fundamental, awesome and important stuff happened in the early days of computing. Uncle Bob talks about this all the time; read old books about computer science! And he’s right, I’ve read some of his recommendations and they were indeed worth reading.

 

#end

01010010 01110101 01100010 01100101 01101110

Hey, sorry to bother you but you can subscribe to my blog here.

Never miss a blog post!

You have Successfully Subscribed!