Glossary of Engineering Management Terms

Scalability: Can your system handle more usage without degrading? Scalability doesn’t cover bugs that happen when there are few users, losing data, security, more features, better UX…

Reliability: Fewer bugs.

DRI: A person who agrees to take responsibility for the success or failure of a project and in exchange gets the final say on decisions when there’s a disagreement.

Advisor: A person who helps the DRI execute a project better. He has no authority to impose his views.

Estimate: A guess as to how long something will take, not a guarantee.

Strategy just means a written down high-level plan that is thought through and agreed upon among all stakeholders, and which is followed for multiple quarters, at least. Lack of strategy means you get in your car and start driving without knowing where you’re going.

Culture are the norms of behavior expected in a company, which are followed all the time, and to which new joinees are indoctrinated. If you ask people in a company what their culture is, they frequently can’t put it in words, any more than an Indian might struggle to answer when asked, “What is Indian culture?” Culture is the unspoken beliefs, and is hard to change.

Process means coming up with guidelines ahead of time in order to ensure that the team is being run well. These guidelines can trigger based on time (e.g., weekly sprint planning). Or you can have e.g., a deployment process that you refer to whenever you need to deploy your code. You can have project management processes (e.g., retrospective), engineering processes (e.g., continuous deployment), etc. Some people misunderstand process to mean bureaucracy or overhead or having unnecessary rules.

Technical debt means a decision that results in extra work to fix later, just as financial debt means you purchased something on your credit card worth ₹100 but you end up paying ₹200.

Disagree and commit means that people should feel free to disagree and share their point of view openly, and debate it in a team meeting, 1:1, or however appropriate. The DRI should consider the new information with an open mind, and after that, make whatever decision he thinks is appropriate, at which point the dissenter should execute whatever the decision was wholeheartedly and eagerly.

Proof of concept means something built to validate
a) … whether users want it (in this form)?
b) … whether it’s technically feasible?

Low-code tools permit extremely fast time to market in exchange for a worse UX, limitations on what the app can do, and longevity (it won’t last years).

Backend is code that runs on your servers.

Frontend: The term frontend is used in two ways, one general and one specific. In the general sense, any code that runs on users’ devices, like a phone or a laptop. In the specific sense, code that runs in a browser.

DevOps means managing your servers, including deploying new code to your servers.

Production-quality: A production-quality app is built after MVP validation, and is scalable, reliable, has data loss prevention, and is built to last for years, as a base on which to build further. It has a level of quality that lets you make commitments to customers. It may support multiple platforms (e.g., mobile and desktop), support multiple languages or countries, APIs and be secure.

Minimum Viable Product (MVP): From an engineering point of view, an MVP is code built to validate hypotheses, and does not have the quality of a production-quality app: it may not scale, be reliable, have APIs, support multiple platforms, or last long. It might fall apart in a few months.

Psychological safety: Do team members feel safe to how they feel, be vulnerable, and admit their mistakes openly, knowing that they won’t be unfairly criticised, attacked or mocked? Psychological safety is one of those things where perception is reality: if people feel unsafe, you don’t have psychological safety.

Refactoring: One way to improve the code, where you change one component, then another, then another, and so on, till you’re done.

Rewriting: Another way to improve the code, where you throw away all your code and start from scratch.

Failure demand: Demand caused by failure to do something right for the customer. e.g., your app is buggy, so your engineers have to get on a lot of tech support calls, which makes it harder for them to find time to fix the root cause, resulting in a vicious cycle.

Outage means your system is not working at all. It’s worse than degraded, where it’s partially functional.

Code review: When an engineer finishes a unit of work and has tested it and self-reviewed it, another engineer reviews it.

Blameless conversation: When we work together, there will be a problem sooner or later. When that happens, we shouldn’t begin the conversation with blame. Instead, we should assume good intent on the other person’s part, and assume competency and start the conversation assuming there’s been a communication gap, or you might be mistaken on your side. If at the end of the conversation, you need to blame someone, you can, but you shouldn’t start with blame.

Innovation token: Sometimes you need to choose between a tried and tested approach to doing something and an innovative approach. For example, if your team has built backends for years using Spring, that’s a tried and test approach. It may be slow, but it works. You could explore

Latency is how fast your system is.

Strawman proposal Sometimes, we need to come up with a proposal but we’re stuck and unable to. In that situation, we put forward a strawman proposal, knowing it’s flawed, to get the team unstuck and start a healthy discussion after which we’ll come up with a workable proposal (different from the strawman proposal).

APIs: allow two different softwares to communicate, whether built by one company (such as your own mobile app and your server), or a third party. APIs can be server to server, or they can be server to an app or mobile app. APIs allow both sides to evolve independently. An API is a standard that both sides agree to, like an electric plug. I can buy a new fridge that uses a different technology (like an inverter), without rewiring my house because it uses the same standard plug.

Continuous deployment means that each piece of work an engineer does goes live immediately when it’s finished, without being held back for other work items.

Second-order thinking: When you do something, you should think not just of the immediate consequences about also longer-term consequences. e.g., when you neglect engineering investments like maintenance, you’ll get more done now (first-order result) but your team will bog down next quarter (second-order result). Second-order thinking means that you consider this before making a decision.

If you liked this, you may also like Glossary of Project Management Terms and Glossary of Product Management Terms.

--

--

Tech advisor to CXOs. I contributed to a multi-million dollar outcome for a client. ex-Google, ex-founder, ex-CTO.