Sitback has a Support team who are responsible for maintaining and optimizing the web solutions of our retainer clients. Some of these solutions are built by our project team and some we inherit. The solutions that we inherit, we sometimes find the lack of a consistent coding practice. In the same solution, a multitude of variance with algorithmic approach, code formatting and solution pattern. Though these solutions are in working order and do not contain any bugs, they do present a significant challenge when it comes to introducing a new feature or optimising an existing functionality. These projects are hard to maintain as they are hard to read, understand and extend.
Defining a solution is nothing short of a creative process. Everyone has their own style of programming and for a solution that is built and maintained by a single person, it will not be highly important to maintain a standard approach. In real life that is rarely the case.
Development of a solution often involves multiple developers and a different group of developers end up maintaining it post launch. The maintenance phase would include bug fixing, security updates and feature updates. As such If no coding standards have been defined then the project ends up suffering for the aforementioned technical debt of trying to make sense of the gap within the solution. In this scenario, the options are either a major refactoring to resolve the issue or to keep it afloat, which in turn keeps making the issue more complicated to the point it becomes unmaintainable.
To avoid the technical debt of lack of cohesiveness, at Sitback we have adopted a coding standards for programming languages and frameworks. We follow certain defined patterns for solutions based on the framework and solution. For example, for a solution built with Drupal, we have defined code formatting and solution patterns, which we follow in all our projects and have documented them to allow a smoother handover process.
At a very minimum it is important to have uniform coding standards and it is important to have a process which will ensure that the standards are being implemented and followed. It often turns out to be a cumbersome task to communicate coding standards via guidelines, this usually requires several pages of documents to be read. So, our developers use an Integrated Development Environment (IDE) and automated tools which provide feedback when coding standards are broken. This stops inconsistent code from being written and helps maintainability.
For our solution pattern, we maintain an internal forum of Tech Leads where we discuss the challenges and agree on solutions that is then propagated amongst the team. This requires a very close-knit group of Tech leads leading the team, which our tech leads excel at.
At the end of the day, in digital service, working as a team is the most important attribute required to deliver optimal solution!!