We use cookies to ensure your best experience. through your continued use of this site you accept this use. For more information, please see our privacy policy
a call
Conventions In Software Development. Bring The Culture To Your Project image

Conventions In Software Development. Bring The Culture To Your Project

When you develop a custom software solution, you are guaranteed to face the problem of keeping it nicely structured and strictly ordered. We already mentioned the vital importance of this in one of our previous articles on the Complexity Problem. One of the first things you have to take into account when starting a project is Conventions.

In general, conventions are the documented or verbal agreement, which describes common work scenarios for developers and other experts involved in your project development. Conventions represent the organizational and technical framework for your development team functioning. In other words, conventions build strong traditions and standards for code writing, application and architecture design, communication, and other project aspects.

Developers and project management often ignore or underestimate the potential of development conventions. It happens for different reasons, and the most common is a lack of experience and discipline. In fact, conventions can bring significant value to your project development:

With that said, let’s discover the types and levels of development conventions and figure out how to introduce them seamlessly. 

Convention Layers: Clean Project Structure On All Levels

We can divide the software development conventions into 3 levels:

As you may have noticed from the picture above, different convention levels associate with a developer's seniority level, and it happens for a reason. Let’s consider each level in detail to understand this correlation.


Code-Level Conventions

Code-level conventions are the most primitive. Developers discover those rules when they are only beginning to learn the development language. Project leaders can also modify or add new canonical rules for keeping the project code clean, auto-generating the documentation from the source code, personal preferences, or other reasons. Code-level conventions include but are not limited to the following:

As you can see, code-level conventions are entry-level (junior level) and don’t require strong employee expertise to create them. On the other hand, the incorrect decisions your team makes on this step can lead to significant expenses in the future. Changing the existing code-level conventions or introducing the new ones later means you need to change the existing codebase. This is unnecessarily expensive and takes a long time to implement.


Solution-Level Conventions

Solution-Level Conventions are more complex and require far more hands-on experience from the implementer. The complexity level these rules have is often comparable with the responsibility of the middle-level developer. Solution-level conventions usually include the following:

Solution-level conventions positively impact both the development and DevOps process performance. The strict and elegant structure of the sources of your project makes your build and deployment scripts tiny and lightweight. And this means cutting your expenses in the future.

Usually, introducing the solution-level conventions makes the project structure clearer and reduces the complexity level of the whole project. This speeds up your development process and saves your time and money in the future.


Abstraction-Level Conventions

This level is the most complex for understanding and only highest-level developers (senior-level) are suitable for creating those rules. Abstraction-level conventions aim to document the meaning of the project entities, their availability, and the proper way of using those.

Most developers only follow those rules and implement new features into the project based on the established framework. Here are the core components of the abstraction-level conventions:

Frequently developers fail at following these conventions, and this happens for two main reasons. Firstly, developers may lack the relevant experience, strong fundamental knowledge, or time working with this specific project. Secondly, there may be existing low-quality conventions that make the project unclear and - therefore - lead to an incorrect understanding of how things should work.


The Challenges You May Face When Creating Conventions

As we have already discussed, the proper conventions can make your project significantly easier to understand, eliminate the waste of time, optimize your documentation, and - consequently - lead to saving the budget. Nevertheless, you should take convention development seriously.

Before introducing the new conventions to your project, consider the following points:

The Bottom Line

Controlling the project complexity is far from a no-brainer. It requires motivation, proper attitude, and strong experience in the industry. If you have a revolutionary idea but lack the technical expertise, the best solution is involving the professionals.

Chief Executive Officer
02 Jun 2020
Posted date: