hero image

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.

corporateEstablished company

The following lines are valid for medium-sized or larger companies, but they can also be an inspiration for startups or smaller companies.

How the intention or need arises
How the intention or need arises
The initial motivation for developing new software usually arises at the management or owner level. Whether it is an intention that arose from middle management as a need (for example, to make work more efficient), or the project comes directly from top management or the owners of the company, a connection between both levels is always needed for successful implementation. Software users should also be an integral part of the process, because thanks to their knowledge and experience, it is possible to avoid unnecessary errors, delays and imperfections in software development.
Who is the head of the project?
Who is the head of the project?
The term 'project owner' has been introduced in the software industry. He is the main bearer of the intention and all goals, why the software is being developed and what its purpose is. In medium-sized companies, the project is often overseen by the head of a certain department or a member of top management, who manages and coordinates it on behalf of the client company. The team also includes an IT department employee who has a comprehensive knowledge of the company's environment from an IT perspective and is able to contribute from a technical perspective.
Management support, budget
Management support, budget
If the intention comes from the position of middle management, it is necessary to ensure the support of the company management or, if applicable, the owners of the company. Addressing potential suppliers without such management consent is usually only for the purpose of 'market research', which serves as a basis for negotiations with management. The first step in presenting the project intention to the company management is ideally to present the vision of improving the functioning of processes in the company and to clarify whether it is possible to invest funds in the project and in what amount. We, as suppliers of software solutions, if we are invited to such a meeting, are usually able to determine the approximate price range of the order during the first consultation, so that our clients know what to expect.
Description of purpose and goal
Description of purpose and goal
The basis for successful project implementation is the best possible description of the intention and goal of the software you want to develop. This is not a technically focused (IT) description, but a description from a managerial point of view. It is important to define not only WHAT you want to develop, but also WHAT it will serve you for and what GOALS we want to achieve. In order for the supplier to better understand the intention of the software being developed (which is essential for the successful implementation of the contract), he needs from you:
  • 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.
Internal discussions across the company
Internal discussions across the company
Involving users in software development is a necessity for us in practice. Thanks to the knowledge of the risk of unnecessary complications in the functioning of future software.

Design processDesign 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.

hero image
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

startupHow should a startup describe its mission statement?

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:

Enthusiast
Enthusiast
The first type of client we would call 'enthusiast'. This client has a hobby that he has transformed into a functioning business. He has come up with a mobile application for his business that he plans to implement. He has a vision, great enthusiasm, but less financial resources and business experience. His vision is to develop a complete application with all functionalities, which he will then launch on the market. We advise our clients of this type not to wait for the final/complete version of the mobile application being developed, but to let users test the MVP (minimum product version). By testing the MVP, the client will get important feedback from users, thanks to which he will know whether the application is in demand or not. Another advantage of this step is the generation of funds that can be invested in further development of the application. If the client waits until the final form of the mobile application is tested, there is a real risk that the funds invested in software development will run out, the application will not launch in the end and everything will be for naught. To prevent this from happening, we give our clients feedback when it is a good time to move on to MVP testing. Given the above, we recommend listening to the recommendations of developers who have invaluable experience in this area and also not underestimating user feedback, which is crucial for the success of the developed software.
Experienced businessman
Experienced businessman
The second type of client we encounter in practice is what we would call an 'experienced businessman'. This client has a vision, a good idea, knows exactly what he wants and has extensive experience in business. He also has sufficient financial capital generated by a stable and successful company.
Cooperation with the investor
Cooperation with the investor
The third type of client is a typical representative of a startup in the true sense of the word. Typically, these are enthusiasts who have a great idea and want to take the project to the stage where they can offer it to an investor. Alternatively, there is a second option, when they have no financial capital at all and have had their investor from the beginning of the project. Investors are very beneficial to startups not only for their invested capital, but also for their business experience. They are usually entrepreneurs who know how to walk in business, can make the right decisions and have a clear business plan. In addition to their experience, they can also offer good advice and constructive feedback.
  1. All about the idea
    All about the idea
    Now 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.
  2. Knowledge of future users
    Knowledge of future users
    Without 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.
  3. Market knowledge
    Market knowledge
    With 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.
  4. NDA (non-disclosure agreement)
    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.
  5. Competitive analysis
    Competitive analysis
    Using 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.
  6. Initial estimate of development costs
    Initial estimate of development costs
    This 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.
  7. Description of marketing and market penetration
    Description of marketing and market penetration
    It 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.
  8. MVP (minimal viable product)
    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.
  9. Version design - gradual development
    Version design - gradual development
    The 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.
  10. Agile development
    Agile development
    Agile 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.
  11. Emphasis on user testing
    Emphasis on user testing
    Users 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.
  12. Standard development + marketing
    Standard development + marketing
    App 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 believe that thanks to our article, you will be one step closer to the successful realization of your vision. If you need more information, advice or any help on the topic, do not hesitate to contact us. We are happy to lend you our helping hand in solving your software development.

We will guide you development from beginning to successful end

Product design, intent verification, competitive analysis

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

Functionality, design, user comfort

We make software functional, beautiful and easy to use. All for your success.

Experienced and well-coordinated
development team

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

SEO and online promotion of your product

We will help you promote your online product on the market.

We will create for you information system to measure.
Speed, quality and 21 years of experience.
Get a quote