How to Communicate Your Ideas to Developers?
Some people generate ideas. Others can realize these ideas. Some people are good at submitting abstract ideas, but they are not good at technical terms, and there is a normal situation. But it is necessary to be able to get on with each other for all of them — both for those who generate ideas and for those who will implement them. Especially it concerns IT, where the abundance of technical terms from the developers or engineers may seem a foreign language.
There are people who have the knowledge and skills to put their idea into practice by themselves. But most people have a narrower specialization and more experience in a particular field. Because of that, we must delegate a part of the work to specialists, and for this, we need to know how to talk to engineers and developers and to create a clear technical task.
So, you have an idea, and you want to implement it. You need to develop a software or application. What to do?
First of all, it is necessary to compile a simple description — to make an intro. Think about the following questions:
- What should the application or software do?
- How the application or software should do it?
For each question, it is worth writing a maximum of three or four sentences. Imagine that you are creating a pitch.
These questions will form the basis for further implementation — a detailed technical assignment.
What should the application or software do?
You need to understand software and application you want to receive. Thinking about the idea, you probably imagined the final result. Try to describe in a list: what functions the application should have? This list will become a kind of “core” of the technical assignment. The sequence of items in this list is formed in the order in which you intend to make the functions available to the user. For example:
- Start screen: logo, short description, login fields (is an account required?)
- Ability to log in through social networks.
- Tabs at the top; the first one is a news feed.
- The second tab is a user profile: avatar, personal data, the ability to edit them.
Such a list will allow not only to structure your idea on its own but also to understand and formulate what exactly engineers and developers will need to do.
How the application or software should do it?
You need to understand software which will be used when implementing your idea. Here you can formulate — first of all for yourself — which platforms are going to be used, for which devices your application is. Perhaps you can figure out what additional services your software or application might need, say, cloud storage or built-in payments.
When these lists and plans are ready, it is worth starting to interact with developers. You can do this either directly (either if there is your own team or hired), or indirectly (perhaps the development team has a personal manager, or through third parties). A technical writer can help you to communicate with the development team and to formulate your idea in the form of a technical assignment in some cases.
At the first stage, the developers or their representatives will say whether they are in a position to implement all your ideas. If not — why and what part of your task is outside their competence. If yes — what will this require in terms of time and money. If there is a technical task, developers’ comments may be located directly at each point, making it easy to navigate through the discussion. In the process of this discussion, the final picture of the realization of your idea by the developers will be created, taking into account the wishes and opportunities of both sides.
NDA and other agreements
Another important point is agreements. First of all, this is NDA, non-disclosure agreement. What is NDA? There is an agreement, which will allow you to retain the rights to your idea in the process of its implementation and guarantees its non-disclosure by the performers — or compensation by them if it does happen. When composing and sign the NDA, it is best to use either ready-made templates that are easy to find on profile sites (or even sites related to your area), or to consult a lawyer. Sometimes it is more optimal to use the second option since some countries or even regions or states have their own rules for concluding such agreements.
Other types of agreements include contracts for services and payment (for example, on the principle of a share of profits, or on full prepayment, or advance payment, and so on). You can also create them yourself, or you can use the services of professionals in the relevant field.
There are many useful tools to facilitate the process of drawing up plans and terms of reference — up to those that allow you to create a prototype of your future application. A simple text document can be an excellent technical task and a clear example in some cases. But if you can make the technical task more obvious and understandable to the developers — why not take advantage of this opportunity?
Sketch boards and storyboards
Sketch boards and storyboards are the simplest tools. You can use even a simple notebook and pen! Although it is better to transfer this data to digital form — it’s easier way to store information, change it and transmit. By the way, some office supplies manufacturers provide such opportunities — for example, Moleskine has the smart writing set and so-called paper tablets which allow digitizing your writings and sketches. In general, such boards and blueprints can allow you to draw interface examples, menus, screens. This will allow you to visualize your idea.
We recommend to use the large surfaces (boards, A1 sheets) and to place small sheets with details. In this way, mobility can be achieved. If you prefer digital solutions, text editors (Microsoft Office Word, LibreOffice, OpenOffice, Google Docs) are your choice. It is easy to adjust the page size, and drag and drop items there. You can also use tables of contents and anchors. They allow you to link different elements and easily navigate between them.
Flowcharts allow you to use pre-made symbols as a visual display of each item of your plan. These symbols are universal and easy to read, and you can simulate the user’s actions in your future application or software.
Wireframes and prototypes
Prototyping is an advanced level of preparation of your idea for developers. Not everyone has the necessary skills and mindset to create a working prototype of the application. So prototyping often is a part of the work of developers. The prototype allows you to demonstrate your idea and also allows developers to show whether they understand your task correctly. It is easy to make edits and even substantially change the concept at this stage.
What Not To Do
How to talk to engineers and developers? Communication with developers and conveying to them your ideas have the same pitfalls as any communication — both informal and business.
To avoid these pitfalls, you should consider a few simple highlights. And these highlights work in both directions — from the point of view of the person who provides the idea, and from the point of view of the person who will implement it!
- No one can understand everything well. If you hire developers to do what they can do well, then let them do it. Do not try to portray knowledge in an area that you do not really own. There is nothing wrong with not knowing something.
- Your opinion is valuable, but the opinion of your interlocutors is just as valuable. You need to be able to come to compromises. But you also need to know exactly to what extent you are ready to go for these compromises. In the end, on the one hand, there is the author of the idea and the customer, and he decides what he wants. On the other hand, there is the developer and the contractor, and he decides what his (or his team’s) skills are sufficient for.
Remember: each person has their own opinion, skills, and experience that may differ from yours. And the guarantee of productive cooperation is the ability to listen and to develop an optimal strategy on the basis of several opinions.
Communication with developers like any other communication requires a clear understanding of your ideas, understanding of the developers’ potential, and the ability to come to compromises. This can be achieved independently — the brief information above can be a good foundation for this. And you can ease your business and entrust communication to IT companies specializing in such interactions like Sloboda-studio.