Engineering teams work on different codebases and environments, and principle guidelines provide clear direction on how a software engineer should approach different situations. This blog post shows how these guidelines are necessary, and the challenges of implementing them. And how scaffolds can enhance adoption. The post introduces StackSpot Plugins, a mechanism designed to streamline the creation of scaffolds.
The importance of having engineering guidelines
When you look through the lens of a company, it seems important for different teams working on varied code bases, to guide themselves with the same engineering principles. The idea is to have clear instructions on how a software engineer should act when facing a certain situation. Let’s list a few:
- I need to integrate with an external API. What’s the approach when we think about resilience?
- I need to log the system’s actions, is there any guidance on what to log for each operation performed?
- I’m starting a new project, is there any direction on the initial structure?
- What level of flexibility should I support for each feature?
For each question, there could be a section in your “engineering playbook” indicating the best way forward. And when we are in a company that is growing, hiring people, and evolving its product, this “playbook” tends to get bigger.
Are guidelines tangible?
When we read something we don’t put it into practice right after reading. We delay because applying concepts that have been explained can not work very well in the beginning.
Imagine a person who has just left the onboarding phase of the company. They have read all the guidelines and picked up a task to implement. This person needs to follow the guideline directions and deal with the business difficulties inherent to the feature and there are probably other concerns. Will they be able to implement within the expectation?
It’s not easy, especially without any kind of support. The engineering team already starts working with a high cognitive load for each task. This tends to affect the speed of implementation, assertiveness, and also the decision-making process so important in daily life to maximize the chance of us going the best way when we talk about the business itself.
Scaffolds to increase the chance of following guidelines
For each stage of the development project, there is always a moment when we need to start coding. This can happen when creating the project, constructing a new endpoint, creating a new function that will consume a message from a queue, a need to integrate it with an external business API, etc.
There is always a phase to write a “boilerplate” code. If the decision on how to implement the “boilerplate” is left to the developer, there’s a risk the guidelines may not be followed.
But, if this boilerplate is consumed from a platform that engineering has access to, considering a certain context, these initial steps can already come with the appropriate settings. And if we guide well at the beginning, there are chances of having more quality in the implementation. The idea is to reduce all unnecessary cognitive load.
StackSpot Plugins help create Scaffold
StackSpot offers a Plugin mechanism and facilitates the creation of scaffolds. For example, we can create a Plugin that creates a new project using a pre-established structure. And what are the Stacks supported by these Plugins? StackSpot’s Plugins are technology-agnostic, you can generate whatever is necessary for your context.
Later in this post, you can check some real-life Plugin examples. Currently, StackSpot offers two types of Plugins:
- Application Plugins: They are focused on facilitating the creation of new code within applications.
- Infrastructure Plugins: They help you with cloud provisioning mechanisms.
In this article, we will work on Application Plugins.
Some examples of Application Plugins
To make it easier to understand what a Plugin is, let’s check some examples of Plugins created in real applications here.
- A Plugin that generates all the configuration to use Spring Data JPA. The plugin goes far beyond including dependencies. It defines connection pool parameters and other details of the connection to the database.
- A Plugin that generates all the code to produce messages for Amazon’s SQS. In addition to the code, it also brings the Docker configuration to bring up the localstack.
In this repository, check out a list of several Plugins created focused on the Java world and using the Spring Stack. In the platform, you can search for Plugins and segment their use by teams.
Next steps for StackSpot Plugins
Next time, we will explore how to create an application Plugin from scratch, following step by step. We hope that this text helped you understand StackSpot’s Plugin mechanism. They can help your company in the process of turning suggested guidelines into scaffolds that can be applied by your team.
We still have much more to talk about StackSpot. Stay tuned for the next posts!
Unlock the speed and security of developing with StackSpot!
As experienced software engineers, we understand that you seek to provide efficient and standardized solutions that allow your team to focus on solving business problems, not on assembling the necessary infrastructure to tackle these issues. We recognize that time is precious and efficiency is vital. That’s why we’ve developed StackSpot, our Enterprise Developer Platform designed specifically for professionals like you.
How about a hands-on test of StackSpot, completely adapted to your company’s unique context and challenges? Our goal is to demonstrate how our platform can not only simplify the distribution of guidelines but also make their application easier, saving you time and boosting your team’s productivity.
Book a demo now! We’re eager to get to know you and your challenges. Let’s transform the landscape of your software engineering together with StackSpot.