I don’t know how many times I have heard this phrase: “It’s always harder than it seems”. And you know what. It almost always true (at least in regards to development).
When we’re working on a new feature, it seems that no matter how much we think we understand the problem, or how easy we think the fix will be, there will always be something out there that makes the problem more complicated.
I biked from Toronto to Niagara just earlier this summer, and the bike trip kind of reminds me of what happens during the development cycle. At first, our plan was to leave Toronto at 6am sharp, and arrive sometime in Niagara before 6pm.12 hours should be pretty reasonable to bike around 180km assuming we go at around 20km/h, with some breaks in between. The gym closed at 8pm in Niagara falls, so we had to get there sometime before or else we won’t be able to take a quick shower before we headed out for dinner and what not.
But on the day of the actual ride, we had so many delays because people slept in, the weather got extremely hot so we took breaks more often, there were delicious fresh fruits on these farms that we felt like we had to stop at, fatigue, drawbridge went up to let a boat pass which wasted us 30 minutes… etc etc
In the end, we still made it to Niagara falls (we got there 5 minutes before the gym closed, phew), but it took us a lot longer than we thought. Kind of like implementing that easy feature?