The great part about being a coder is that we like building software that will make a difference. And not just that, we like taking on hard development challenges to build out simple solutions. Bringing these solutions to those that can benefit from them is another challenge in itself; one that many developers often have not had any experience with. Sure you can throw your code up on source-forge and hope people find it but if you really want to change the world you often have to put in a little more.

As we’ve previously mentioned, we have been listening to our users and recently refocused the direction of the company to better align with developers needs. Hopefully this will make our tool suite more appealing and provide more benefits to a greater number of people. We have learned a number of things during this journey and I’d like to share a couple with you.

Show value

In order to spread the word about your software, potential customers must understand how it can benefit them. Often times a very useful tool is not adopted simply because it isn’t clear to the user what it does or how it can help. Free trials can help with this but busy developers might not have the time to spend evaluating a product under a specific time restraint. A completely free version is one way to alleviate this concern. The key to understanding what will pique your user’s interest is determine what causes them the most pain. By focusing on which pain points your software can alleviate you can get many more people to try it out and give you feedback.

Technology can complicate things

Another possible problem attempting to provide value by packing your product full of the newest technology. As developers it is often easy for us to become overzealous when experimenting with new frameworks or libraries. Keep your product simple and don’t over-complicate  it just for the sake of trying something new. Make sure there is a clear problem being solved and value being provided to the user.

Learn, learn, learn

One thing that is obvious about starting a company is that many companies fail. If you want to build a successful company, make sure to learn from the mistakes and successes of others. Learn from your customers. Learn from potential partners. Learn from mentors. Learn from your own employees. By continuously making sure you’re open to new ideas, potential problems, and especially your customers’ needs you can better align your product and company in the optimal direction.

Users are important

Without users you don’t have a company. Users might be busy with their own work and might need more help in understanding what your company does. Users often have different problems than you’ve thought of. Talking to them is the only way to understand unexpected needs and support them. Users might want capabilities you already provide but might not be able to find them in your UI or may be hesitant to use them because of security or stability concerns.

There are tricks to building a successful company

Potential partners and mentors in your industry can help in many ways. They will often provide helpful tips and share knowledge gained from experience. Additionally they may have better insight into the needs of your target customers garnered from years of experience. These insights and tips can help you to get a more accurate feel for the needs of your customers than even the customers themselves can provide.

Marketing and sales are important

Word of mouth is great but it takes a long time. Users won’t just find you; the cost of raising awareness and getting a user to signup for a free product can be over $3. For a product that costs $99 it can be $200+ (as originally with Dropbox). You need to think of a cost effective way of raising awareness. Sometimes it might mean building a second very different product that serves your target customers but is free, other times you might want to consider partnering with various organizations to make your skills/knowledge more visible to your potential customers.

As your company grows you can continue to learn from your customers and determine how to best communicate the benefits of your products. Continuing this process indefinitely will help you to prioritize bug fixes, new features, and improve your product.