Using data to improve software engineering

Whenever working on a new source code, I find it quite cumbersome to grow to enough understanding around it to be productive with it both in terms of security and speed of delivery. This problem can especially get challenging given different factors like:

  1. Lack of documentation around the source code or architecture.
  2. Unknown external dependencies relying on the current project to function as a system.
  3. Different developers contribute to the project without a unified coding style/conventions.

Over time, I’ve grown some instincts about understanding smaller software projects with a list of questions related to their function and trying to answer them one by one by interrogating the git history.

My method, of course, is not only helpful with the code written by others but also helps me to understand what I was thinking about a couple of weeks ago, developing a piece myself. However, this approach is relatively harder to apply when the project is more prominent in size.

Searching around this topic, I stumbled upon the following video by Adam Tornhill, which describes a method as an answer to this problem with the potential to expand it to other areas related to software development like organizational level concerns.

He also has a book on the same subject called Your Code as a Crime Scene, I enjoyed his presentation, and yes found the next interesting book I’m going to read 😉