An Elegant Puzzle – Systems of Engineering Management by Will Larson.Pdf is a practical guide to navigating the complexities of engineering leadership. The book blends technical expertise with organizational strategy, covering topics like team structures, hiring, managing performance, and scaling engineering organizations. Larson provides frameworks for decision-making, optimizing processes, and fostering a healthy work culture. Through real-world examples and insightful strategies, the book helps engineering managers tackle common challenges while maintaining efficiency and innovation.
Keeping innovation and maintenance altogether within one team and maintain a team work.
As engineering teams are tend to grow they mostly follow a common pattern is to split a work. One team works on innovation of the project, the other team works on maintenance of the project.
For the innovation team this started their work seems to be great. They’re working on exciting greenfield projects. they are reaching in their opportunities are endless.
Next to the the maintenance team sees things differently .They work differently,pattern of the work is also differently. They’re stuck on the money. The financial matters code with no career growth opportunities in sight.
The easiest and the quickest way to lose the trust is building the science projects in the name of innovation and Maintaince.
Innovation begins within to starts with a practical application. Maintenance begins with the both practical and theoretical. But they can quickly develop gradually into a science project as engineers get excited about the technology, innovation and Maintaince.
Building science projects and experiments is a set of instructions for preparing the frustration from teams depending on successful delivery from your engineers, and the ultimate as much money to pay for something for your team either exactly or in confidence.
The real cost of writing again and again is not the write for itself, but the data that comes afterwards or follows another set of data and system migrations. Great, you write again and again ,which is very bad part of your application. No doubt the new code is clean and hopefully better tested but maintained work goes on.
Now comes the most important and the tricky part is migrating everything over to the new system which is quite bit of challenging. Now you’re touching and re[pairing the parts of the system and code you never planned too. Now you’ve entered the dreaded unnecessary part of the code.
Fraudulent projects happen when projects out of control. Small rewrite quietly become multi-months monster projects that suck all the energy and projects are moving all ahead.
Counterintuitively, the worst to worst mistake is that you can make is billing part the way through and leaving a half-done migration. You have to finish the work you started and then go.
When something stops working at demanding and increasing the scales, it is a sign of the system which was designed by appropriately and not over-designed. It’s easy to take proud in systems which are still standing many years after they were built, rather than increased load to the machine and man.
But that might be a sign of the system which was over-designed to start off.
Developing for scalability needs balance with machine and team is to understanding the opportunity costs. That time you spent building a scalable system early on may have been better spent on something delivering more business impact.
As you move from generalists to specialists, you will create more single points of failure
Growing teams typically create more specialized roles. A team of full-stack team developers starts to hiring mobile engineers, software developers, technical lead, which splits into Android engineers and iOS engineers.
As we introduce more specialized and challenging roles, we unfortunately have to create more single points of failure which we know it will happpen.If you only have one Android developer then he or she gets sick and feel stuck, and she raised the question in her mind how are you going to deploy that Android critical fix?
Most of the developing ,technical and engineering managers are struggle with time management because time is less and work flow is big, they should stop handling exceptions and design patterns for someone else to takeover work. If you feel your team is grow well and do well in their work then the managers need to stop handling exceptions and open the door for somebody else who takeover that responsibility and maintain trust.
One of two things will happen:
Somebody goes up-
Nobody goes up, in which case there’s a good chance of your contribution which wasn’t that valuable to start with.
The author provides a detailed explanation about the list of managers which are fail to manage their own time, but I found these tips and tricks are the most useful.
The first step to plan the number of people is to figure out what you do and what they do in their teams.
Succession planning isn’t something which I thought about much as a about the new manager. I know I was just doing my job and i do it very well.
But for my team to grow 2times or 3times, I needed to start thinking about the work I did it and who work on my team they can grow into that work.
Whether you consider it the number of people planning or representatives, taking an complete list of items of your work will provide growth and opportunities for the developers and the other members of your team and for yourself.
Treating your look with difficulty as your first team allows you to practice your manager’s job.
As a manager, its feeling like your first responsibility is your own team. You watch over them, support them, and lead them.
But your be just visible for the other managers.
And if you’re expected to takeover to the next level of your boss’s role, then surely you need to start thinking about serving your peers. Attend to their needs and their difficulties in the particular find areas that to lead among those people to practice the job of your manager without yet taking over that formal responsibility.
That also means growing a more self-sufficient and able to maintain the level of operation within the team you manage.
