The Nature of Software Development

Developing software is a huge task which may easily overwhelm you. You need to learn not only the programming language itself, but also algorithms and algorithmic design. You need to master tools like Git, improve your debugging and testing skills, and improve your collaboration skills when working in teams (e.g. agile methods).

In the following video, I summarize the one big idea I got from the book “The Nature of Software Development” from one of the coauthors of the popular “Agile Manifesto”, Ron Jeffries.

Basically, the ideal software development process consists of the following steps:

  1. Decide on the features that would be valuable to ship to the client.
  2. Associate two values to each feature: costs of implementation (e.g. time or money) and value for the client.
  3. Take the feature with maximum value per cost and implement this feature, test it properly, and ship it to the client.
  4. Seek feedback and go to step 1.

At the heart of this process is a value first approach — and the philosophy of continuous improvement. In my books “Coffee Break Python” and “Coffee Break NumPy”, I show you how to continuously improve your Python skills.

Leave a Comment

Your email address will not be published. Required fields are marked *