In the engineering organization, these engineering principles serve as a playbook (guideline) for our behavior and explain how to deal with daily tasks and new challenges. They help us to make big and small decisions that align with our engineering culture. Continue reading as we dive deeper into each of our 5 engineering principles.
#1. KNOW WHY
Start with why. We are not here just to write code, we are here to solve difficult customer problems in the healthcare industry.
Think big picture.
Understand the goals we’re aiming for and why we chose those goals. Question assumptions and get answers. Always understand why you are working on something before you start working on it.
#2. CLEAR > CLEVER
We spend more of our day reading code than we do writing it, and most of the code we read was written by someone else. Have empathy for your fellow coders.
- Avoid ambiguity.
- Readability counts.
- Name things as succinctly as possible.
- When naming fails you, write comments.
- Write clear Pull Request descriptions and test plans.
- Explicit is better than implicit.
- Simple is better than complex.
- Complex is better than complicated.
- If the implementation is hard to explain, it’s a bad idea.
#3. CUSTOMER EXPERIENCE FIRST
The customer experience always comes first, and we choose our technologies and processes wisely in order to maximize our commitment to customers.
We put an extra bit of time and effort into each feature to ensure that it not only works well but delights customers, even if it is a challenge to code.
Our software impacts patient care in very real ways, so we are vigilant to produce code that is efficient and dependable.
#4. LIMIT THE BLAST RADIUS
We know that our product is considered mission-critical by 700+ healthcare organizations, and we do our best to maintain a high bar for reliability.
We understand that small and frequent deployments are better than large and infrequent deployments, and we approach our work with that in mind.
We take the time to break down work and create small PRs that can be written and reviewed quickly. Although it can require more effort, we prefer our features to be the end result of a collection of deployments so that we have an opportunity to fix any issues quickly and limit the impact on customers.
#5. OWN YOUR IMPACT
We understand that we are all individually responsible for creating value, whether it’s through setting goals, planning, brainstorming, writing code, or reviewing code.
We are responsible for the code that gets written, reviewed, and shipped. We take ownership of that code after it is in production and continue to monitor and maintain our work.
We own our human errors and strive to continuously improve.
Engineering Principles in Action
The underlying thread that weaves everything together is iterative development. I highly encourage readers to also check out the Incremental vs. Iterative Software Development blog by Istvan Kadar-Toth.
We look for opportunities to embrace our engineering principles on the daily. We’ve woven them into our engineering team’s performance conversations and also make a point to celebrate when work aligns with one of our principles. We are continuously working towards improving on each of these engineering principles. Our goal is for these to become the conscience of the engineering organization.
The contents of this post as well as the opinions expressed herein do not contain business advice. The business information provided is for general informational and educational purposes only and is not a substitute for professional advice. Accordingly, before taking any actions based upon such information, we encourage you to consult with the appropriate professionals. THE USE OR RELIANCE OF ANY INFORMATION CONTAINED IN THIS POST IS SOLELY AT YOUR OWN RISK.