The Trap of Overengineering
Stephan ?? Schmidt
CTO ⊕ AI Coach ? #1 book "Amazing CTO" ? Podcast Guest ? Keynote Speaker ? ex-eBay ? ex-ImmoScout ? Helping CTOs with everything - just ask!
?? Subscribe here?for emails every Sunday FIRST
?? Why your team reads your mind
by Stephan Schmidt
Happy ?? Sunday,
This week I need your?#HELP. The newsletter currently takes a full day to create, with reading, selecting, cutting and opinionating. And I chose an expensive provider, so I can reduce tracking as much as possible. I’m offered sponsorships for the newsletter, but I don’t take money as I don’t want to sell my readers—and never will. So - awkward pause—I’m not asking for money, but you could help me a little in a different way.
This week I put my book?“Amazing CTOâ€, which was a #1 bestseller on Leanpub, on Amazon. If you do enjoy my weekly comments in the newsletter and if you did like the book (if not, tell me!), it would help me a lot if you could leave a short review ??
HERE ->?Amazon.com?HERE ->?Amazon.de
(not sure why the DE english reviews don’t show on com, software!)
You’re the best! Thank you
Some readers already left a review, thanks to you too!
Welcome to my opinionated newsletter. This week’s insights
- ?? People can read their manager’s mind
- ?? How to Lead Your Team when the House Is on Fire
- ?? On over-engineering
Good reading, have a nice Sunday ?? and a great week,
Stephan of Amazing CTO
??
If you only read one thing
Worth repeating this one?“People generally don’t do what they’re told, but what they expect to be rewarded for.�If your management doesn’t work, people don’t do the things you want them to do and you’re struggling with developers, this probably is the reason.
??
Stories I’ve enjoyed this week
I wouldn’t call the scenario from the article?“house on fireâ€, the article describes the “normal†startup life. After having the “house on fire†several times as CTO, this is a different kind of beast. But I digress. Or perhaps not. If the house is on fire, first thing,?tell everyone. CTOs often don’t tell, “the house is on fire, the website is down†or ‘we’re suspect being hacked." More often I get clients who get performance complaints from their CEO, and we discuss what to do. I ask them if they told the team that they expect performance (“house on fire,†or otherwise better join a large enterprise). No? Well, first thing, if you expect high performance, say so (and act accordingly). On fire? You’d think everyone knows what to do. Once during a fire alarm, devs ask me what to do. “Leave the building?†was my response. Yes, obvious, but not to everyone. Same with performance. Declare “the house is on fire†if it really is (incident, running out of money, being hacked, …) Back to normal times, the article goes into more details on what to do?as an engineering manager in general, good points, on fire? You decide.
“A big debate among developers is whether to write code for today’s problem or to build a general-purpose solution for future needs.�If you can predict the future, don’t build software, play the lottery. Build for the problems you can see in the next 12 months, not in the next ten years. The article goes into more details on that trade off.?It’s crucial your engineers and managers understand that there is a tradeoff?between future proofing and locking you into a direction with added complexity.
领英推è
“There are hackers who just love the art of building software.�But they might not work for you. Why? Because?“if one is used to consuming other software only, and rarely creating any�in your company, they are not creators. They build other people ideas and dreams. A long time ago, coders where creators. Then this was taken away from them. And therefor they don’t work for you. If you want the best coders to work for your, with their heart in the work and not a side project,?make them creators.
Everyone laughed on Rumsfeld for this. And either you’re pro, or contra, or don’t care, or don’t know, but his “There are unknown unknowns†is a good way of thinking about some things (->?Johari Window).?“A Quality Assurance (QA) engineer walks into a bar. Orders a beer. Orders 0 beers.�Haha. What has this to do with unknown unknowns??“The first real customer walks in and asks for a light. The bar bursts into flames, killing everyone.�You don’t test the unknown unknowns. You don’t test the unknown unknowns of the market. Or that candidate you’re interviewing. In terms of QA? Make them do exploratory testing, not executing test scripts (or write automated tests, devs need to do that, you know that, don’t you?)
Some misconceptions about being an engineering manager. The gist of the article is - somehow, “I gave away things I love, but I got other things insteadâ€. The first example is?“Building Thingsâ€. I do see this too often, managers giving everything away that they love and then after years they hate their job.?NO!?Keep the things you love and make it happen instead. Keep coding those prototypes or spikes or do R&D scouting. It also relates to the “Founder Mode†from the last newsletter. People tell you how to be professional, but they never walked your shoes. Keep the things you love.
Amazing what you can do in SQL. It is clear this doesn’t make a lot of sense. Often it’s not so clear-cut. There is a fine balance for a senior developer to strike. How much do you bend tools?Just Use Postgres for Everything - https://www.amazingcto.com/postgres-for-everything/?) vs. when to use new tools. On the one hand you might create Tetris for SQL, on the other extreme you end up with a large tech zoo.?Also, Tetris has the Guinness world record of officially running on the most systems.?We have to +1 this.
Not sure if I agree with all points, but it has good points and shows how much the CTO role changes during the growth of a startup. Prepare for change. From coding, to hiring, to team manager, to visionary and executive. A roller-coaster journey, next to the CEO probably the most demanding startup position.
Beware HTTPS is broken on that link. Swift is underrated me thinks. Playing around for some time with Swift on Linux, it seems the nicer Rust. Rust is still king for correctness and IoT with low memory and more control, but Swift is more convenient. I predict a great future (Also Ladybird switched to Swift
Comma in the URL. Looks strange, but to the article.?“Surprisingly, some devs don’t testâ€. My experience exactly. I once needed to demand that every dev adds a comment to each ticket on what browser they tested what (Kindergarten of course, but it worked, and we could drop that rule after some months). Why don’t some developers test? Some time ago I wrote?“Tests Are Bad For Developersâ€, go read it if you haven’t. The article here adds some common points,?“It worked when I tested itâ€?(So?),?“Testing takes too longâ€?(Rewrite tests, use a faster language, Go is so much faster for executing tests), and?“we have a QA team, so testing is their jobâ€. The last point especially is a concerning one. I once heard a story, “My secretary always makes typos, so I need to read every letter.†You got it wrong, they made all the typos because you did read the letter and correct the typos for them. You have bugs in production not despite QA, but because of QA. Developers are responsible for quality, not QA. They need to prove that their code does what they say it does,?no one else needs to do that for them.
Scammers put QR codes on parking lots to gather payments, because people just scan & pay. The link could also lead to a malware site, of course, people still scan. I once had an excellent security engineer, she let USB drives lie around at the printer to see who would put random USB drive in their machine autostarting/clicking on “malware.†Today she would probably put QR codes up in the office to see who scans random QR links inside the company that could contain malware and exploit the internal network. I have a very basic security introduction for all new hires, which includes “don’t put in any USB drive†(if I can’t control the ports, if I can I lock the ports) in their machine. Today I’d add QR codes.
“An unfinished project is full of intoxicating potential. It could be the next big thing�Yihaa! This is so true for many things, startups included. As long as we keep things in limbo, they could be world changing. When we finish, they are what they are. I would not have finished my last book without the kick from my wife. Because finishing makes things real. It’s like opening Schr?dingers box. Puff. Same for features, and projects in companies. You keep working and working, living the fantasy.?“The illusion of productivity plays a significant role too. As long as you’re working on something, you feel productive. Jumping from project to project gives you a constant stream of “new project energy�(Unsuccessful) Founders love that. If you have no vision and no strategy, you even don’t know when you’re done. So you keep jumping, feeling the new project energy.?“As I prepare to step away from my desk, I can’t shake a feeling of frustration [..] Despite my efforts, it feels like I’ve barely moved the needle.�My tip: The key to happiness is “One thing a day†- do something every day, that moves the needle.?Plan in the morning, be happy in the evening. Back to the headline, you finish something every day (I even have a sign with this slogan on my wall). Believe me, this is world changing.
Want the newsletter one day early??? Free to your Inbox every Sunday???https://ctone.ws
CTO | Architect | AWS | Serverless
6 个月Stephan, as a new subscriber I can say I'm glad I signed up. Awesome content, keep it up! ??
Tackling code complexity (Optimize CODE for NFRs) before layoffs can save 50-100% of jobs. The most brilliant cost-cutting measure you're not considering.
6 个月Devs read the manager's mind is superb.. Hardly any over engineering I find in code reviews, most times it is under engineering as Devs follow the manager's shortcuts to claim DONE..
CTO ⊕ AI Coach ? #1 book "Amazing CTO" ? Podcast Guest ? Keynote Speaker ? ex-eBay ? ex-ImmoScout ? Helping CTOs with everything - just ask!
6 个月What do you think on #overengineering?