Interested in opinions on the topic on both sides of the barricades. Those who provide IT services and those who by the nature of their activities interact with contractors. Immediately please note that everything is written from the interests of consumers of IT services.
All of the following was written from the point of view of companies whose activities are not related to information technology and IT is considered as a tool to increase the efficiency of the core business. On the example of an information system written from scratch or strongly customized for company processes.
It is understood that the company has grown to the realization of the fact - one bearded man in a T-shirt with the words "Admin does not drink chocolate" cannot deal with all of the computers and information technologies. Catching up on everything from refilling printer cartridges to server administration and writing code in several programming languages.
Any computer application is a product. Like paper. It is needed in every office, but no one creates a paper production plant at every office. They just buy it. The software product must also be purchased from those who create it on a professional basis.
')
The option of hiring one or two people who write everything should not be considered at all. Because in this situation, hardly anyone will be able to keep a good record. And if these people leave, it will be very difficult to figure out how what they created works. And if we talk about the system on which the company's work processes are built, then this problem becomes business and financially critical.
It is also not correct to hire an organization providing IT consulting services to transfer a full IT support business to it.
Suppose the company is lucky, and as a contractor will choose a professional team. Then they will really do everything - they will collect the requirements, analyze them, write and implement the product. Putting the message of business in dependence on them. After all, except for them, no one will know how it all works. Consequently, support is needed on an ongoing basis. For the price they offer.
Just the cost of support, no one will be limited. Prices for product development are much higher. And to make it so that your business always requires the development and refinement of their product for experienced people is not difficult. But then hired professionals, do not forget.
And yet, in this scenario, they get access to a significant part of the company's internal confidential information. Yes, of course, a non-disclosure agreement will be signed. But I think not everyone will agree to entrust their trade secret to an outside organization. Even with a nondisclosure agreement.
They are a separate organization. And as in any organization they have one goal - to make money. Just business and nothing more.
In my opinion - the right to separate the development process. Where the analysis and setting of tasks is formed within the organization, and the development itself is transferred to the contractor.
To organize normal work, both with the contractor and within the organization, you need to create a team. In the simplest case, I see 4 roles in this team. Plus the contractor as one role.
Manager (system owner)What is he doingIt determines the development strategy, in which direction the system is developing, what the enterprise will need from this system in a year, maybe two. Approves budgets. Responsible for working with the contractor as a whole. Approves the tasks to the contractor. Sets task priority.
What doesn'tHe is not the head of the company (the head should delegate such tasks to his subordinates as much as possible, being engaged in targeted issues of the target business). Perhaps the deputy or head of one of the functions. But not IT. Does not deal with how to develop the system. Those. sets the task - you need to increase the reliability of data storage. Without affecting the question of how to actually increase.
SpecificationsA person who fully understands the company's main business. He has extensive experience in various functions of the company. Having a certain credibility and political weight in the company. Administratively it does not relate to the structure of IT and is not a specialist in IT technologies.
AnalystWhat is he doingDescribes the current processes in the company in the form of internal documents.
Develops and offers management optimization of existing processes and the introduction of new ones. For example, now it takes 2 hours for a seller to draw up a contract with a customer. In the course of the analysis, it was established that, if the automatic compilation and printing were implemented, then it would take 2 minutes to prepare the contract.
Turns the spatial wishes of internal customers into a specific document - a business requirement. Responsible for the compliance of business requirements with the initial wishes of customers.
Receives from the contractor proposals for the introduction of new solutions, products and improvements. Analyzes how much they are needed by the company. If necessary, offers the company management their implementation.
What doesn'tDoes not take management decisions, only offers them. Does not set priorities for the tasks for the contractor. In general, he understands IT and therefore does not pass on absolutely unrealizable ideas to the architect. In negotiations with the contractor, he has no right to his own opinion - he voices only what is agreed with the management.
SpecificationsVery well versed in enterprise processes. He can suggest how to optimize the work of a department or an individual employee, even if the employee himself cannot say this. Superficially versed in IT technologies. It is important that the analyst be his, and not attracted by the contractor. Otherwise it is fraught with development for the sake of making money by the contractor.
ArchitectWhat is he doingIf the manager determines the strategy in which direction the system is developing, the architect determines how it develops. Those. technical side of development strategy. Answers questions such as how many servers you need to attract to ensure the work of the system while increasing the workload, which will create 20 new employees, which the company plans to attract next year.
Writes technical specifications for business requirements provided by the analyst and transfers them to the contractor. Responsible for compliance with technical requirements business requirements.
Receives from the contractor a work plan for those. task with the assessment of labor costs. Analyzes the provided plan for the overstatement of labor costs. If necessary, agrees with the contractor to make changes. Approves the work plan before it is signed by the manager.
Checks the package provided by the contractor for compliance with the technical task. Takes part in testing. Decides on the acceptance of work and the transfer of changes to the main environment.
In negotiations with the contractor should have its position on how it will be done. But the questions what to do determines the manager.
What doesn'tDoes not make independent improvements of the system. It does not correct any defects or inconsistencies found during the testing process. assignment. Only notifies the contractor about them. Does not administer or support the application.
SpecificationsMust have absolute knowledge of the system. As well as deep knowledge of both technology and IT processes in general. To be able to negotiate, competently argue their point of view - the final price of work and the quality of the product obtained depend on it.
AdministratorWhat is he doingWorks with users. Start and delete from the system, reset passwords. Advise on the type of thing you need to click to open this form or why that button is inactive.
In a timely manner responds to system failures and errors. Must be able to restart services and restart the server. Perform other template actions to maintain or restore system health. In the event of accidents that he is unable to solve, correctly describe the problem and transfer it to the contractor under the support agreement.
Install packages received from the contractor to the test environment. Take part in acceptance testing of packages on a test environment. Install packages on the main environment after acceptance of work.
Makes a passport, a contract for the provision of services to users and other internal documents on the system.
All actions that can be performed by the administrator should be described in the "Administrator's Guide", which is the system supplier and maintains its relevance after system updates and improvements.
What doesn'tDoes not make its own modifications or changes to the system.
SpecificationsIn fact, his work is a complete routine. It does not require special knowledge. Must perform a couple of dozen operations. Most of which should be described in the Administrator’s Guide. But attentiveness, stress tolerance and responsibility are required.
Contractor (it is clear that on the part of the contractor a whole team is also working, but from the point of view of the customer they are one)
What is he doingReceives and analyzes the technical task from the architect. Provides the architect with a work plan indicating the labor costs of their managers, analysts, programmers, testers. After coordination and clarification of the plan, he receives a work order signed by the manager and payment for the work of analysts who have created this plan. Performs work on an agreed plan. Provides the administrator with a package with changes and a modified version of the user manual. After testing and signing the certificate of acceptance of work receives payment.
Based on its experience, it offers solutions to the company's analytics (and only analytics).
What doesn'tNot engaged in the collection of requirements and analysis of processes in the company. Any analysis of the processes on the part of the contractor is fraught with decisions that are not so much needed by the company, but must bring revenue to the contractor.
Makes no offers on the system to anyone other than an analyst (on the business side) or an architect (on the technical side). Attempts to "sell" any decision to accountants, marketing, sales, or to someone else should be stopped with public punishment of those responsible.
Does not have access to the main environment. For a test environment, it is possible, but without the right to make changes. All development should be carried out on a development environment.
SpecificationsThe role of the contractor should be reduced to proposing solutions based on their experience with the company’s analyst and writing the code according to the terms of reference received from the architect.
A few words about contractsThere must be two independent contracts between the client company and the contractor.
Agreement of support .
Describes the deadlines for providing decisions on critical accidents that cannot be resolved by the own administrator and fines for violation of these deadlines. Support agreement is cheaper. They can partially compensate for losses incurred due to a malfunction of the information system (if it comes to that). Therefore, it is desirable that it always be relevant and timely renegotiated. Together with its own administrator, it is a tool to protect business from IT failures. If your own administrator leaves, you can temporarily shift the administration tasks to the contractor. In case of problems with the renewal of the contract of support, there is an own administrator who will assume full support of the system until the contract is renewed for the next period. In a normal situation, there must be both your administrator and a support agreement.
Agreement on the development of the system .
The framework agreement, which describes the procedure for the transfer of tasks by the client to the contractor, the procedure for acceptance of completed work, payments, and the resolution of controversial issues. The prices for the services of the contractor should also be stated here. For example, the cost per unit time of each resource of the contractor (analyst, programmer, etc.). Even if it is absent, it does not affect the current work of the company. Providing business independence from the contractor. Yes, there will be no new functions, but at least all the current ones will work. In extreme cases, it will be possible to announce a tender for the development of the system and transfer the development to another organization. There is a system documentation in the company, an architect with his knowledge too. But at the very least, the same organization should be engaged in support and development.