By Manoj Pavuluri, Director of Application Services, Orbis, Inc.
Every great product or service stems from an initial problem. Sometimes identifying the right angle of a problem to focus on is just as important as actually solving it. With a problem in hand and a product solution in mind to solve it, figuring out the rest should be easy, right?
There is no one right or wrong way of mapping out a strategy to get to the solution. Ultimately, the strategic plan should be formulated with the client or end-user in mind, as well as what resources and tools are available. With that said, there are plenty of TO-DO lists out there for product development. It’s just as important to consider the DON’Ts. Let’s take a look at some lessons from my work and experiences in product and software development that can help you navigate the process.
1. Don’t Overcomplicate It
In my opinion, overcomplication of the methodology or end solution is by far the biggest mistake business managers make in product development. A product needs features and functionality specifically tailored for the end-users.
Adding more features to the product does not necessarily increase the functionality or value. On the contrary, it can sometimes hinder quality and performance. Added unnecessary complexities can also contribute to several factors such as:
- Missing logic
- Missing edge-cases
- Lengthy development stages
- Delays in release cycles
- Added costs in production and labor
The law of diminishing returns is another example of overcomplicating. As the principle states, adding more resources to an existing system will not necessarily produce the same increase in output.
For instance, collecting data about a certain activity or entity in a sales process might help marketing teams gain insights to better position products, or to find the right target audience. But collecting large amounts of data (or finer grain data) which requires extensive collection, analysis, and reporting, may not prove useful. You may end up wasting a lot of time and exhausting resources that ultimately don’t result in profits.
The takeaway here is to start simple. Keep in mind you are developing a product. And development equates to growth. So, if along the way it’s discovered that additional enhancements are needed to help grow the solution, those can be implemented in future build phases.
2. Don’t Assume You Need a Completely Different System
I’ve heard it said, “Small changes in habits or daily tasks can produce large gains.” This notion is certainly applicable in the realm of product development. Let’s use software services as an example. Small improvements in UI or UX features can lead to sizable increases in productivity for daily users. Fewer clicks or fewer items for data entry using background scripts can save users a lot of time and reduce human errors.
Depending on the problem you’re aiming to solve, products don’t necessarily need to be vastly different from existing ones in the market. Just a slight change in a workflow or adding a new feature can heavily influence customer decisions and behaviors. A slight advantage is all you need for your product to outpace the competition. Often times we’ve found that what makes one product more successful than similar ones on the market is attention to detail and customer service.
3. Don’t Start Development Before Design
This is simple and straightforward for physical projects or manufacturing. You can’t build the second floor without finishing the foundation first. But when it comes to software development, we tend to overlook this.
Teams often rush to start on development and have several reasons for wanting to start early. Developers become eager to start coding, but later end up spending more time refactoring the code as the requirements change. This can lead to misalignment in strategies as well as confusion or frustration as obstacles from the unknown components arise. Identifying and planning for potential obstacles and different scenarios should be flushed out in the design phase.
As a leader or manager, as tempting as it can be to start development as soon as possible, don’t let team members get ahead of themselves. Aim to get a solid design ready and then start implementation.
4. Don’t Try to Eat the Whole Elephant at Once
The saying, “Aim for the stars and land on the moon,” may not apply to product and software development. For a product that does not yet exist in the market, you have the advantage of being the first to create and introduce it. Some teams want to have every component ready before releasing any versions. This wait time puts you at risk of being outpaced by competitors. Instead, release your product in stages, one step at a time. Once a product is out in the market, you’ll then have insights into how and what to improve. What’s working and what’s not. How are the users reacting to it? Listen to their feedback and use that to release newer versions of the product.
As the product evolves, the hope is that it will gain traction over the competition. Of course, innovation is important to keep the evolution in a positive direction. But gaining that early entry and taking advantage of that will help in the long run. Accumulative advantage can be more beneficial than trying to include all the bells and whistles in the first release. Remember the 90-90 rule—90% of the product only takes half the time to develop. So, if 10% of the features are not used by the majority of the users, exclude them in the first release.
5. Don’t Reinvent the Wheel
The digital age has evolved so much, even just within the last decade. It has revolutionized the way we work, enabling us to “work smarter, not harder.” Why reinvent the wheel when it’s already been invented for us and does a great job? The same can be said for applications. Use existing focused applications that are available (firewall, authentication, storage, etc.) for what they do best. They are part of the building blocks for a final product.
Some teams tend to focus on building every component from scratch. Instead, focus on what your product is intended to do. Add resources to achieve the final goal and architectural support to enhance the core functionality. As for the rest of the implementation—UI, storage, APIs, platform, security, scaling, etc.—leave that to the experts in the respective fields.
Now that you have the right tools, the last step is getting the right people—legal, PR, design, development, and marketing—in the right positions to get the solution implemented.
To sum the best practices up:
- Identify the right problem to focus on and the right solution to implement
- Aim to release the first version with the core functionality needed to solve the problem
- Keep it simple at the beginning without all the bells and whistles
- Add improvements with each release using market feedback and evolve your product accordingly
- Utilize the products out in the market to reduce development time and to ensure security and scalability for your product
With these steps as part of your product and software development strategy, I hope you find the journey to be a bit smoother. Here’s to successful development and launches for you and your team!