Why You Need Research for Your Future Projects (with Examples)
Sometimes people think research is only needed for the sciences. Yet these days, research in various forms and shapes is all around us, and software development is no exception. Check out this article and see why you should never underestimate the power of research in tech.
When people hear the word “research,” most of them imagine scientists in white lab coats, wearing goggles and gloves, mixing colorful liquids, and writing down the results, whatever they are. But the concept of research now stretches far beyond the walls of a lab.
Many areas of our life require research, from plant construction to finding the best tasting cheap pizza in town. Today we are going to explain why the research stage of product creation should never be missed.
Why it’s needed
From the outside, the project creation process may look pretty simple: You have a list of desired features, you have time and money – so you implement it! But, as usual, nothing is as easy as it seems.
Every process in an app has a corresponding variety of development tools available for its implementation. Every tool in this variety has its own unique set of functions. Moreover, all the tools being used must be synchronized with each other to provide users with seamless performance. The problem here is that from this seemingly endless list, the developer should choose only those few that completely fit the project goals. How to choose the right tools? That’s right. Conduct research!
To make your future product as successful as possible, your research should be conducted on several levels. The most efficient and organized way is to go from bigger to smaller issues. The whole process can look like this:
- General level: This level determines if the project you have in mind is even viable.
- Middle level: At this stage, we’re looking for specific ways to implement the desired features.
- Local level: After defining the path for implementation, we search for tools that have the functionality needed to implement the features we want in a way that provides the best user flow.
Going for details
Now that we understand how to conduct research successfully, we can talk about the most common reasons for developers to start research on a new project.
We already talked about what an idea really means in project development, especially for startups, but it’s worth mentioning one more time: any new (or seemingly new) idea requires research. In some cases, a highly experienced specialist can say from the very start if an idea has any chance to survive in the market. But the best way to conduct research at this level and to understand if an idea is viable, is to validate it in the market itself.
Still, like any other rule, research has its own exceptions. For some projects, it’s hard to tell whether the idea you have can be implemented in real life until you actually begin implementation. Sometimes such an approach can be useful, but the vast majority of new projects require thorough research
For example, we developed a recent project without any Google tools. Our client, an international insurance company, cares a lot about their customers’ data security. That’s why we had to follow an important condition: Use no Google products. So we started looking for alternative ways to implement the project. After thorough research, our team chose the most suitable stack for our client.
The external circumstances also can determine how certain features are implemented, and another project named Separate.us showed us this very vividly. This platform automatically filled in a set of forms necessary for divorce as the user answered simple questions based on those forms. But the volume of the final data was so huge that it became impossible to use normal methods of data storage and presentation. So we chose to implement it with graph databases.
When all the external issues are solved and the idea is proved to be viable, it’s time to think about the internal peculiarities of the project and how they will be implemented.
For example, during the development of StickerBox, this level of research took the most time. The core functionality of this app was to correctly and accurately (to a pixel) detect and cut out the face of the user, then use it to create a custom sticker. Here we had two problems:
- The face had to be detected apart from any background elements, clothes or neck parts.
- People wear an enormous variety of hairstyles, and we had to account for all possible haircut characteristics, from shape to color.
We were one of the first development teams to face such challenges. And we were one of the first to resolve them. After long and thorough research, we decided to shift from mathematical algorithms to neural networks that were trained to recognize faces and hairstyles. This method helped our team implement nearly flawless face recognition, allowing users to create funny stickers from their own faces.
These days, software is being constantly updated – new phone models, new mobile apps, new artificial intelligence features. Development tools are no exception. Every developer knows that if they have already performed a particular task a year or two ago, they need to conduct some research to find out if the stack needed for that task has changed. And if it has, what new functionality does the tool now provide? It’s also possible that this research will help the developer find some new technology stack that will make the development process even more efficient than the previous tools.
To sum it all up
Nowadays, the term “research” reaches far beyond scientific questions. Our life is full of research efforts that we conduct daily for our own purposes. In the realm of software development, research can become a turning point in the whole process.
So, here is some advice for you to consider:
Don’t rush. Research requires time, sometimes even more time than development itself.
Don’t think it’s easy. Sometimes it can escalate to nearly the level of actual scientific study.
And don’t ignore research. It is the only way to understand if your product will truly succeed.
Get weekly updates on the newest design stories, case studies and tips right in your mailbox.
Testing is an essential step in software development. Every function of your app must be perfectly polished, or it might crash on your users during a sudden huge load or after your latest update. How to test your app to keep this from happening? Well, we’ll help you figure that out.
Mobile apps are transforming the travel industry in an incredible way. Currently, mobile applications are competing with each other to make tourists’ experiences more personalized and sophisticated. In this article, we provide the best examples of how travel apps make your trips better.
Here are the top 10 reasons why Selenium is the best tool for testing web applications on the market (and 3 reasons that make it less perfect–but who cares when it’s so cool anyway? : ) )