How to gather infrastructure requirements to meet deadlines and budget?
The ultimate performance of your store depends on how carefully and accurately you collect and describe the IT-requirements. Today, let’s examine how to write requirements for infrastructure to meet deadlines and estimated budgets.
Any online store or a marketplace is a complex combination of core software and plugins, accounting services, data storage and backup systems, and information security solutions. The multicomponent nature of eCommerce projects imposes specific requirements on the IT infrastructure: fault tolerance and uptime close to 100%, quick page load speed, easy scaling, and advanced information security.
What are the infrastructure requirements?
In fact, this is a list of the most important information about the project, its components and regular activities associated with infrastructure. During the process of collecting requirements you must agree with your team on the following questions:
1/ Why do you change the infrastructure?
Increase the reliability of the system, boost the bandwidth capacity, scale the maximum performance or introduce a staging environment, initiate CI/CD processes, etc.
2/ What changes do you plan?
Move to a new infrastructure, launch an application, optimize the current system, prepare Terraform modules, change deployment pipelines, develop S3 integrations, etc.
3/ Milestones and deadlines by which the project must be completed
Be very specific if you have a strict deadline, namely, launch the complete project in 2 months or demonstrate the output to investors every 2 weeks.
4/ Planned metrics and criteria of success
Product page download time not exceeding XXX seconds, maximum number of simultaneous visitors on site is XXX users, etc.
5/ SLA
Service Level Agreement (SLA) regulates all the main measured indicators and their maximum allowable values. It also describes the responsibilities of parties.
6/ Assesses to accounts
Preferably some accounts should be with full access, so that MSP can create the necessary resources themselves.
7/ Required software
What software needs to be installed in the system, list of current software.
8/ Scheme of solution and final results
Briefly describe your vision of the result of the work. For example, like this: an application with a web client, with a web interface, etc. It is easy to update, easy to maintain.
Draw a scheme of system components in order to detect bottlenecks at start of the project.
Why is it important to be specific and clear about IT requirements?
A well-prepared document allows you to manage expectations and more accurately estimate the scope of work.
You will protect yourself from time and cost increases that are inevitable without a specification.
At last, you will have a documented agreement on the quality of the final result.
Who makes the requirements?
Basically, there are three options. You can 1) draw up requirements on your own before addressing a potential contractor, 2) hire a 3rd-party agency or 3) delegate the whole process to your Managed Service Provider (MSP) as part of the contract.
If you decide to gather requirements on your own, make sure you involve management together with full-time DevOps specialists and developers. Why management and not just engineers? Any work with the infrastructure solves a certain business problem.
In case with a 3rd-party agency or MSP you must appoint a project manager responsible for working with the system, and specialists with a deep understanding of the infrastructure. Choose an MSP who deals with eCommerce projects, in this case you will get a solution proven on hundreds of working online stores. This allows you to save time and money by directing the freed up resources to the development of the core business, rather than network design.
Briefly, the flow of the process looks like this. Service managers process information received from the sales department, collect context and establish contact with the client. Architects, SysOps and SRE engineers get acquainted with the task to collect the missing information from the customer. When a sufficient amount of data has been collected, the MSP writes the IT-requirements and agrees with the client.
The most common reason is that the customer missed some important points, exaggerated or underestimated the traffic and load on the system or kept silent about something. Let’s speak in detail about each case.
Case #1
One of our clients was going to launch an online store and planned to build a sophisticated infrastructure in advance for future growth. At the stage of negotiation the customer did not formulate a clear deadline. And despite the fact that the technical requirements were described in great detail, it turned out that it was simply impossible to finish work in time. Instead, we suggest the client launch on our managed hosting solution. And so he did to save the start of the project before Christmas sales.
Case #2
Another client did not warn that he lacked competencies in building CI/CD processes and there was no in-house specialist who could write pipelines for internal services. We had to suspend the implementation of the infrastructure solution in order to consult the customer. This increased the time and cost of the project.
Case #3
This is a very memorable case for us. Our client complained about slow servers and low fault tolerance. He addressed us to increase the capacity of servers and update the PHP version. At the start of the project we investigated the current CMS and found out that the client never updated his CMS since the purchase and installed a great number of conflicting plugins. We recommended updating the CMS and checking with the developer the 3rd party plugins compatibility before describing IT-requirements.
Summing up
Requirements are the basis for ideal infrastructure design. Therefore, it is better to make them detailed and write in clear words. There are important points in the requirements that it is better not to skip.
It’s true that infrastructure work is an adventure and not always fun. If you have a task to build the infrastructure from scratch, optimize the system, move to a new infrastructure or microservices, feel free to contact us. We will help you formulate the requirements correctly to meet the budget and deadlines and will tell you if something is missing on start.
Our IT engineers have sufficient competencies to create a highly scalable and flexible IT infrastructure that will not hang on you as a heavy burden that requires constant investment, but, on the contrary, will quickly grow with your business due to the space foreseen at the design stage for growth.