Don't pee your pants for nobody
This one is pretty similar to the "you'll regret the hack" thing, and I see this a lot with green developers. With deadlines looming and a rush to get things done, you may be tempted to degrade your work from "software product" to "proof of concept". What this means is that you're no longer building a software platform you can add to later, instead you're building specific features to try and get somebody off your back. It works out a lot like the old metaphor about peeing your pants for warmth.
Essentially, you solve your short-term problem but wind up with a bigger, long-term problem. This is bad when it's a team decision, and even worse when a developer does this without telling anybody. I've personally been in the situation where one of my developers did this sort of thing and I wasn't close enough or careful enough to know that's what was happening. Once we got past UAT (user acceptance testing) and I started rattling off the next steps and new features to add, he turned defensive and told me he needed a few months to rework everything because everything he had just done was purpose built to get past that first deadline. He literally set us back 6 months and absolutely destroyed my trust in him.
![]() |
you're warm for a while, anyway... |
Essentially, you solve your short-term problem but wind up with a bigger, long-term problem. This is bad when it's a team decision, and even worse when a developer does this without telling anybody. I've personally been in the situation where one of my developers did this sort of thing and I wasn't close enough or careful enough to know that's what was happening. Once we got past UAT (user acceptance testing) and I started rattling off the next steps and new features to add, he turned defensive and told me he needed a few months to rework everything because everything he had just done was purpose built to get past that first deadline. He literally set us back 6 months and absolutely destroyed my trust in him.
Hire fast, check-in faster, fire fastest
Back in the games days I had an employment model that was built around the fact that I had no idea how to hire people. In retrospect, I was probably ahead of my time, since research seems to indicate that interviewing is almost worthless, GPA is a poor predictor of work performance, and things like pedigree and credentials are over-rated. This was before I had ever heard of a behavioral inteview, much less experiened or conducted one. Since I worked in computer games, every job opening I had was flooded with candidates, and often these candidates were non-traditional. They were often wiz-kids with no college or formal training. Sometimes they were older folks with a passion for gaming. Some were hobbyists who wanted some extra income (that was fine, I had plenty of contract-work jobs available, too). The hard part wasn't finding people, the hard part was knowing which ones I could count on.
This was especially important for my projects with really short timelines and really tight budgets. One really flaky developer could derail the entire project (and with it the budget and with the budget my paycheck for weeks or months).
The approach I came up with was "Hire fast, check in faster, fire fastest".
Basically, I gave a job to anybody who wanted one. Every new employee would get a single work product to deliver and two weeks to deliver it. The work product was always something I actually needed and something that I knew could be done in two weeks. Anybody who didn't get the work done on time was fired. No questions asked, no conversation, no excuses. What I had learned was that anybody who is willing to flub their very first impression will continue to disappoint thereafter. Honestly, this got rid of around 80% of the people I hired.
I've applied this rule in a general sense in many ways since. If I'm looking to hire a painter and he shows up late to discuss the quote, I take him out of the running. I once had a buddy ask me to help him find a contractor to build a block wall around his house. The guy showed up 30 minutes late and I told my friend not to hire him. My friend did anyway and since I'm telling this story here, I'm sure you can imagine he never got his wall.
This was especially important for my projects with really short timelines and really tight budgets. One really flaky developer could derail the entire project (and with it the budget and with the budget my paycheck for weeks or months).
The approach I came up with was "Hire fast, check in faster, fire fastest".
![]() |
I googled "you're fired" and somehow this image came up. It somehow seems better than anything else I could have put here. |
Basically, I gave a job to anybody who wanted one. Every new employee would get a single work product to deliver and two weeks to deliver it. The work product was always something I actually needed and something that I knew could be done in two weeks. Anybody who didn't get the work done on time was fired. No questions asked, no conversation, no excuses. What I had learned was that anybody who is willing to flub their very first impression will continue to disappoint thereafter. Honestly, this got rid of around 80% of the people I hired.
I've applied this rule in a general sense in many ways since. If I'm looking to hire a painter and he shows up late to discuss the quote, I take him out of the running. I once had a buddy ask me to help him find a contractor to build a block wall around his house. The guy showed up 30 minutes late and I told my friend not to hire him. My friend did anyway and since I'm telling this story here, I'm sure you can imagine he never got his wall.
Hit the easy problems first
There's the rule when you're playing pool. When one of your balls is sitting right on the pocket, you don't shoot that shot. It will probably get knocked in on its own and you're really just wasting a shot. That mindset is completely misplaced here.
![]() |
a tempting but misleading metaphor! |
Really this is probably just a good project management thing. If you leave the little problems until they end, nothing good can come of it. If they really are little, you'll just have a shit-ton of little problems to sort through and fatigue will build. If any of them turn out not to be little problems (and some of them will end up a lot bigger than you originally thought) you suddenly have big problems that you weren't expecting, popping up right at the end of your project, when you don't have time to course-correct effectively.
Do those little, easy-looking things as early as you can. Sprinkling in small wins helps to keep you from getting worn down on big projects. Also, it gives you the chance to adjust your timelines or features if you wind up facing some big, unforeseen shitshow!