āThat deer is huge!ā
Iād been driving home late that night. As I came up to my house, my headlights landed on the biggest deer I had ever seen, right in the middle of the road. I live by some woodlands and neighbors had mentioned deer having free reign in there, but this was the first time I got to see one. This guy didnāt grow that big with proverbial instincts: when my headlights landed on it, Bambi dashed away...straight up my driveway!
Come back!
I chased after it, hoping to prolong my impromptu safari by another second or two, only to see a white tail disappear into the bushes.
That was too short, I wanted to see Bambi again!
I rarely see animals around the house, but theyāre definity there. We hear coyotes howling at night and were warned of a bobcat prowling the area. They know how to stay out of sight though, I almost never get to see them in person.
Hmm...could I fix that?
What if I set up a camera to look for the animals and tell me when walked by? Iād get to see them every day! (I'm not going to deny it, I was kinda inspired by the ninja squirrel obstacle course).
Time to brainstorm what Iād build:
A live video feed pointed at the woods.
Then record video whenever animals walk by. Iāll save it in the cloud!
Iād need an iPhone app to notify me when an animal is outside.
Oh, and I can stream the video feed to the app.
Gotta have AI! Iāll use image recognition to detect which animal is walking by so that Iām only notified when the more unique animals walk by (sorry racoons).
Finally, some logging to record the time of day each animal showed up. Letās get scientific
It was totally doable. I was already imagining the day when Iād get an alert on my phone saying āQuick, thereās a deer outside!ā
But there was a nagging voice in the back of my head. It whispered: āYouāll never finish thisā
See, I have a long line of side projects left abandoned by the wayside. āYouāll abandon this one tooā the voice kept insisting, āDonāt bother starting.ā
I didnāt want to listen to that voice. But it wasnāt lying either.
Now what?
Alright, itās calling out a real risk. Risk noticed. What can I do to mitigate it and improve my odds? I thought back to my past projects, hoping to find a hint that would let this one have a happy ending.
I found one.
It sounds crazy, but as I thought through all my old projects, I realized the dead projects had something surprising in common: I abandoned them about two weeks after starting. Almost every side project I completed was something I finished in under two weeks. Two weeks seemed to be when my motivation ran out.
Huh, that was unexpected.
It kinda made sense though. All of those passion projects were something I did for fun, without a large cause propelling them. I had certainly completed large, multi-month side projects before, but all of them solved some pressing need. But the ones which were just for fun? They were forgotten once the enthusiasm wore off. Which apparently takes two weeks.
Watching deer was definitely a āfor funā project. That meant I had a deadline, and not an artificial one. There was an invisible hourglass, and with each passing second my motivation was trickling away.
I had a clock to beat.
How do I do that? Thereās no way I could build that many features in two weeks.
It was time to do the same thing I do at work: Cut scope mercilessly.
If I couldnāt complete the project in two weeks, it wasnāt worth attempting. As much as I was in love with the vision, I had to look at the entire project with this lens. So what gets the axe?
First I had to be clear about the real problem I was trying to solve.
I wanted to see the animals as they walked by. That required software to notice when they showed up. And something to notify me about it immediately. Thatās it. Everything else was fluff.
I had to kill the fluff
Saving footage of the deer would be really cool, but nope. Goodbye cloud recording.
Live streaming video to my phone? Never mind.
Logging? Only at the end, if I have time.
Even for the remaining features I tried to keep cutting scope. For every bit of work Iād ask myself: Do I really need to have this? Is there a simpler way I can achieve the same goal?
Did I really need to build my own app to tell me about the animal outside? A telegram bot could do that. Great, no need to learn how to build iphone apps.
It was critical to limit how many new tools Iād have to learn. Learning one new tool would take a while and eat into the two week window. Learning two new tools would guarantee failure.
Maybe this wasnāt the time to figure out a new machine learning library, Iāll use a motion sensing algorithm instead. When the app detected motion it would take a picture and send it to me. Iād take over the AIās job and decide if it was interesting.
Sometimes the scope cuts were much more subtle. Some steps which might be best practices at work are unnecessary bloat at home. To know which is which, think about why itās a best practice in the first place.
Should I write tests for the motion sensing code? I had no idea how to test that. Heck, I wonāt be maintaining this code after two weeks anyways. Cut. What about a clean, general way to send notifications to people? Iām the only recipient here, so Iāll just hardcode myself into the telegram bot instead.
But the urge to add āusefulā features doesnāt go away. Thereās even a name for it: scope creep.
Itās the insistent urge that you should add one more thing. āI should make it easier to code thisā āWhat if I do that with a different tool instead?ā
Scope creep happens naturally, and if I didnāt fight it the timer would run out.
Time for the coding spree. I found the right camera on Amazon. Buy. Wrote the motion sensing code, hooked it up to a camera. Done. Wrote a telegram bot. Woohoo! Hooked them up to each other. Boo yeah!
I hit the two week mark, but I was still going strong. I was going to finish this! Calibrating the motion sensor to work outdoors turned out to be trickier than Iād expected but I was making progress...when the last grain of sand trickled out ā³
Despite my best efforts, a couple days went by when I couldnāt work on the project and suddenly the motivation timer ticked down to zero. Suddenly pushing it to completion felt like a slog. I didnāt want to continue.
No! I had almost finished it! The project was 95% finished, it just needed a bit more of a push to be complete.
But it just didnāt feel interesting anymore.
There had never been a grand vision driving this thing, Iād started it on a whim. And the motivation was as fleeting as the motive.
A part of me wanted to deny it. āIāll finish it tomorrow,ā I kept thinking. Five tomorrows later I had to accept the truth. It was time to move on and let go of that mental burden. This was a passion project, once the passion wore off it just wasnāt worth slogging through.
But all wasnāt lost. When I started the project I had carefully designed it to really be three distinct projects disguised as one: a motion sensing algorithm, a telegram bot, and an integration project which put it all together. I had completed the first two projects! That would not have happened without me relentlessly cutting scope.
And every project was useful. Iād designed the motion sensor and telegram bot to be independent of the exact application I was developing. Now in any of my future projects Iāll be able to reuse those components if needed, saving me days of work and letting me complete more ambitious projects in that same two week period. I have new tools in my tool belt. Thatās still a win!
By trying to do less stuff, I got more stuff done.
So I moved on. But now if that niggling voice ever comes back, Iāll be ready.
And if I see Bambi again, Iāll just take a picture.
If you enjoyed this article, you might enjoy signing up for my newsletter as well. You can also find me on twitter @zainrzv.
Other articles of mine which you might enjoy
- How to turn Impostor Syndrome into an advantage
- Unconventional Interview Advice
- What's it like as a Senior Engineer?
This article was originally posted on my blog - zainrizvi.io


Top comments (0)