Device drivers development
We are developing device drivers for bill acceptors, card readers, ticket printers. The most popular devices went through our hands: innovative NVX, JCM UBA, EPIC and others.
Stages of estimation and implementation of a project:
- The Customer requirements determination
At this stage the Customer provides information on the volumes of planned work, and if necessary we conclude non-disclosure agreement (NDA).
All information should be as detailed as possible delivered in a structured form (specification or terms of reference). If you do not have such a document, we can draft it for free.
Terms of Reference is the source document for software design. The terms of reference articulates the main purpose of the software under development, its technical characteristics, quality indicators and technical and economic requirements, the instruction to perform the necessary stages of documentation drafting (design, technological, software, etc.) and its composition as well as special requirements.
The Terms of Reference is a legal document being an annex that is included in the contract between the customer and the contractor. It is the basis of this contact: it determines the procedure and conditions of work including the purpose, objectives, principles, expected results and terms of implementation. There should be objective criteria by which it is possible to determine whether a particular item of work is being done or not. All changes, additions and clarifications of the formulations of the terms of reference are necessarily coordinated with and approved by the customer. This is also necessary due to the fact that in case of discovering inaccuracies in the process of solving the design problem or inaccuracy of the initial data, it becomes important to determine the degree of fault of each of the parties involved in the product developing, distribution of losses incurred in connection with this. The Terms of Reference as a term in the field of information technology is a legally significant document containing comprehensive information necessary for setting tasks for executors to develop, implement or integrate a software product, information system, site, mobile application, portal or other IT services.
This is why we recommend entrusting drafting the terms of reference to professionals:
Professionals will analyze your future project and offer you the most productive scheme of work. For example, the release of a prototype project will save not only your budget but also time for the project in general. Release of the minimum working version of the project (MVP) will save the budget for the project and accelerate profit attraction.
Most often the specialists involved in writing the terms of reference are the following :
- Business analyst - describes the basis of the terms of reference;
- Architect programmer – a programmer with a long work experience who should check whether it is possible to create a software product using the technologies described by the business analyst, whether there are any implicit difficulties that will lead to a complete or partial alteration and increase in cost;
- UI/UX designer – interface expert who draws sketches of the future software product if it's necessary;
- Tester – a tester with a long work experience who composes requirements for testing the future software product, a list of platforms, screen resolutions, load tests and similar stuff;
- Layer – verifies the legality and validity of the document;
- Other specialists (technologists, electronics engineers, and other specialists if they are required)
What are the consequences of mistakes in the terms of reference (if you draft it yourself):
- An infinitely underdeveloped software product that will waste the entire budget and will not be released;
- Problems with the acceptance of work as there are no specific requirements, everyone is right, there’s nobody’s fault and the product is functioning wrong;
- Vague work requirements to significant increase in the time and budget;
- Conflict situations at all stages of project development and legal fees(in the worst case).
- Coordination of the cost and working conditions with the client
At this stage the cost of work is coordinated with the customer according to the terms of reference or specifications and the composition of the team participating in the project development.
The following forms of cooperation are available:
This model is one of the two most popular models of cooperation. The most demanded for small and medium-sized businesses in the work on short-term and medium-term projects. The model includes the exact amount of requirements, deadlines and a fixed budget.
The customer defines a set of requirements for the final solution, which should not change throughout the term of creation of the final product. Our company in its turn provides a schedule, a detailed work plan and a monetary assessment based on the scope of work and the complexity of the project.
Time and material
This model is optimal for long-term projects with varying requirements and an undefined amount of work. If at the first stages of the project creation there is not enough data or the customer wants to get more control over the process of creating the solution, this model helps to provide flexibility to define and record changes to the project at any stage of its implementation.
This model of cooperation provides the flexibility of the size and volume of developer team load involved in the project optimizing time and costs. The total cost of the project is determined by the amount of time and resources spent, based on the number of specialists and the mutually agreed hourly rate for different categories of employees.
A dedicated team
This model allows customers to expand their staff at the expense of professionals working offsite. Our company offers a team of specialists, previously selected by the customer. The team adopts the norms and methodology of software development and project management of the customer. Project management can be carried out both on the customer’s location and from the office of our company. In both cases, the customer has full control over the software life cycle.
- Team formation and project development starting
At this stage we form the team of necessary specialists. Typically, this is the project manager, Backend programmers, Frontend programmers, UX / UI designer, testers. If necessary, we recruit other related to the specifics of the project.
The whole project is divided into stages (depending on the model of cooperation) and tasks, which in turn can consist of subtasks. The project manager is given a leading role, he monitors the deadlines of task implementation and load balancing for programmers and other project participants.
Even the most sophisticated programmers commit mistakes, so at all stages of development it is necessary to debug the code and conduct functional testing. This is all agreed upon with the project manager, who in turn monitors meeting the schedule and provides the customer with detailed reports.
To manage the project we use JIRA on our own server, Confluence for documenting and structuring information, Bitbucket (on our own server) to control the versions of the program code. Any integration with the services provided by the customer is also possible.
Testing is carried out at all stages of project development and in a minimum ratio of at least 15% of the time spent on development. The higher the quality of testing, the more reliable the software product is. This stage should not be neglected.
- Commissioning, conducting presentations and training
At this stage additional documentation on the project is being prepared. The project is transferred from the test server to the real one. There comes publication of mobile applications. There follows basic content management, conducting presentations, promo clips. The stuff of the customer is trained to work with the project and maintain it later.
In case the customer wants to continue the development of the project and he does not have his own staff of developers, we are ready to provide further support for the project. This can be either a one-time task or a dedicated team with a monthly payment. Conditions are always highly individual.
Technologies that we use to develop device drivers
As soon as the work is finished, we provide the customer with the warranty for the work carried out. Warranty terms for each project are individual. If any defects are found, we eliminate them for free. To work with us means that you will get maximum convenience and quality.