During my career and even before, I wrote, maintained and improved applications. I mean almost all kind of applications on every platform: mobile, web, desktop and server.
I think I finally understand what it takes to create a sustainable application. On paper, everything seems simple but in practice, alone or with people, it's difficult to follow the plan and easy to fail.
We have to be honest to ourselves, we all have brilliant ideas and the will to create successful applications. Share our ideas, communicate, investigate, ask for advices to someone, everyone or no one. You are free to choose how you want to design your application or new features for it.
But in practice, if you want to succeed, you will need support, no one succeed alone, otherwise, we will all be successful application creators. Isn't it?
Regardless theses points, once you started an application, how to make it stay sustainable for years?
When I talk about applications, I mean softwares. Pieces of computer program executing a task. Mostly in order to help human to do an activity (write text, edit audio files, draw, communicate, etc...) or helping another application to do an activity.
- In 1950, Companies sold hardwares with own softwares. Some people started to create their own softwares.
- In 1960, the beginning of Hacking culture.
- In 1980, Open Source has helped us to create and share knowledge around applications creation.
- In 1990, the Internet
- In 2010, web 2.0
- Tomorrow, web 3.0?
The Garage doesn't work well anymore nowdays, the industry has changed exponentially. In the Opinion, Press, some companies and founders still continue to spread the legend of the one-man-army behind successful application.
It's not only one person who create an application or a product, it's always the result of a long explicit and implicit collaboration of everyone from the industry.
You have easily and cheaply a large set of tools like no-code or lo-code, contents, tutorials, guides. You don't have to create them to start.
But remember that you don't own the platforms, you have to adapt everyday to any change from the market, providers or your customers.
From an article, which I can't find anymore and explaining it perfectly:
We all share the same standards, we don't create new programming languages each time we start a new application, we follow the same conventions, use the same tools, apply the same best practices. And the fact that large companies in the industry have released for free their processes, their story, their experiences and their tools show us that the true value is elsewhere: our personality, our engagement.
If you want to create a Software-as-a-Service, SaaS, you should absolutely follow the 12 app factor to create a sustainable application. Even you try to compile resources on your own, you will finally focus on this 12 points or think to consider them in a near future to create your sustainable application. This manifesto summarize perfectly the best guidelines to maintain and manage technically an application in time.
When you start to create an application,you have to choose carefully your orientation, what does really drive your business?
If your goal is to stay for years, small advice: choose product driven strategy for almost all cases.
When you focus on sales, you can't plan a long term strategy, you will unconsciously block inputs from the market, the providers and the customers. A gap will naturally appears and the more you stay in this position, the harder it will be to keep your application sustainable.
At the beginning, Apple started with a product-driven strategy with the iPhone. The first goal of Samsung was to be the number 1 for the number of smartphones sold. Everyday, history shows us which one drive the market.
If your application really help people in doing their work or entertainment. If they also take pleasure of doing it.
Your product will sell it self.
Your goal is to make people use your application, it is its fundamentl purpose. If it's difficult or impossible to use it properly, why will you continue to use it?
The more you will get users, the more complex will be the usage. And new topics have to be considered:
Unfortunately, money runs the world.
Regardless the quality, the time you spend on it, without money, you can't go very far.
Fortunately, you will have 3 kind of revenues:
- monthly or yearly subscriptions
I'll take more time later on this topic.
To summarize, you have to attract customers, be seductive. Customers compose multiple communities, some will give you feedbacks, others could be ambassadors to future customers.
To tend to perfection, you have to respond to your users needs and will. Lots of tools can be used:
- Customer Behavior Analysis
- Audience Measurement
- Market Analysis
Try not to assume you understand the market even you've created it. Always keep an eye on your competitors, regulation changes or technology changes. Consider all theses points as a whole.
Regular market researches and competitive intelligence will make you competitive and make you still exist. Without customers, it will be complicated for an application to be sustainable. If no one buy it, why should you spend money on maintenance and promotion?
Independently the position and the market share, an invisible engagement will spoon between maintainers and users. Keep it better and stronger to permanently scale up.
- Organization: A simple way, to organize the work on your application, is to follow the triptych: Conception-Monetization-Exploitation. The name talks from itself.
- Planning: The global organization will tend towards agility. The trend: SCRUM or Kanban
- Identity: Depending on the team, the geographic, economic, social, societal situation, an application always takes on an identity that is carried by one or more people. And since it is often publicly carried by one person, success is misattributed to that person. Steve Jobs was not alone, he was part of a team.
- Promise: In the context of an application, we are talking about performing an activity. The promise is relatively simple but as our perception is unique, it's not easy to fulfill this promise for everyone. And even more if we multiply the number of platforms.
- Values: Each team carries its values, which color the application's identity. They must be unifying as much as possible because the abandonment of the project due to lack of maintainers or internal discord means that the application can no longer continue to be maintained properly and sometimes can lead to its complete shutdown.
- Incarnation: And for the incarnation, it's up to you...
That's the problem with the secret sauce, I don't have it for your application and it's something personal you live in the present.
- It takes courage and discipline
- It's multi-disciplinary, so it's not easy to do it alone
- Ability to demonstrate rationality and imagination
- Document yourself, take the time to do research and studies
- The secret sauce is personal, you have to know how to ask for help and know your limits so as not to crack under pressure