There are millions of Instagram’s, twitter’s, craigslist’s, WordPress’s, etc, but what distinguishes one product from the next if it’s all been done before?
This is a complex question with a complex set of answers, I think. It’s hard for me to give a simple answer, at least, so I want to break this down in to three separate issues: success in general, success against competition, and being distinguished.
“Success” In General
Success is a mysterious and nebulous word, in my experience. It’s often defined differently by different people on the same team – not to mention people on different teams and in different organizations. Ultimately, though, I think success comes down to two generalized categories or things:
- Does it meet the needs of the business / client / customer?
- Will the development team be able to continue to meet the needs of the business / client / customer as features and requirements change?
The average customer doesn’t care about software quality or craftsmanship or anything like that (unless they are, themselves, a developer interested in the code / API – I’m assuming they are not, at this point). They want to know that the software provides a solution that meets their needs and does so in a timely and cost effective manner.
The software development team, on the other hand, does care about quality and maintainability and robustness of the solution. If the team building the software can’t change it in a reasonable time frame, or can’t fix bugs in a timely manner, then there is a problem in the eyes of that team. Unfortunately these problems manifest other problems that the customer will care about in the future – bugs, loss of income or excess costs, or any of a number of other bad things.
Successful software, then, must find a balance between these two things. A development team cannot spend forever creating “perfect” software – that doesn’t even exist. But that team may perfectly solve the business needs, even if the software is less than ideal. On the other hand, the development team must be able to produce “good enough” software – good enough to solve problems now but never at the expense of being maintainable in the future, when new requirements come in.
It’s a hard balance to find, but ultimately I think these two generalized aspects of software are two sides of the same coin. You can let one laps and the other will suffer. You can polish one and the other will likely improve a little as well. But if you can find a way to iteratively clean both sides of the coin, as the coin’s shape is being determined, then you at least have a better chance of creating something successful.
“Success” Against Competition
Regardless of the “success” of the software that I outlined above, being successful against competition is an entirely different game. This boils down to marketing efforts, I think. A company can have a better product or service, but if they do not know how to properly market that product or service, then they may not be “successful” in the eyes of the market. They may not be “successful” at all, and may have to close down. On the other hand, a company with a less-than-ideal product or service may be wildly successful because they know how to get people excited, how to make people see the value in what they provide, or simply have a large enough marketing budget that they can essentially “buy” customers (through massive ad campaigns and social media campaigns).
For every product or service that you have heard of, there are probably a dozen that failed. Getting your product or service to market first gives you an advantage. But getting your marketing material right creates an even larger advantage, in spite of your time to entry in to the market.
This, once again, has a lot to do with marketing – but is really the mix of marketing and feature sets / community. A system like WordPress, for example, is distinguished by the size of it’s community and popularity for content management and extensibility. WordPress does a lot to market how easy it is to do anything you need, because of the extensive community that makes it easy. Certainly WordPress is not the only game in town. There’s Joomla!, there’s Drupal, and there are countless other systems not written in PHP. Each of these has their own strengths and weakness and each of these specializes in solving a particular problem in a particular way. Having choice in how a problem is solved is great for the market as competition drives innovation. Being able to distinguish yourself from the competition, though, becomes a balancing act between features that are unique and features that are valuable.
In a commoditized industry, such as Podcast Hosting (which is an industry that I am involved in, with SignalLeaf.com), being distinguished by a feature set is not good enough. No one cares that my feature set and technical capabilities are different or special… at least, they won’t care until I can show them that they should care. Finding a specific niche within a larger market is a good way to create distinction between you and your competition. It creates a distinguishing feature set and target market that allows you to further refine your feature set. But you still have to market yourself correctly.
For me, I’m targeting new podcasters that don’t know how to get started. I want to make it as easy as possible for people to get a podcast online. I can offer one-on-one support and consulting in a way that other services can’t, at this point. I’m able to do this because I’m small. I don’t have hundreds of people signing up for my service every week. I’m lucky to have a handful in a month. But with a smaller customer base, I’m able to spend more time doing one-on-one work with them, ensuring they are at least successful in publishing their first podcast. That market niche, one-on-one service, gives me an advantage over competitors… but if I don’t advertise and market this, then no one will know and no one will care.
It’s The Balance Of These Things
In the end, software success comes down to the balance between features and marketing, I believe. Marketing will get eyes on your product or service, and features with good user experience will create something noteworthy, where people want to talk about you and want to stick around.
I know this has been a very long response to what was probably meant to be a short question… but that’s how it goes, right? The simple questions require complex answers, and the complex questions usually boil dow to something simple. :) I hope I’ve been able to answer your questions, though. Or at least shed some light on the subjects and provide some idea of what you might want to research in order to find the answers.