Creating applications and other software
From idea to implementation
Do you have a great idea for a mobile application? Or do you need to create new software, or expand your existing information system with some additional part, but you don't know how to implement the idea? Then sit back and read our article, in which we have written down everything you need to know.
In the article, we have prepared recommendations for you on how to prepare for software development. You will learn what steps to take and how to save yourself unnecessary worries. Since the procedure for an established company that has experience with projects, the necessary resources and an established organization is different from the procedure for a startup, we deal with both types separately.
The following lines are valid for medium-sized or larger companies, but they can also be an inspiration for startups or smaller companies.
- A managerial description of what you want to develop
- A clearly defined goal (why you want to develop it)
- Knowledge of the users, their job description in relation to the system and their needs.
Design process
There are two options. You can have a consulting firm guide you through the entire design, and you then hand over the complete specifications to your software supplier. The second option is for your supplier to process the design for you directly. As a supplier, we prefer the second option because our goal is to provide our clients with comprehensive services that are 'tailor-made'. If we receive a client's own specifications, they may not be sufficient specifications for us, and we then perform a detailed analysis and design again to ensure that we are developing exactly what the client needs.
Introductory presentation to the supplier - introduction of the entire project
The initial meeting is used to present your vision. Here you should provide the supplier with all information regarding the intention, goal, processes and user knowledge - see the section Description of intention and goal. Our experience shows that the more detailed information we receive from the client, the better we are able to determine a framework price for the software being developed. Our advantage is that the initial meetings are not attended by salespeople, but by experts who can provide feedback during this initial meeting and are therefore beneficial from the very first moment.
The contractor will propose a project plan
Based on the information obtained, the supplier will propose a project plan and a framework price (or price range). The ability to determine the price range is important so that it is clear from the outset whether the client's price options match the financial requirements of the implemented project. In addition to estimating the financial and time requirements, in this step we also plan the dates of meetings with the employees with whom we need to communicate about the project (we need to map out which employees are involved). We will then provide the client with information regarding the duration of the project phase and also an estimate of the development time (we are able to tell clients the exact time required for development when the project is complete.
Interviews are underway, the supplier is putting together requirements
In the third step, we carry out scheduled meetings and gather all the requirements for the software being developed, which are agreed on on an ongoing basis. It is common practice that we ourselves recommend, based on analysis and discussions with users, what functionality the client should request.
Delivery of a complete catalog of functional and non-functional requirements
The supplier creates a complete catalog that contains all functional and non-functional requirements for individual areas of the system. Functional requirements describe the behavior of the developed software and are usually described using so-called user stories and use cases, which simply represent a description of the user's behavior in the system and the solution of individual cases, how the user will solve them using the system. In addition to functional requirements are so-called non-functional requirements, which describe other properties, such as load requirements, performance, etc.
Detailed system design
At this stage, we are already designing the system itself and we are continuously communicating this design with the clients. As part of the detailed design of the system, the client also receives so-called wireframes, which you can imagine as a drawing of individual screens of the software being developed. Thanks to the wireframe, the client has the opportunity to see, for example, the layout of elements and the functionality of the future software. The detailed project contains a complete description of the proposed software, including the relevant requirements catalog and any diagrams that are a common part of the project.
Feedback on system design
Feedback is important not only from the project manager, but also from the relevant users. It might seem that the participation of the project manager is enough, but in practice we encounter the fact that the manager does not have a completely accurate awareness of the activities of various workers and accurate information about the process (for understandable reasons). Therefore, it is necessary to map out very well who should participate in the feedback in order for it to be as beneficial as possible. There are cases when the manager has a perfect awareness of the processes and activities of the workers, then there is no need for anyone else to participate in the feedback. <br/> <br/> If the software is developed for employees, feedback is easily obtained. However, if, for example, the creation of an application for a user who is not in the company (for a customer, etc.), we recommend that our clients take the design and test it directly with potential users. It is important to obtain feedback from users before the software goes into development.
Prototype and user testing
Based on the feedback, a prototype is created that is intended for user testing. There are different stages of a prototype. It can either be created within wireframes - the client sees images, can click a button and has the opportunity to see how the system/application will look. Or a live prototype is created that already looks and behaves like an application/system, it just doesn't work with raw data. When the user directly sees the given software and event. he can also feel it, better and easier to identify what he needs differently (or what functions he lacks). Thanks to the prototype, it is possible to avoid many problems that could arise only after the software is deployed. In practice, it happens that users accustomed to a certain way of functioning of the software resist the changes that are associated with learning something new. To alleviate this, we try to apply user adaptation, which includes the active use of the prototype. We have good experience that when users are involved in the development and testing of new software, the transition to a new system is easier and without unnecessary friction surfaces. It is ideal if users are part of the development already at the project stage, where they have the opportunity to express what they lack or do not like in the existing software.
Scheduling and pricing
In the last step of the design, the software development schedule, the software development price, as well as, for example, a data migration plan and possible organizational changes, are determined.
For simplicity, we will use mobile app development as an example in the information below, but the information is valid for any software development. Before we get to the specific steps that will guide you in creating the right brief, let’s take a moment to discuss the differences between each type of startup.
In practice, we encounter three basic types of clients:
- All about the ideaNow we come to what you need to pay attention to in order for your software development to be successful and without unnecessary delays or even losses. The more detailed you describe your idea, the better. In addition to the idea itself, its benefits should also be defined and, last but not least, the source of profitability. Questions that will help you define the benefits: Who and what will your software help? Who is it intended for? Important questions regarding profitability: Where, when and how much will you start to get back from your investment? As for the motivation for implementing your idea, it does not necessarily have to be generating profit. Your goal may be to acquire (generate) users and penetrate the market for a possible later sale of the project. A mobile application with a number of users gains value, so someone can subsequently buy it from you and supplement their existing portfolio. All this information related to your idea needs to be written down in order to be able to work with it and get the most out of it.
- Knowledge of future usersWithout knowledge of future users, the path to success is very thorny (if not impossible). If you have been in the field long enough, you know the behavior and needs of users, you have less to worry about. All you need to do is write down all this knowledge. If you do not know much about the future user, you need to find out all the necessary information about him. If you start developing, for example, a mobile application for users you do not know much about, you run the risk that there will be no interest in your idea - not because it was not good, but because the way it was implemented will not be suitable for your target group.
- Market knowledgeWith market knowledge, it is the same as with knowledge of future users. A person who has been in the market for many years and has knowledge of the given industry has a greater chance of success. If you have only minimal experience with the market (or none), we recommend inviting someone who has the necessary knowledge and experience.
- NDA (non-disclosure agreement)A non-disclosure agreement, or NDA, can be a touchy part of the cooperation between a client and a supplier. It is not ideal to ask your potential supplier to sign an NDA that contains exorbitant requirements or contractual penalties. This will discourage the potential supplier from the very beginning, because no supplier will want to undergo such conditions, especially when it is a phase when the cooperation is not yet fully guaranteed. This is not to say that you should not deal with NDAs at all. For example, at iQuest, we have a standard non-disclosure agreement prepared for our clients, which was created by our legal representatives and which we routinely sign.
- Competitive analysisUsing competitive analysis, it is possible to describe the advantages of the proposed software over the system created by the competition. For this you can use e.g. a simple table that has the characteristics of your future system on the X-axis and a list of competing products on the Y-axis. In this way, you can clearly define where the characteristics overlap, which are better or, conversely, worse compared to the competition. <br/> <br/> This tool will also help you eliminate the possible risk of unnecessarily spending funds. It may happen that, based on a competitive analysis, you find out that the competition has already developed such a system and that the idea is not as innovative as it might seem at first glance. Thanks to the competitive analysis, you will find out this fact before you invest in the software development itself.
- Initial estimate of development costsThis is where the software/application development cost estimate comes in. The supplier will most likely not be able to tell you the exact amount at this point, but they will tell you the range in which the development costs will be. This will give you a clear idea of whether they will be in the hundreds of thousands or millions. The more precise the assignment and the more detailed description of all aspects related to the software you are able to give your supplier, the better and more accurately he will be able to estimate the cost of developing your software.
- Description of marketing and market penetrationIt is also very important to know how you will distribute the application. Of course, it would be great if it were just enough to post the application on Google Play and it would be available all over the world, but it is not that easy. The resources for developing mobile applications also include marketing costs, because expanding the application all over the world is a financially expensive matter. Expansion to other countries is associated, among other things, with the need for language mutations and legal differences in different countries (regarding, for example, the collection of personal data). Therefore, we recommend that our clients choose to gradually distribute the application - first within the city, then the region and then at the level of the entire country. This process also involves the need to plan marketing costs and think through a marketing strategy that will get your application to the target group of users.
- MVP (minimal viable product)It is possible (sometimes even necessary) to start with little. That little is an MVP - a product with the smallest possible functionality. In practice, it looks like this: An application (MVP) is created, the development of which costs, for example, 500 thousand CZK. This application is made available to users, which allows us to verify whether users are interested in the product. Another benefit is obtaining valuable feedback. If the application proves successful, additional functionalities are developed. We highly recommend this procedure to our clients, because it minimizes the risks associated with the failure of the application. You can read more about why your startup needs an MVP in the article on our blog.
- Version design - gradual developmentThe MVP deployment was successful, there is interest in your application, so it is time to expand your application with additional functionalities. In this step too, we recommend our clients to continue the development of the application in versions (gradual expansion) and not all at once. The reasons are the same as for the deployment of a minimal product.
- Agile developmentAgile software development is done in sprints (the entire development is divided into several sprints/cycles). After each sprint is completed, client approval is required before work on the next cycle begins. This makes it easy to change software development requirements based on user feedback. This is the main reason why we recommend this development model to our clients.
- Emphasis on user testingUsers are the ones who ultimately decide the success or failure of the mobile application being developed. This is also why we put a lot of emphasis on user testing. With user testing, you have the opportunity to get feedback, thanks to which you can continue to develop a successful application that will bring you the desired results.
- Standard development + marketingApp development is a process that will bring you the realization of your dream / great idea. The whole process does not end with the finished app, because it is equally important that it reaches users. Therefore, it is essential to have a marketing strategy ready. Regardless of what marketing channels (advertising in stores, PPC, print, television, etc.) you will use, in addition to the strategy, you must also have a clearly defined budget for marketing activities.
We will guide you development from beginning to successful end
Product design, intent verification, competitive analysis
Be with us from the first idea. We have experience, we have ideas, we are knowledgeable.
Functionality, design, user comfort
We make software functional, beautiful and easy to use. All for your success.
Experienced and well-coordinated development team
Specialists in architecture, backend, frontend, layout and database. So that your software is robust and stable.
SEO and online promotion of your product
We will help you promote your online product on the market.