If you’ve been involved in software engineering recently, you’ve probably heard of the "Joel Test" of software. I recently ran into a situation where a prospective client wanted to talk about estimates for building certain features, but without a signed contract wouldn’t give out access to the code base.
Obviously any estimates given would be very approximate, and probably dangerous shots in the dark. However for the sake of entertainment, I decided to play along and try to come up with approximate timelines. I thus came up with a list of questions that I could ask so that I could get a rough idea of the code quality that inhabited the invisible code base. I thought of it as a game of sorts - a Code Battleship, if you will. If enough of the answers came back negative, I envisioned the other party yelling in despair, “you sunk my code base!” Without further ado, here are the questions in Code Battleship:
- Do you have a staging environment?
- Does the application have automated tests? If yes,
- Are they currently passing?
- Do you have both integration and unit tests?
- Is your level of code coverage above 80%?
- Do you use continuous integration? If yes, does the code automatically deploy to a staging environment on successful builds?
- Do you have a work tracking system? Eg., Jira or Pivotal Tracker?
- Have previous developers used code reviews or pull requests for new code added to the system?
- Have you always had a developer with more than five years of experience on your team in a leadership role?
Have you ever played Code Battleship? Let us know in the comments if you have other questions that could contribute to sinking enemy vessels.