Introduction

Recently the Zaengle team was asked to look over an existing Laravel application and give a review of the overall state of the code. We were to act as an independent third party, between a new studio who had inherited the codebase, and the client, who was anticipating launching the product.

The studio had some concerns about the quality of the code they'd received and wanted an independent review prior to picking up development on the project.

Here are a few thoughts on the process I followed and several takeaways I had from the experience:

The most significant realization I had was how easy it is to let code degrade without a comprehensive test suite.

My Process

As soon as I received the codebase, I began browsing through the folders, looking for the tests directory. While there were a few UI java-based tests, I’d estimate the coverage to represent less than 20% of the app. The developers were obviously clever individuals who had poured tremendous effort into their project, but perhaps due to time and budget constraints decided against following a Test Driven Development cycle. It didn’t take long to see the ramifications.

Next, I started browsing through the app folder, opening a few classes here and there. I tried to choose ones that seemed to represent the larger intent of the application, such as User.php, Team.php, or Business.php, so I could acquire an understanding of the main players.