Listen to your Codebase

David Jones · Jan 29, 2014 · 2 min read · Share:

Over the years I’ve been asked to evaluate an array of closed source codebases, many with several years' history. Without even running an application, I can identify a lot about the project state, the people involved, and the business behind it.

Your codebase and more importantly the version control history tells an incredible story. This history gives you a list chronological list of every change made and who made it.

Looking through version control history is like reading someone’s diary. All the secrets are on the table.

You find out the following right away

  • How many developers have worked on the application? Individuals or teams?
  • What was the engagement like? In house, freelancers or a consulting company?
  • Who was there when the project started?
  • How much impact has each developer made on the project?
  • When was the majority of the project developed?
  • What’s the developer churn look like?
  • What’s the code quality like? Has it been hacked together or is it well factored? Is it well-architected or is it a mess?
  • How up to date are the dependencies within the project?
  • Is there a test suite?
  • Have aspects of the codebase been replaced many times before?

Based on what you’ve now learnt, you have to ask yourself the harder questions

  • If no one seems to stick around on this project, why? Is it the business direction? The people? Was the state of the project beyond repair?
  • What level of skill did the developers that worked on it have? How well was the knowledge transferred through the team?
  • What security risks exist within the dependencies and the codebase itself?

Next you can start to get a picture of the business

  • Based on when and how many people were added you can estimate the development expenditure.
  • Has the project been hacked together possibly due to the way the development funding was spent? Or was there a lead developer that stuck around and took responsibility for the project’s health?
  • Who was the key person responsible for the technical aspects of the project and did they establish a clear direction?
  • Is it going to be easy to attract new developers to work on this project or is it dated and frustrating to work with?
  • Is there evidence of specific business problems within the codebase?

Now that you know how to listen to your codebase, what is it saying about you?


Join The Conversation

Share and start a conversation about this post: