
"I have a dream" did not only say Martin Luther King Jr. but also people who are dreaming about an app for which the idea grows in their head. Making an app and becoming rich (or, having a stable passive income at least) is what is a valid reason to start the adventure of becoming a software entrepreneur.
In my personal opinion, it is very beneficial to have knowledge about a field that is not related to technology. Software mostly tries to solve problems in the real world. And, knowledge of the real world is a competitive edge when providing software services. Saying that I have to mention that the world of software is its own unique field of study that requires experience like every other field. The collision of two worlds creates a problem for people with that dream.
Fortunately, that problem can be solved. A solution that comes first to mind is to find a co-founder with technical knowledge. A CTO is an ideal solution (same as having a co-founder for marketing), but a CTO has to be convinced to become part of the adventure. To be honest, I have a technical background and when I get approached with ideas, I vet the ideas like an investor (on Dragon's Den) does. Because my time is more valuable than money. Additionally, most app ideas require a team of experienced experts actually. And, experts have to be hired individually which can take up a lot of time before the development can even start.
The alternative to a CTO (and team) is an experienced contracting partner who has a rich pool of talents & skills that can provide knowledge & experience in building software. A software partner can be reached out within fingertips and with this article, I would like to support the decision-making on how to select an appropriate partner.
Software development is a transformation of a need. It takes some bravery to disclose an idea to a person. And, it is easier when trust exists. To have trust in someone is the foundation of any good relationship. And, the lack of trust is one of the reasons why new relationships cannot form or existing relationships come to an end.
To work with a software development company requires sometimes a step beyond. I like to call it "brave trust". Especially in situations in which I don't have the detailed knowledge about the service provided (like car mechanical knowledge), the right feeling of trust is of utmost importance.
Experienced companies are aware of the value of trust. They know that the client doesn't select them because of the final product. They know that the client chooses them because they offer transparency and experience in the software development process. This kind of company wants to build lasting relationships with its clients. When thinking of bigger projects that last for weeks or months, a trusting relationship with the software development partner is essential. The process of creating an app is like navigating through a big city. A lot of good shortcuts, bad shortcuts, junctions, problems - To have someone with experience on one's side is a big benefit.
Additionally, a contracting partner is interested in keeping up its own reputation. A company cannot disappear and ghost the client after the first invoices were paid and the code is 75% done.
Whenever I have a problem I don't know what to do about it and for which I need an expert. Then, I always make sure that I become friends with the expert. I never make the expert feel bad or inferior. I always try to provide a good time.
The reason for this is, that a person who is happy and has positive feelings, is in a position in which the person might go the extra mile. I mean, I can solve a problem in a good or bad way. And, when I want to have a problem solved by an expert, I want the best solution.
I know it from my own experience. When I don't like a person, I will figure something out to solve a problem just to get away from the person and forget about it.
Of course, when money is involved it is the right of each contract partner to demand the fulfillment of the contractual obligations. But what about the extra piece? The blood & sweat? Or do you want your product just to be 'something'? In this context, I don't want to mention the typical "client scream”.
When a partner is valued (not with money), the partner will go the extra mile just because he/she wants to!
Like in every relationship, confidence is the key. A software contracting partner must have its own values which are communicated where possible. Values do two kinds of jobs. Firstly, values tell the potential client about the company's experience (good & bad!). Secondly, the client can verify if their own values do match.
Another key element of confidence is accountability. A good way to do that is a time tracker and screenshots taken during the development work.
By the way, before any kind of development starts, it is necessary to provide a technical specification document. The creation of a technical specification document is actually one of the early steps in the whole software development process. The more details the technical specification has, the less likely it will be that product does not deliver what was hoped for to achieve. A confident partner will develop a technical specification document together with the client and hand it over to allow the client to obtain alternative opinions.
Hello, my name is Hannes Holst and I work for Extension Forces which provides mobile, web, and desktop software development. We are in this business for a while as you can see here. If you are new to software development, I'm happy to help with any questions or problems. I've seen a lot during my 17 years of developing software :)