What should I do to make the programmer write the application in a way I want?
In the ancient times of the beginnings of computer science, programming was an art and computer scientists were magicians. Programmers did not have as many possibilities as today and did what they could / wanted, and the client did not have much influence on what will be created. The direction was set and the contractor specified what could be done and what was not.
Nowadays, technology is no longer a limitation in most cases.
The only problem now is that the software engineers accurately convey what we want him to create for us. How to do it?
Draw the map
Maybe not literally, but the map is the perfect analogy here.
If you would like to give someone a tip how to get in your city from point A to point B, the best solution would be to draw a simplified scheme of the area and use the arrows to indicate the way.

You must guide your application developer through… your application.
However, don’t draw a map for him (although the drawings of individual screens of the application will definitely be useful), but prepare the specification of the application, in which you write everything you care about.
Practice, however, shows that writing project documentation in which all the developer’s questions are answered is rather impossible. During coding, the programmer can often come across unforeseen problems that have escaped your attention. You will not foresee everything.
Can I allow developer to make decisions by himself?
I am of the opinion that specialists (from different fields) can be divided into two groups:
- those who at any time requiring a decision ask the client for a “verdict”, and
- those who “know better” and decide to solve the problem themselves.
Which option is better?
Probably the best variant would be something between … someone who will consult important things, and those who are not important will arrange for themselves.
The problem is that the contractor, if he does not understand the client’s needs, is not able to determine what is important to him and what is a trifle.
How to protect yourself against this?
Just before concrete work begins, you should prepare for these problems so that the process of creating your application runs smoothly and smoothly.
Determine the objective of the project in the application specification

When creating the documentation of the application, specify why it is created, why it is created right now, and in what way will it help you or your clients.
Thanks to this, the programmer at any time requiring a decision, can try to solve the problem by asking himself a simple question “which way better leads to the goal?”
Give a programmer contact to a decision maker and its substitute
A programmer encountering a problem, usually must get a decision as quickly as possible, so that he or she can not get stuck and not have to wait. Lack of feedback “because the person who deals with it is sick” unnecessarily extends the programming process. Therefore, make sure that each person taking part in the project has his or her deputy and provide programmers with information about them.
Control, control and control once again
As the old proverb says … controling is the highest degree of trust.
Control the progress of work on your project so that what is created from the beginning to the end is consistent with your vision.
However, it is difficult to verify the entire large project. It is much easier to do if it is divided into parts or stages.
Save in the project specification which modules of the program are to be created first. If a module is highly developed, determine what its functions are prioritized and which may be created in the second stage.
Thanks to this you will know what is happening with your project on a regular basis.
Document all arrangements

Every detail that you specify with the contractor must be documented. Even if a decision was made quickly, save it and send it to the developer asking for confirmation.
This is important because when you pick up a finished product or its module, you need to verify that it really is what you ordered. In the case of deficiencies, you must have proof of what the arrangements were.
Small digression: e-mail is not best suited for documenting project details (as in another article), but it’s better than nothing.
Give precise information to the contractor, talk to him, let him understand your way of thinking, so that by realizing the project for you he would follow the same direction in which you planned.
The more information you give prior to the start of the project, the less misunderstandings await you.