North East Blog Directory

January 13, 2017

Ryan Tomlinson

6 engineering organisation anti-patterns

Building and running an effective engineering organisation is not an easy task. In fact, it's very very hard. It's easy to evolve into an organisational structure and for the process to be iterative but, hands down, it's the most important part of any effective tech business. Over the years I've realised that it is the difference between top engineering leadership and poor engineering leadership. The result of which is the engagement and productivity of talented engineers and equally important, the ability to attract talent. Good engineers care about this stuff. They want to be effective.

I've made a lot of mistakes in my career and continue to do so. Here is a list of things not to do, in my experience.

  1. Teams not owning their deployments - A deployment (or release) team is symptomatic of an evolution. You get to a point where deployments are complex and arduous, it takes engineering time away from actual engineering. The focus then becomes on moving the responsibility out of the team. The problem with this is that the team still knows the most about their software. About what changes were made and the impact of the release. The release team simply becomes a proxy and another wall in the value map.
  2. Bugs being your yard stick for quality - Granted, software quality is not easy to measure. But it's often a red herring for more deeper problems. There has to be a holistic approach to improving quality. Addressing cycle time, batch sizes, QA processes and metrics that give us insight into our software are far more important. Focus on enabling engineers, not restricting them. A more effective measure is mean-time to response (MTTR). If one thing is a certainty in software development, it's that bugs will happen, always. Focussing on putting systems in place so ensure they are caught early and fixed/deployed quickly is a much better use of time than tracking bugs and persecuting teams.
  3. Not focussing on DX (developer experience) - I love this term, which I actually stole from my friend Steve Higgs. Good engineers want to ship software without friction. They should be able to be completely self-sufficient in doing so. That means spinning up infrastructure (automated of course), setting up a deployment pipeline (which hopefully is already in place), building software and shipping it. The right tools and platform should be the foundations for them to move fast.
  4. "Agile" by enforcement - Don't get me wrong. Exposure to Agile or any other methodology is fine. But Agile is not a panacea. It will not fix underlying issues. Equally the focus should be on BEING AGILE rather than DOING AGILE. Standups, retrospectives, definitions of ready/done, are all good things, but they won't make you any quicker or agile if it still takes 3 months to deploy your software.
  5. Horizontal teams - Teams should be built around ownership. They should own the whole vertical of their domain or product. This allows them to know the product inside out and support their systems. The worst culprits here are external bug fixing teams or teams aligned to countries. The team that owns and develops the product know most about the impact of writing code. When external teams attempt to fix bugs they don't have the context and insight and spend time fixing the symptoms, not always addressing the cause.
  6. Building process in lieu of trust - Developers hate process because most of the time it's waste. Managers like process because there is an illusion of quality control as process increases. The worst thing a manager can do is to not review and map out processes and calculate the cost of each step. A good way to do this is using Value Stream Maps. We can map out processes and visualise the cost of a process and the transition between processes to identify waste.
    Value Stream Map Most of the time processes can be drastically reduced with automation. A good example here is the typical approval process in deploying software. Approval by hierarchy is a common mistake. Trust and train teams to own their process and continually assess quality within the team. They will make mistakes but good leadership allows for that and encourages a mindset of continuous improvement.

by Ryan Tomlinson at January 13, 2017 10:21 PM

January 12, 2017


Mincemeat Turnovers

Every New Year's Eve I crave oliebollen, but since these require deep frying and hence too much faff, I make appelflappen. Apple turnovers are the only traditional Dutch New Year's Eve food that isn't deep fried, but baked in the oven instead.

Last year I made the filling for the appelflappen from scratch. This year I used a jar of mincemeat instead. Far from traditional, but if the number of these minceflappen that my daughter ate is anything to go by then it was a success! Using a jar is definitely easier than making the filling from scratch, but I thought the mincemeat turned out a bit runny. I think I prefer the more traditional apple turnovers, but think that the ease of using a jar will probably win me over to make these again next New Year.

500gr puff pastry
400gr mincemeat
1 beaten egg
About 2 tsp sugar

Pre-heat fan oven to 200°C.

Roll out puff pastry thinly.

Cut pastry into twelve squares of about 12cm.

Place small heap of filling in centre of each square.

Fold each square over to form a triangle.

Brush with the beaten egg and sprinkle with sugar.

Bake in oven for about 10-15 minutes.

1 January 2017

I made two batches yesterday for a party, but because I only had one jar of mincemeat I made one version with a more traditional apple and sultana filling.

For the mincemeat version I heated the mincemeat in a pan and drained the liquid off through a sieve. This helped the consistency of the mincemeat turnovers, but not necessarily the flavour!

For the apple and sultana turnovers I used one cored and peeled and chopped apple and an inexact amount of sultanas and currants soaked in sherry with speculaas kruiden (cinnamon would do). Before folding the pastry over the filling I put a thin marzipan sausage on the filling.
This version was much tastier than the one with mincemeat and is the one I will be making in the future.

by Mario ( at January 12, 2017 08:01 PM

# This site is managed by the team at SuperMondays, is hosted by the team at Consilience and is maintained on github.