Ready, Fire, Aim
Posted by: Paul D'Angelo
We've all been there before. You need something asap, and resources are scarce. You've been cobbling together a production ready site with the help of a rotating cast of freelancers and friends, and just need this final piece to get you fully operational. You are so close you can taste it. The final pieces are so obvious to you, you begin looking for help with little more than a 2 sentence overview explaining how you just need a quick fix and that a 2 week should be more than enough time.
You narrow down your search to three potential partners, and explain to them how easy this project will be, briefly outlining the simple quick fixes. When pressed for greater detail, you brush them off, emphasizing the urgency needed and how explaining now will simply slow things down. After a few exchanges over price, you settle on a team you like, and get started.
During kickoff, your team digs a little deeper in to your existing code. During the process, they identify a few issues that you had not anticipated, including some API's that you thought would be simple to integrate with, but in fact are not. You assure them that everything else will be a breeze, and agree on a few areas to begin working immediately. A few days later, those immediate areas also need extra clarification, and you still haven't figured out how to proceed with the previous API issue. As you head into the second and "last week" of the sprint, you find yourself scratching your head wondering how at the halfway point, you suddenly have more questions than answers.
This kind of misplaced urgency happens far too often, and virtually everyone loses in the process. While urgency is a key component in most scenarios, if misplaced it can be a counterproductive force that can cause delays or much worse. With a little patience, more in depth discussions prior to beginning the engagement would've allowed for a greater understanding of what was needed, with potential hold ups being identified earlier and mitigated. How do you protect yourself against such dastardly urges??
Whether you are starting a new venture, adding a new feature, or simply behind the 8-ball for a deadline, be sure to give yourself adequate time to think through the problem thoroughly. The moments where you feel there is too much to do to stop and think are usually the times that it is most important to do just that. When in doubt, ask yourself what would Ghandi do? "I have so much to accomplish today that I must meditate for two hours instead of one."
Have a plan
Listen to your team
If the oncoming team doesn't have any questions at all, that should immediately set off all the alarms. Anticipate having to spend extra time clarifying issues and do not dismiss any questions or answer them half heartedly. Any Development team worth their code will give their best effort to deliver in a timely and accurate manner, and any questions are to that end. If you are frustrated that the answers seem so obvious and suspect the team is dragging their feet, please remind yourself of the previous revelation that most are not in fact mind readers.
Know when to compromise
You've been working tirelessly to get things just right, so there's no way you were going to give up now right? You can just impose your will on your team to get them to dig a little deeper, and get it to the finish line. While that sounds inspirational, it can also be dangerous. Not only can it create friction between you and your team, delaying launch just to ensure things are "perfect" can cost you valuable time. The sooner you get your product in front of people, the sooner you start collecting real data.
And know when to stand your ground...
Yes I know I literally just told you to compromise, but sometimes you do need to keep pushing for those final details and features. Nobody said this was going to be easy! How do you decide what's what? Ask yourself, is making this feature, functionality, screen etc being x% more perfecter going to lead to a x% greater chance of success of the product? If yes, then adjust your timelines accordingly, and make sure it's right. If not, and your current situation is "good enough", then get your product going as soon as possible, and can continue to refine as you go, armed with additional real user data to help guide you.
Urgency is a tricky thing. While it can narrow our focus and help us achieve great things during intense deadlines, it can also consume us and cause us to completely blow it. You could say that Urgency is to panic, as pressure is to stress, but that's a discussion for another time. For now, just remember to periodically slow things down, especially when you need them to move the fastest.