Modern IT companies usually provide the following services for the integrated development of industry solutions:
- Development of state information systems;
- Development for industrial automation of enterprises;
- Development of software for banks and financial organizations;
- Automation of construction processes.
The companies develop software in and support the state import substitution program. Services for the creation and completion of open source projects are provided. Software import substitution is supported in
for small, medium and large businesses. However, this does not prevent us from working with customers from both near and far abroad.
- Business software development:
- Development and implementation of business management systems;
- Implementation of automated systems for collecting and generating reports;
- Development of CRM-systems for the banking and commercial sector;
- Creation of workstations for the head, user, manager, etc.;
- Development of mobile applications for business;
- Integration of business applications.
- Development of specialized software:
- APCS systems;
- Solutions for industrial automation;
- Programming of industrial controllers;
- Industrial software development;
- Development of drivers for Windows and Linux applications;
- Development of SharePoint applications: sites, portals, integration;
- Banking and financial software: credit pipeline, debt collection, securities accounting;
- Development of server applications.
- Databases and knowledge bases:
Professional Software Development
Over the years of its existence, the Moscow-based software development company Step integrator has implemented and implemented dozens of projects created using technology stacks:
- Java, Java EE, Spring Framework, Apache Tomcat, Hibernate;
- .NET Framework, C#, ASP.Net, IIS, DevExpress, XAF;
- C/C++, Qt
- MS SQL;
In addition to the specialized development of industry solutions, we solve typical tasks that are similar for all clients. Order programming if you need:
- Development of systems for the formation of consolidated reporting;
- Implementation of portal solutions based on Microsoft Sharepoint;
- Development of automated user workstations;
- Development of information panels for video walls (videowall) in information and situational centers or dispatching and monitoring centers;
- Integration of a computer with telephony for automatic calls to customers;
- Integration of telephony with a computer to display detailed information about the subscriber on the monitor during an incoming call;
- Development of monitoring systems;
Software development organization
Often software development firms are faced with the fact that the result of the work is at odds with the expectations of the customer. Practice shows that in the process of project implementation, many small details come up, which, due to their insignificance, were omitted when writing the terms of reference. Such insignificant details accumulate and turn into a significant shift in terms or an increase in the total amount of work. As a result, something has to be sacrificed.
The organization of the software development process at Step integrator allows you to minimize the percentage of unexpected project changes. The entire project is divided into two-week iterations. For each iteration, at least two demonstrations of the results to the customer are carried out. At each demonstration, the results are coordinated and further work is planned. This allows the customer to always be aware of the project.
The development environment consists of four circuits and three functional servers. Development servers are designed to automate the software development process and include:
- Server Document Management based on Microsoft SharePoint: Centralized document repository and knowledge base based on wiki pages.
- Version Control and release build server based on SVN: designed to store source code and regularly build distributions.
- Task Management server based on Redmine: setting tasks for development, managing requirements and fixing errors.
All development servers are located in the internal security perimeter and have an increased level of protection. Access to them is limited and is possible only through secure communication channels using encryption.
- Development outline. Located within the inner security perimeter. Programmers work here, each of the team creates their own module for the software and publishes it on the version control server. The version control server automatically builds the code every night and publishes it to the automated testing and debugging loop.
- Circuit of automated testing and debugging. Located within the inner security perimeter. Automated testing specialists work in this circuit. They perform functional and load testing of each functional block of the software. After successful completion of block testing, complex testing of the system is carried out. If the tests pass successfully, the assembly is marked as working. In case of unsuccessful testing, a list of errors is entered into the task management system.
- Software acceptance loop. Located in the outer security perimeter. The external security perimeter can be located both on the Step integrator servers and on the customer’s servers. The tested software is placed in the acceptance loop. All authorized users from the side of the customer and the contractor have access to it. Here the software for demonstration of the received results to the customer is placed. Pilot operation of the system is also carried out here, after the successful completion of which the software is migrated to the customer’s production servers.
- Demonstration outline. Located in an external security perimeter or demilitarized zone (DMZ), including the possibility of free access from the Internet. As the name implies, the demo loop publishes a stable version of the software in order to demonstrate the operation of its functionality. As a rule, it is filled with test or public data.
All work performed is subject to warranty and post-warranty support. To support the embedded software, the forces of our own technical support service for users are used.
Software development cost
Estimation of the cost of software is based on the labor intensity required for its implementation. There are many methods for estimating the labor intensity of custom software development. At the moment, all companies that are engaged in professional custom software development have an accumulated knowledge base on the labor intensity of typical work.
So, when they receive an order, they decompose it into a set of typical jobs, evaluate the labor intensity of each typical job, and summarize them together. For example, the project is average and we got 500 hours of programmer’s work.
Working together with the programmer:
- Analyst – Clarification of functional requirements and setting goals;
- Architect – Development of design solutions and creation of structures;
- Project Manager – Manage the timing and scope of the project;
- Tester – Software testing;
- Technical Writer – Project Documentation;
Even if one person works on the project, he still has to perform all the listed work on setting tasks, testing, documenting, etc. It will take him as much time as he spends on programming. That is, in addition to 500 hours for the development of program code, we add another 500 hours for the work of the project team. In total, we get 1000 hours.
The next step is to assess the complexity of the project. Not the simplest risk assessment methods are used here, but, to simplify, according to software development recommendations:
- Typical project – exceeding the deadlines will be no more than 30%;
- Innovative – exceeding the deadlines can be up to 400%.
The 400% figure is multiplying the original planned development time by 4, and implies that the team has no idea how to do the project. That is, to create innovative software, the team will follow four approaches:
- On the first try, she will gain experience, but not the result.
- With the second, she will get the result, but not the one she would like.
- On the third attempt, she will get the result that she wanted, but not the one that the customer wanted.
- From the fourth attempt, the result will satisfy everyone.