Done is a four letter word
When I was a child, my parents had this concept about words we don't say. We don't say "sh*t" or "d*mn". They called them "four letter words." Kind of silly in retrospect, given all the four letter words we do say. What would the world be without love or hope?
Today I'm here to talk about the word "done." There are few things more satisfying than making a list (and checking it twice) and then crossing off the final item. It feels so good to be done. When it comes to building software, it's no different. We love working with customers to define a new project. Breaking the big idea down into user stories and choosing tech stacks. Making our lists and checking them twice.
I could ramble on about the intricacies of designing software, but I'm really here to share the software industry's dirty little secret. Software is never really done. "Done" lasts about as long as that new car smell, or the time between bringing your newborn home and the first diaper explosion. Why is that? Why can't software be polished and frozen in carbonite like Han Solo?
When a product is new, predicting the future is hard
Congratulations! You've invented Smell-o-vision. You have created a smellovisor, a box a user can plug into their computer's usb port with replaceable scent cartridges. The buzz machine is in full swing and game developers and virtual reality vendors are eager to include smell in their experiences. You need a documentation website with a tool to help your customers design smells. You go through the whole process with a local agency and now you have a spiffy new site with the super online smell designer. A month later your R&D department discovers that if they add a new widget they can produce the smell of baking cookies. Word leaks out and all the food bloggers rush the door. But now your spiffy new website is out of date and the inputs for the smellovisor have to be tweaked and the online tool has to be updated to match. But wait, now there's a competitor, so your website has to shift to include a marketing focus.
Hidden in that one paragraph story are 3 or 4 separate software development projects. Each may be incredibly successful, but none of them could be forward-thinking enough to anticipate the needs of the next one. Unfortunately the story isn't usually as much fun as the smellovisor. More often what happens is a couple months after the software is released, a new person comes along and says "why is it that way? It would be so much better if we did it another way." Each person that enters a workgroup brings their own experiences and worldview to bear and often really good refinements don't get thought of until the software has been in use a while.
Your Smellovisors are wildly successful. To support all those food bloggers and online games, you built a browser extension to integrate the web with the smellovisor. Your users love it, but browser vendors just announced changes in security requirements around communicating with the user's hardware.
That kind of thing happens more often than you might think. I was once on a project where the software had to be rewritten because the hardware to run the current version could no longer be purchased. In the world of mobile development this happens all the time. The app stores update requirements, users buy new devices with new capabilities and discard old ones. App frameworks and development languages change over time and if the app isn't maintained, eventually it gets removed from the stores.
Your business needs change
You've been selling smellovisors for a while now. They've gone from big and bulky to sleek models that easily slip into a laptop bag. You've improved the process for loading new scent cartridges. But more and more your big customers want to integrate your tech into their products. Fewer and fewer customers are buying the stand-alone units. The smellovisor consultants have fine-tuned processes for generating interesting new smells, but they need more advanced tools from you to do their work efficiently. Your online smell designer now needs to be an app and needs to be geared toward pro users who primarily act as integrators into other products.
Businesses have to adapt all the time. Part of turning that vision for the future into reality is planning for how the software your business runs on will need to adapt to fit the new reality. The bigger the mismatch between the software and your business process, the more slow and error prone will operations be. Making your software vendor or internal team a partner in the process of moving your business where it needs to go is a huge efficiency win. That means changing the relationship with your software team into a partnership and de-emphasizing the idea of discrete projects that could be done by any vendor. One of the things your tech team will evaluate is whether existing software can be extended to meet the new needs or whether the new business roadmap is sufficiently divergent that it would be better to create an entirely new app. In the example above, the audience and feature set may well be so different that it would be more cost effective to create Smell Designer Pro from scratch.
Life is never done, why should software?
Pick any area of life. Say you buy a new house. The first thing you do is fix it up and arrange it to fit your needs. When the new baby comes, or grandma moves in, you do it again. Done feels so good, but it is always temporary. If you are a vision caster for your organization, instead of thinking "are we done yet," think "what's next," "What do we need to be better?" Bring your software team into that thought process. It will pay big dividends. They will likely see opportunities to repurpose software you already have, or accelerate the process by leveraging a new piece of tech.
As you can see, I have a love-hate relationship with "done." I love finishing discrete tasks and crossing them off my list. But I have learned in my 30 years of software development, that software is never truly done until it is decommissioned. So when you decide to build software, plan also for the lifetime of the software, just like you'd plan for the lifetime of any other asset. Part of our job here at Bendyworks is to help you think long term about your software. Our team of experienced developer consultants act as a great partner in molding software to support your business needs both today and as they change tomorrow.