Our main specialization in EDISON is the development of sophisticated custom software on Windows, Linux, MacOS and Android, iOS, Windows Phone mobile platforms. During our work we have completed over several hundred large-scale projects at the highest level of development and customer service quality . Unfortunately, most of the most interesting projects are safely hidden behind the NDA. But whatever software being developed: a system, application, web or mobile app, the general design and its principles are the same.
In the last article we talked about our principles of software design, in this post we will proceed directly to the development process in the EDISON Development Center.
Stages of software development
Depending on the type, scale and needs of the project is determined by the order of development. It will be slightly different for developing mobile applications , firmware , automation solutions and databases , but the general sequence of actions for creating software is universal: ')
Design is the second most important component of the product after the technical characteristics, affecting the efficiency and speed of user interaction with it. Design requirements are determined by the TK - as a rule, simplicity, intuitiveness and minimal expenses for performing an action (achieving the result) are important, as well as beauty and conformity to the style of the company and / or product.
The code is the part of the work that is usually associated with software development as such. It is important that the code is sufficiently optimized, concise and clear. We assign to languages selected by programmers who are tailored to the specifics of tasks in the TOR.
Testing Testing in EDISON is carried out at each stage of software development, it includes many tests on a test plan that is customized taking into account the specifics of a project at the stage of drafting a technical task. Test results are documented and available to the client in real time. Payment for the product is made only after passing all types of tests, including the client.
Documentation - a procedure that fixes the plan, process and result of software development. It includes all the initial information (TK, layouts), work plans, costs, testing, a list of tasks of the performers at each point in time, reports on the work and so on. Documentation is necessary for quick and accurate identification of errors, transparency of teamwork, as a mandatory legal part of the contract.
Schematically, creating software looks like this:
Principles of software development
An important point for a software development company is to determine the basic principles of work. Each developer has his own approach, his own values and priorities. For EDISON, these principles for development are:
Orientation to quality. We make every effort so that this is not a tattered marketing cliché, but an objective reality. Uninterrupted operation and satisfaction with the end result provide:
following state standards, best practices and methodologies for qualitative development (RUP, Agile),
the best specialists, a clear division of labor and a good motivation term + quality,
debugged and powerful product testing system,
high-quality and transparent planning and execution of tasks, the development management system and the binding technical competence,
documenting the process and outcome,
guarantees for developed products, technical support and user training,
clear and convenient system of payment for software development.
Adaptability and flexibility. In some projects there is no possibility of a clear statement of requirements at the stage of drawing up the TOR, and sometimes the client already at the software development stage needs to be changed - we understand such situations and foresee their likelihood and agree with the client on working conditions with precedent.
Examples of implemented EDISON projects
Software for microtomograph for studying materials, created by scientists of Tomsk State University
A microscopic tomograph recognizes the external and internal structure of organic and inorganic objects as large as a matchbox. The program scans an item, builds a 3D model, highlights areas of the same density.
Vivaldi Electronic Library System
The service, developed by EDISON, combines the electronic libraries of universities of the country with access to the database of the Russian State Library. With its help, students and teachers from 126 cities of Russia can get access to the most valuable and rare scientific works. ELS Vivaldi collaborates with large libraries, research centers and periodicals. Users can visit specialized reading rooms around the clock. This project implemented an easy search for the necessary literature, the possibility of printing, access to the archives of universities in the country. The service is easily incorporated into an educational institution, saving space and costs for maintaining a library of paper books.
System for control and accounting of working hours "Big Brother"
Convenient service for companies, especially those using flexible working hours for employees, allowing to monitor and control the actual employment of employees in the workplace. The system will not miss a single slob. The employer can be seen when the employee came to the workplace, when he left, left, the inaction at the computer and the time of overtime are monitored. If there is any doubt whether the person is engaged in work, from any computer you can get a screenshot of the desktop. The service is also convenient for employees of different departments: you can accurately determine which of the colleagues is now available and who, for example, has gone for lunch; You can easily control your free schedule yourself by choosing lunch time, the beginning and end of the working day. Well, the employer can draw conclusions about each hired person to improve the efficiency of the organization.
Any comments on our methodology or would you like to share your experience? We will be glad to talk in the comments, in our group on Facebook or Vkontakte .