Teams - good teams - are constantly seeking ways they can improve the way they work. Being “agile” is all the rage these days, but what does it really mean to embody an agile spirit? We’ll step through it in a series of aphorisms…
Perfection is the Enemy of Progress
There are times in life you need things to be perfect, or at least close - you’ll find no room for error when it comes to safety calculations in an architectural build, for instance. Rigorous review, editing, and testing are time-devouring endeavors that will inch you infinitesimally closer to true perfection and are appropriate when errors can lead to catastrophic results.
In most cases, software does not fall under this “must be perfect” umbrella. Patches, improvements, and bug fixes can be released over time to allow your product to lean closer toward that “perfect” iteration, and by doing so gradually you are able to change direction as “perfect” changes the location of your finish line.
If you write a book and find out your readers don’t like that you killed off their favorite character, you can’t undo that choice - physical copies are already out there and republishing with an adjusted plot would be, simply, a mess. But kill off a feature you didn’t realize was secretly loved among your user base? You have the option to bring it back - not just as it was, but even better suited to your users’ needs.
Taking time to carefully validate and test every feature may feel productive, but ultimately it is better to make progress by getting features in front of the user to start collecting valuable feedback. A rapid present-feature/receive-feedback/iterate cycle maintains momentum and keeps your features from falling into the “almost ready” trap.
Fast is Better than Perfect
When we don’t have to worry about being perfect, we are able to move fast. We love this idea so much that it is one of our core values. Moving fast means you get to put features in front of real users quickly, gather their feedback, iterate, rinse, and repeat. Moving fast lets you validate the direction you are headed before you get all the way to your destination - climbing all the way to the top of Mountain A only to find out your users wanted to meet you at the top of Mountain B would be pretty demoralizing; this is much better information to discover at base camp.
When you move fast, you can illustrate market demand and prove value - if you’re looking for investors, this is exactly what you need. Make your MVP your MVP when it comes to fundraising!
You may have also heard the phrase “done is better than perfect”, and while this is often true, it isn’t accurate for software - in this case, “done” is not an appropriate substitute for “fast”. Even if you reach a point where you have every feature you could ever want, you’ll still need to continuously maintain what you have (more on that here).
Move as Fast as Reasonable
Moving fast is great, but of course appropriate caution should be applied. This is why when we say move fast, we don’t mean as fast as possible - we mean as fast as reasonable. “Reasonable” comes into play when we take a moment to recognize that, while an overwhelming majority of software errors lead simply to inconvenience, there are times they can lead to disastrous results instead. Any bug that can cause issues in the realm of financial losses, unintentional deletion of data, or impact to health and wellbeing (note that this is not an exhaustive list) should be receiving a rigorous testing treatment. Identify risk factors early on and enact a mitigation plan to keep negative impacts to a minimum. Moving quickly isn’t an option unless you have a deep understanding of your product inside and out and, as painful as it can be, solidifying that understanding takes time.
Slow is Smooth and Smooth is Fast
The ultimate question - how do you move fast? You slow down. The classic tale of the tortoise and the hare illustrates this idea well - the slow, steady, always-moving tortoise ultimately surpasses the hurry-up-and-wait hare to win gold.
When looking to move fast it’s tempting to jump right into development and start popping out features one after another. You’ll have a lot of features quickly - but do they function the way you wanted? Do they play well with one another? Did you forget a key feature that, in its absence, invalidates all the other work you’ve done? The ultimate goal of agile is to get features in front of users and then iterate - not to remake the feature entirely because it was rushed and therefore poorly executed. Taking that little extra time to do something well once is much faster than having to do it twice.
Take time up front to plan. Take time throughout development to plan. Take time after your product is shipped not only to plan what could be next, but look at what happened…so your future plans can be that much better. Establish a roadmap that your whole team is on board with, check in regularly, and keep an eye out for blockers. Enable flow by ensuring you have a clear path forward. Meetings may feel like a waste of time, but if they are properly planned they foster an environment in which the team can collectively make tremendous progress in a short time. Don’t get so focused on the end goal that you lose sight of where you’re stepping to get there - taking a moment to look down at your feet will help you stay on the paved path and out of the mud.
So what have we covered? Perfection is the enemy of progress - fast is much better than perfect. But we only want to go as fast as reasonable, and we do so by going slow (because it’s smooth, and smooth is fast). A simple shift in mindset or workflow may be enough to start getting you on track to faster, perfectly imperfect-er results.
About Mile Marker
Mile Marker is your strategic partner for agile software development. Created for founders, by founders, we offer strategic software at startup speed. We specialize in aligning your technical work with your business goals through collaborative planning, offering a multidisciplinary development team, and ensuring ongoing support for your software. If you’re searching for a software development company or need a technical partner, start the conversation with an introductory call.
Comentarios