Technical Decision-Making

As we partner with our clients to produce desired outcomes, Lemma is often called to help make key decisions that will lead to those outcomes.

As always, problem-solving at Lemma begins with first principles. Only through an intimate understanding of our client’s circumstances, outlook, and risk tolerance are we able to make appropriate recommendations.

Asking the Right Questions

Before even considering solutions, we ask (and answer) key questions like:

  • What problem(s) are we attempting to solve with this decision?
  • What forces are driving action? What risks are we trying to avoid, and / or what opportunities are we trying to seize?
  • Is there relevant prior art at the company? Are there past initiatives that successfully solved or failed to solve similar problems?
  • What does success look like? What does failure look like?

This exercise is not limited to answering these specific questions, but rather ensuring that Lemma is operating at an elevated level of empathy and partnership with stakeholders, ensuring that we confidently know the answers to questions like this and incorporate them into the structure of our thinking.


Getting into the mindset of our client allows us to focus our attention on the most relevant areas of information in our subsequent analysis, leading to efficient and accurate decision-making.

Once we’re in the appropriate mindset and focused on the right criteria, we’re ready to apply our expertise to solving for those constraints. This might happen in the midst of a streamlined conversation, as an asynchronous interchange of formal artifacts and feedback, or anywhere in between, depending on the urgency of the decision and the communication preferences of the stakeholders involved. We may be asked to consider alternatives at length or we may be asked to make a quick judgment call with only a succinct technical justification, again depending on the situational need for thoroughness or expediency.


Beyond our responsibility to our stakeholders to help them make the right decision, we also have a baseline responsibility to capture and preserve any major decision across time.

That is, even if no formal artifacts were generated as part of the decision-making process, we have a duty to the future inheritors of our work to generate historical artifacts that adequately explain the reasons for a decision, so that they need not wonder or guess about it later as new circumstances give rise to the revisiting of past decisions.

Such decision artifacts should be closely linked to the work itself, so that they are readily at hand for any future reader who looks back through the history of the work. These may be so closely linked that they become code comments, commit messages, or pull request discussions, or they may be more loosely coupled, such as documents in a high-level decision log for the project. Ideally, a decision trail of such artifacts can be found both at a high level and at a detailed level, with cross-references between the two for easy discoverability. Such a trail helps a project to stand the test of time, even as individual contributors may come and go.

Are you okay with optional cookies?
By clicking “Accept”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.