“GTWTN.” I use this concept on a regular basis, without really conciously thinking about it.
I learned it from my mentor during my stay at HitFix. He didn’t call it what I do now, but it is essentially the same concept. His primary constructive criticism for me was always that I would jump to implementation without first thinking about why that implementation was needed in the first place. In other words, he wanted me to be more like a product manager.
A list of things that go through my mind upon receiving any request:
- Ask yourself what the motivation behind the ask is
- Ask them as many questions about why they need it as you can
- Figure out the best solution to their underlying need
- Do the minimum possible to fulfill their request (most of the time)
- Sidestep one complex feature request by suggesting a simpler one that satisfies the same need
- Any repetitive task you’re given can be turned into a cron job or pushed back onto the person asking
All of this helps with scope creep and architecture bloat. By thinking about the quickest/easiest/fastest way to implement something that still meets the person’s needs (but not necessarily their literal ask) you’re not being lazy. You’re being efficient.
Go forth!