How to build a web application?
Almost everyone who works in web development knows how to create a web application. However, here I describe it again, so that it also becomes a little clearer for myself 😊
1) Set requirements
You would think: This is probably the easiest part.
However: Most of the time the clients (I include myself in this) do not have a precise description of the requirements.
Basically, most of the time you don’t know what you want to have yet.
This is so problematic because then you can’t name a “price” or price range for which you can program the application.
Then you also don’t know how long it will take to develop it.
Here are my, hopefully helpful, tips on this:
- a) Few requirements, describe precisely: Instead of making a huge list, make a small list of requirements. And describe them as well as possible. Surely a Paint file, in which the pictures of the application are roughly recorded, will also help.
- b) Understand that it needs a designer or rudimentary design by programmers: In most development teams there is no dedicated designer (designer for Photoshop, web designer for HTML, CSS). And developers can’t create beautiful web designs. Therefore, you should include a phase in which the front end is created. For example, by an external service provider. Alternatively, you can rely on a very rudimentary design developed by the web developer. In my opinion, the better solution.
- c) Deliver after one month: Already after the first month the first version of the software should be available. And even if it is only rudimentary functionalities. Preferably only one, but which are important for the project.
With these three steps a) b) and c) one can save a close description of the requirements. At the same time, this enables you to get started right away.
2) Use simple technologies
If you rely on technologies like Node.JS, Golang, MEAN Stack, Angular, etc., then you always have the problem that there are hardly any developers in these areas.
In addition, they are then also relatively expensive. Be it externally through a service provider or as an employee.
Better here are technologies like PHP (PHP, MySQL, JavaScript, HTML, CSS) or a PHP framework like Laravel.
Then, as you grow, you can certainly move on to more performant systems like Ruby on Rails, Python, C#, or Java. And if you really see advantages in technologies like Node, Golang, etc., you can use them.
3) Have documentation written
It is always good to have documentation written by the developer. For this, you then have to give the developer some time.
This may consist of: a) Code comments b) Logical description of the software with screenshots and illustrations in a Word file.
A developer who has never had anything to do with the software should be able to learn it easily. This also includes that the code is written in a “simple language”. (Example: function with name “DatumsAnzeiger” instead of “DaAn”).
4) Pre-set budget or have developers work on paid projects in part.
This is probably one of the most difficult parts of a web application implementation. Who wants to spend a small, medium or large budget.
Alternatively, one could either from the current income of the company, bear the costs. For example, through programming services for external companies. That is, the developer works 50 percent of the time on customer projects and 50 percent of the time on his own projects. Of course, this is not the perfect way, because a developer wants to be able to focus on one thing. However, this way you can keep your costs lower. With such an approach, one can assume that the project will then also take longer.
5) Rely on open-end developers
Additional point in this context: It is better to rely on open-end developers than on temporary cooperation.
What is meant by this is the following: Since in most cases/projects you don’t even know how long such a web development will take, the cooperation with the developer should be designed for the long term. This can be an own employee or an external developer at a service provider or a freelancer.
In all cases, the price (hourly rate, salary) is lower when you work together for the long term and also have planning security for programming.
6) Have an experienced developer on the team, plus ideally an experienced IT project manager.
In most cases, it’s hard to do that with an experienced IT project manager. Especially for startups. However, it should be enough if you already have experience managing projects (something most people with work experience have).
In addition, there also needs to be an experienced programmer on the team who can provide guidance on how to continue programming.
You can only rely exclusively on junior developers if the IT project manager is a programmer himself and can make the respective architectural decisions.
7) Use low cost developers
There are different ways to develop more cost-effectively.
Here are some ways of it:
- Developer Co-Founder: Here the Co-Founder can program and you get the development service for free, so to speak. However, company shares must be surrendered for this purpose.
- Apprentice: Apprentices can also assist with development. As always, the obligatory advice: Only do what is allowed by law, in a training.
- Part-time developers: many students have time to work while studying. A web developer job is ideal for this. Better than to wait tables, etc. The student gets the first work experience and can work on an exciting project.
- Offshore programmers: if you need experienced developers, then you can look abroad. India in particular is a pioneer here. (Disclaimer: I offer something like this with my company YUHIRO)
8) Use open source and free software
You could manage a software project with a free tool like Trello. Email, Skype and other tools are also available, some for free or at a low cost.
Development with open source is also advisable. With .NET, for example, many things can be obtained against payment. For example, different software licenses. With PHP and co. it is different. Here, almost everything is available free of charge.
However, you should not skimp on software, which greatly increases the speed of development of the developer.
9) Monetization strategy
The project cannot come from external budgets forever. At some point, further development should pay for itself.
Some ways to do that:
- Freemium: One offers the first 14 days or 30 days free of charge. After that you have to pay for the solution. Or there are some functionalities which you can use forever for free. And for premium functionalities you pay a monthly amount. At launch, the premium version must also be very inexpensive. Later, when you program more functionalities or have more users, you can also increase the monthly amounts.
- Firmium: That’s a word I just invented myself. The idea is to offer the solution to a company at a reasonable price. The costs for the development should be borne by this. However, the software code belongs to the developer himself and he can then offer it to other companies. The company that initially co-finances the software has the advantage that it receives the software at a minimal price.
- Investor: It can also make sense that when the software has gained momentum (active users or already premium subscribers), to look for investors who will finance the further growth. In part, you can get several hundred thousand to million euros this way. The potential must be accordingly.
- “One-time” payment by client: This is the most classic case. Here the web application is developed on behalf of someone else.
Conclusion
There are certainly many more tips that can be given. However, these are the most important ones in my opinion.
What are your experiences?
Here are a few more interesting posts:
Planning of a web applications project clearly presented
Or do you want to develop with WordPress right away?
Sascha Thattil ist Blogger und Geschäftsführer bei YUHIRO. Wir bauen Entwicklerteams in Indien für Agenturen, IT Dienstleister und Softwareunternehmen auf.