Panji Gautama

Engineering Initiative, where to start?

Performance improvement we must do, but where to identify it? Sometimes this kind of things might not obvious as they are, as experience and frame of reference from each of the individual engineer within your team might vary.

This post intended to share questions and framework that I’ve been using (and pushing) to my team to give cue and where to start on finding room for engineering improvements.

We start with very basic Minto Pyramid framework to help us have clear written thoughts of problems & solutions.

StepsActionRemarkSampleTips
1SituationExplain context and story on what is the current bottleneck / painpoints in problem statementFor 3 quarters Payment platform including Mobile API has been performing slow and lot of downtime despite of good business around it.Get insight from product manager, engineering in day to day activities, and get from overall engineering metrics ( e.g. APM, Latencies )
2ComplicationExplain real root cause / problem in details along with metrics as data / evidence based on the problem statementQTD availability 85% with Payment service related trx endpoints 95-percentile latencies on 2 secs. QTD no sprint achieve 80% story points. Legacy stack on python has been slowing team down due to limited knowledge on python & angular.Fishbone diagram
3QuestionsAsk a question that will define your objective which will you use for resolution- how can we improve Messaging platform availability ?
- how can we improve latencies on SMS related endpoints to 200 ms ?
- how can we achieve steady story points deliverable within the team?Use 5 why’s / 3 why’s
4ResolutionBased on problem & complication define initiative that answering objective- Migrate existing python & angular to golang & react to improve confidence and support on tech stack. Backed with monorepo and high maturity in golang will significantly help the team during development and incident.
- Perform database refactoring & indexing to improve latencies to 150ms
- Implement tracing & monitoring to improve availability and incident response, currently Payment Team have limited observability ( only limited log )Try to come up with mutually exclusive and completely exhaustive resolution plan

List of the initiatives could be on google sheet or docs, or whatever documentation that works for your team. Then we move to the next 2 steps :

  1. **Identify where we are today in terms of Engineering Metrics
    **
    I wrote engineering metrics that I personally usually track here on this link. Generally speaking it’s going to be revolve around Apdex, Latencies, Availability, and Internal Service SLA.

  2. Follow up questions and drill down on #1 metrics

I personally use 12factor , and service tenets [1] [2] [3], and these following questions to start evaluating our services.

Agility

Availability

Performance

Security

Automation

<< Previous Post

|

Next Post >>