Engineering Excellence: How We Take Pride in Delivering Quality Code

The CC4.0 project team

At GDS, we’re all about engineering excellence.

We believe that engineering excellence is not just about writing code; it’s also about how we approach the entire software development process.

We place a strong focus on fostering a culture of excellence within our teams, encouraging team members to continually learn and share their knowledge and best practices with one another.

Here are some of the things our project team, Career Coach 4.0¹ does to make sure we’re sticking to this rule.

Roles and Responsibilities: A Key Element of Engineering Excellence

One practice that we always adhere to is clearly defining roles and responsibilities.

Each team member is constantly aware of their specific tasks and duties, allowing them to focus on their areas of expertise.

With each role, their access to different parts of the system is likewise restricted, reducing the possibility of errors or misconfigurations in our production environment that could potentially impact our end-users.

Cross-Functional Teams: Unlocking The Potential

While we do like to keep roles and responsibilities separate, we often encourage cross-functional collaboration as well.

It’s all about making sure everyone is on the same page and working towards the same goals.

One of the biggest benefits brought about by this collaboration is the diversity of skills and perspectives that team members bring to the table.

As an example, an Engineer might learn more about the infrastructure and deployment process, while a Devops team member might learn more about the coding side of things.

This enables us to approach problems and challenges from different angles, coming up with innovative solutions and, occasionally, “Eureka” moments.

Another benefit of having a cross-functional team is that it promotes a collaborative and inclusive working environment.

Team members can learn from each other and share ideas and thoughts, leading to a more holistic approach to problem-solving.

It also breaks down the pesky silos within the team and builds a culture of continuous learning and improvement.

Code Reviews: Your Code Is Not Your Code

One way that we ensure code quality is through our rigorous pull request (PR) review process.

Each time a team member adds new code or modifies existing code, they have to submit a PR.

The code is then reviewed by at least two other team members before it is approved for merging.

But... our PR review process doesn’t just end there!

The reviewers also have to make sure that the code is well-organised, readable, and adheres to the team’s established coding standards and conventions.

I know, code reviews can be intimidating at times.

It’s a nerve-wracking experience to have someone else look at your code and flag errors or areas for improvement.

However, it’s important to remember that the purpose of code reviews is not about finding mistakes or pointing out flaws.

Rather, it’s about making sure that the code is of high quality and meets the team’s standards.

It is also an excellent method to share best practices and learn from each other.

“Your code is not your code.”

The code you write is not just for you; it’s for the entire team and the end-users who will be using the product.

Testing, Testing, 1, 2, 3

Another crucial element that contributes to engineering excellence is automated testing².

It’s akin to having an extra set of eyes that catches any bugs or issues that we might have missed.

And it’s not just about catching bugs or errors either; it’s also about ensuring that our application is reliable and functioning as it should before it is deployed to production.

The best thing about automated testing is that it saves us a lot of time and effort while minimising the risk of errors or misconfigurations.

Manual testing is an enervating process.

The joys of manual testing…
The joys of manual testing…

Trust me, even seasoned engineers occasionally overlook an infinitesimal defect.

Continuous Integration and Deployment: When It’s Time To Deliver

When it comes to deploying our code, we like to keep things automated.

Our CI/CD pipeline automatically builds the code and runs all of the tests whenever someone on our team merges new code changes into the main project repository.

Additionally, the code won’t go into production until all tests are successful.

This makes it less likely that our users will be affected by bugs or system misconfigurations.

Our team during deployment days…
Our team during deployment…

Conclusion

Engineering excellence requires a multi-faceted approach that includes code reviews, automated testing, continuous integration and deployment, cross-functional collaboration, and a focus on code standards and best practices.

It is also important for the team to cultivate a culture of learning, knowledge sharing, and collaboration.

Each member needs to be aware of their specific tasks and take ownership³ of them in order to work efficiently and effectively as a team.

It goes beyond simply creating code, improving processes, or leveraging tools.

It’s also about the culture and mindset.

Footnotes:

  1. Career Coach 4.0 (CC4.0) serves as a career advice information central hub. It provides a range of career matching services that are uniquely tailored to the needs of both employers and job seekers.
  2. Test Automation Coverage — A perspective
  3. Book Summary: 10 points from ‘Extreme Ownership’

--

--

Terence Lucas Yap
Government Digital Products, Singapore

Sleeping comes so naturally to me, I could do it with my eyes closed.