For hundreds of years in Christianity, children have been taught to avoid and gain awareness of the seven cardinal sins that come across to them. Software engineering leads and CTOs, no different from the rest of humanity, also fall prey to these seven sins in different stages of their career and role.
The teaching of sins also comes with the teaching of virtues, so that those who are being taught can become better versions of themselves. Here is a short retelling of the seven deadly sins as I have observed them in my own career:
For software engineering leads, lust manifests in the want to employ the fanciest trends of the latest edition of the Gartner Hype Cycle into their product - in hope to make themselves feel better and cutting edge. We lust for new, upcoming and bleeding-edge technology and platforms to signal virtue to our peers and the rest of the industry. We want to tell others that we are already in the future and therefore we desire to solve problems through the latest trends, not because the trending technology actually helps our product.
Replace lust with chastity: You are building technology to service utility for your customers, not to service your own ego. Hold your desire for things that look good just on your LinkedIn.
There is a saying in our business that goes that if you are tracking every datapoint, you are not tracking anything at all. Tech leadership often succumbs to every “badass” report, datapoint, metric, KPI that they can monitor. And all those reports have to be real time as well, in real time dashboards of course visualized with the latest version of d3js, and every analytics software that they can get their hands on. Gluttony for data floods our brains with noisy information which implores you to keep searching for needles in a haystack. Inventing work just to remain busy is the very definition of counterproductiveness.
Replace gluttony with thoughtful moderation: Data should only be consumed to confirm or refute your hypothesis. Never look at a report without a question.
Being a technology leader also puts you in the limelight. The more you get, the more you want more. Engineering leaders develop a greediness in their behavior for rewards, for status gains, for invitation to tech conferences, for likes and RTs on Twitter posts to claps and views on their Medium stories. They need to be the smartest, wittiest people in the room in their own minds. The need for constant social validation and internal battle with insecurities like the imposter syndrome makes you covet all of the things that do not help your product or your customers.
Replace with greed with generosity: If kindness is your operating principle, you will see it being reflected in the products you build. Think from a point of abundance, instead of scarcity.
A technology leader that does not ship will always fail to justify their existence. Engineering on its core has always been a delivery organization. The nature of the job is to ship, after all the song and dance. Ship at scale, ship consistently and ship faster. It is very easy to get lost in picking the right stack, picking the right team and picking the “development strategy” amongst other things. Engineering teams that don’t deliver fail publicly within the company and cause long lasting damage to business plans.
Replace with sloth with diligence: Invest in great CI/CD processes, save developers' time, audit your organization’s energy. CTOs and Engineering leads need to know that git commits are not the only things that matter. A well managed engineering team frees up the bandwidth of their engineers by avoiding flotsams and jetsams in their schedule.
No amount of planning works well when things start to go south. Engineers fall sick. Ad Hoc business requirements come and derail the sprint. Designs change. Features balloons in their scope waiting to be absorbed. It is likely to infuriate even the best of the managers out there. But here lies the secret sauce. If you can be provoked, you can be manipulated. The feelings of the moment should not cause damage to the whole month. In the end, all technology serves at the pleasure of business. Things changing after scope freeze isn’t an unexpected event - it is a part of the Agile process.
Don't let impulses guide strategy or decision-making.
Replace wrath with patience: Invest in a real world within your engineering team and in the interface between you and your business leads where provocation becomes immaterial. All basis should start from reason. All requests should start from doability and likelihood of achievement success, not by them asking and you agreeing.
If you are running behind and chasing someone, you can never operate from a position of leadership. Your competitors are using Kafka and you’re using that as the basis to ditch RabbitMQ, well, shame on you. Any technical decision-making that comes because “everyone in the market is doing it” is vile and uninformed. Engineering excellence is choosing the right tools to solve your own business and product problems.
In the hallowed circles of engineering, everyone is responsible for their own technical debts. Don’t send your team marching into quagmire just because you really want the likes and retweets your peers are getting.
Replace envy with gratitude: Your grind is your own - never run behind, but build. Be aware of the world, but don't let the world drive your undercurrents.
We all love what we build. Our great sandcastles on the morning beaches. But as all of us know, tech products only exist in a single point in space and time of business. Some products have to be retired in order to build new things. Sometimes the cost of maintaining a product that took all your hustle to build would be greater than going for that SaaS vendor. Your pride should not affect the balance sheets of your company. You have a fiduciary duty to pull the plug.
Creators must outgrow their attachment and move on. Not everything you love will outlive you.
Replace pride with humility: That you were given a chance to build those things that you love so dearly and that you are capable enough to do it again.