At CellOPark, I lead the technical side of things across multiple products. In a nutshell, I am responsible for the following, for each product:
- liaising with the product owner about feature roadmap,
- liaising with the CTO about technical roadmap,
- release engineering,
- code reviews,
- prototyping new ideas,
- keeping up with new tech,
- one-on-one with team,
- interviewing candidates,
- handling production issues,
- making technical debts disappear,
- having architecture discussions with the team, and
- writing code.
The list of day-to-day tasks looks quite overwhelming, but I assure you it is not all that bad. Its all about letting go. I’ll explain.
What is important is seldom urgent and what is urgent is seldom important.
I didn’t start my role by being in-charge of all products. I was initially responsible for one product. As I got myself familiar with it and the business aspects surrounding it, I was able to formulate a technical plan as to how to attack the problem at hand. The Cynefin model was quite a big help. Seeing this plan thru is how I managed to gain confidence in myself and the team, which in turn allowed me to move on to the next product.
I pride myself on my organisational skills and thoroughness. Being thorough takes a lot out of you. You want to make sure that you spend the time on things that really matter. Overtime I learned a way to classify pieces of work that required my immediate attention as to those that could be passed on to the team to handle. I recently found out that the approach I am utilising was initially introduced by President Dwight Eisenhower as Eisenhower Matrix.
The matrix is split into four quadrants. I’ve classified some of my daily tasks within these quadrants to give you an idea of how this could help you manage your workload. I personally find it important to work on items that are on the technical roadmap. I equally find it important to instil a good coding discipline in the team and be available for them for help and discussions. My secondary priority is help eliminate manual work that is involved in day-to-day operations such as deployments, releases and manual testing.
“There is no code faster than no code.”
You do not always know which tasks can be delegated. Hindsight is a amazing thing, if we learn from it. For example, my team is very capable of investigating and handling production issues when they are armed with the necessary tools and knowledge. My goal is to make sure that they have what they need, so that I can relieve myself from this duty. However, there are cases where my presence is required, but this is an exception and not the norm.
An important lesson I learned, was that not every email is worth your time and not every technical discussion needs to include you. We need to pick and choose our fights.
I hope that my findings has helped you with your endeavour.