I recently hung my “digital storefront shingle” and launched my first commercial software product. The Better Book Description Tool is a simple What You See Is What You Get (WYSIWIG) editor that helps Amazon Kindle authors create great looking Amazon Kindle html book descriptions.
I didn’t think it would take me 17 years to find an idea outside of my IT corporate job, nor did I think an HTML editor would be the product. It was the combination of technology, community and free resources that became the catalyst to successfully launch the idea.
Here, I’ve identified five lessons learned for any aspiring software developer seeking to bring a product to market.
1. Observe and listen: Customer needs and opportunities are abundant
If you’ve followed any of my LiquidPlanner blog posts, then you know the majority of my experience focuses on project management in an IT environment. Opportunities for software solutions are everywhere, you just need to look in the right places – and these places won’t likely be in your own workplace.
For example, at work I never run into a customer seeking to deploy a book on the Amazon Kindle platform. But as a freelance writer, I’ve published several Kindle books with Kindle Direct Publishing and have actively participated in online communities focused on writing and marketing eBooks.
In the self-publishing niche, authors want to make their book description stand out on the Amazon platform and use images, headlines and stylized text to win over a potential buyer. There are several books that provide writers with instructions on how to create an HTML-enabled book description on Amazon. However, writers are not coders –and writing the code to create an engaging book description was a pain, and difficult to read.
The opportunity here was to build an HTML editor that would produce the desired code. The writer could do what they do best – write. And the software would produce the HTML per Amazon’s specifications.
The opportunity was found in understanding a market’s problem and pain points. I did a quick survey of the landscape and no one had developed a tool to fill the need. No one directly asked for a software solution to solve the problem but I knew if I built an easy-to-use solution it would fill a market need. You simply need to observe, listen and take action.
2. Design a prototype
It has been nearly 14 years since I developed code. The project manager in me knew I’d have to outsource it if I wanted to bring the product to market. Whether it’s an outsourced or in-sourced project, communicating and understanding software requirements can be a challenging process unless it’s all properly documented. I decided to create a mock prototype using sample screen shots and document my requirements, assumptions and questions in a Microsoft PowerPoint presentation deck.
I got started by creating sample screen shots of HTML editors that showed a before-and-after description. I identified assumptions, anticipated issues and key functional and non-functional requirements by simply adding bullet points to slides in the presentation. I was all set to send the requirements deck to a freelance programming site when I started searching for WYSWIG editors that a developer could use as model. I found the TinyMCE editor and realized with a few short lines of code I could develop the tool myself.
Whether you decide to outsource to a developer or develop the application yourself, it’s important to take the time to design screen mockups and think about the software design requirements. Developing a simple slideshow presentation helped me think through the user experience as well as the technical options.
3. Leverage existing code from similar tools
These days you don’t need to write everything from scratch. The open-source world is an amazing enabler and you can often leverage sample code from similar tools. For aspiring developers, the code base for your next idea likely already exists.
By leveraging code libraries from GitHub and SourceForge, I was able to find an extensive code library, all available for free. If I had questions, the community at Stack Overflow provided numerous answers and examples. The code and advice is out there. You just need to find, tweak and apply it.
4. Launch a minimal viable product
In an enterprise IT organization, the software development cycle can take months to even years to fully launch a software product. For the Better Book Description Tool, I focused on creating a minimal viable product that I could bring to market and further validate with paying customers.
I developed a working solution within 24 hours of creating my PowerPoint mock-up presentation. It would take another two weeks to completely beta test and launch the product. But thanks to existing code base, I had a functional product ready to test in just two days. The tool didn’t have all the features I wanted but if I received enough sales, I would develop the tool further and build out the features platform.
5. Launch a beta test to get feedback from potential customers
Beta testing (an external user acceptance testing) is an excellent way to build buzz and awareness of your product. As soon as my software passed my unit tests, I released it to the community under a “beta” program. I posted in several discussion forums that I was looking for beta testers at 11:00 p.m. at night and by 9:00 a.m. the next morning I had 40 people interested.
During a one-week test phase I received a lot of feedback on the user experience, including requests for important training clarifications, and a longer list of feature requests. I incorporated a few of the features into the tool and developed a backlog of change requests using my favorite project management tool – LiquidPlanner. Adding the backlog to LiquidPlanner was easy and I could schedule my availability to forecast the next software release.
Beta, however, does not necessarily mean free. I provided access to my product for one week and the users could apply the software to create great-looking Amazon Kindle descriptions. After the Beta test, I removed access to the product but offered a discounted rate to the participants when the product went live.
Just get started
If you have an idea that you want to prototype with the hopes of bringing it to market, just get started. The combination of online communities, open-source code repositories and free digital tools has made software development accessible for anyone to access and apply to their next software idea.
Look for opportunities, listen to your market and iterate your way to your next success.
Have you launched your own DIY product into the world? Tell us your thoughts and lessons in the comments box below.