From time to time, we come across discussions on whether written technical requirements are necessary for a software development project.
Sometimes, we hear from our clients’ opinion that the preparation of this document can be safely omitted and that the development team can work on the project concept and achieve the same result.
However, that is not the case, and a proper specification is one of the pre-requisites of a successful project.
Think about it regarding a construction project. The owner may have a very detailed vision of what they want their house to look like. However, that does not mean that they can already hire construction workers and start buying the materials.
No construction will start without a detailed construction plan prepared by architects, engineers, and designers.
They translate the owners’ ideas into units of area and weight, taking into account the strength of materials, the soil properties, the level of the plot, the intensity of light, as well as the habits of the family and their personal preferences as to the future house.
The construction plan is a detailed list of all works to be done to erect and design the house, including the quality, quantity and brand names of all materials.
Only after the construction plan is created and approved both by the technical experts and the customer, the construction can begin.
Software development is no different. With so many technologies currently on the market, and the abundance of available devices, browsers, and operating systems, it is an absolute must to prepare a detailed plan before the project can begin.
Diligently prepared technical requirements ensure that the final product carries the same value that was initially conceived.
The methodology of preparing the technical requirements
The technical requirements are made in accordance with the project concept.
Usually, the project concept is loosely based on the client’s vision of the project and includes the goals and purposes of the product to be built, its high-level design, the suggested technology stack, and the rough estimation.
The project concept is created by the development company on the basis of the client’s request and the discussion of the project specifics.
When the project concept is completed and approved by the client, it becomes the basis for the technical requirements.
The document contains a formalized description of the entire project as well as of each separate module that needs to be developed.
It is a detailed list of all features and functions with the required technologies (can you see the similarity to the construction plan here?).
Moreover, the technical requirements also serve as the basis for the project acceptance by the client, a kind of a checklist to which the delivered scope is compared.
Only when the technical requirements are approved by the client, the development begins.
The content of technical requirements
Since all software development projects are different, it is not easy to lay down a universal structure of technical requirements. The specifics of the project and the product that should be delivered influence the content of the corresponding specification.
However, we can say that certain common components should be included in technical requirements for a particular kind of project.
For example, there must always be wireframes – low-fidelity images representing all UI screens and showing the user interaction with various UI elements. Wireframes are used to check and validate the user experience and are a mandatory component of any technical requirements.
For web application development projects, the technical requirements usually contain the BPMN diagram showing the business process and the interaction between its participants.
Also, for web applications, there must be the system architecture description, the approved technology stack and the list of necessary functional components with their business logic.
At the same time, for each particular project, the technical requirements should also mention the components based on a specific technology used in the project, such as augmented reality or virtual reality.
Use of such technologies may significantly influence the project cost, and time required to complete it, thus, such components must always be shown in the technical requirements separately.
Who prepares the technical requirements
Depending on the project type, different team members may take part in the preparation of the specification.
For a web application development project, the specification is put together by the following team:
- Project Manager, coordinating the whole project scope
- Business Analyst, defining the business strategy and business goals of the project
- Architect or Team Lead, defining the structural components of the project
- UX/UI Designer, creating the wireframes
- Technical Writer, documenting the project architecture, technology stack and the list of functional components
- QA Engineer, planning the project testing
Sometimes, the team may also include a Senior Back-End or Front-End Developer who is responsible for certain specific research.
For other types of projects, the team creating the technical requirements may include other members or be larger or smaller.
For example, if the project scope includes augmented reality or virtual reality components, the team invites the Art Lead who is responsible for the team of 2D/3D designers and animators.
Also, for such projects, the team may be enhanced with a game designer or a technical artist who plan the corresponding project components.
Terms of technical requirements preparation
Planning a complete project and creating the technical requirements for it may take up to two months, as it is a pervasive work involving a lot of people and requiring thorough analysis.
However, with the Agile methodology that we adopt as our working style, the time needed to prepare the initial technical requirements may be reduced to two weeks, as we will start with creating the technical requirements for the first sprint only.
When the document for the first sprint is completed and approved by the client, the development team starts working, while the project planning team begins the preparation of the specification for the second sprint, and so on.
We include the technical requirements preparation in our bill as a separate item, as it involves considerable work by a whole team of experts.
It may happen that, upon receiving the document from us, the client decides not to go on with the project. In this case, the technical requirements remain with the client, anyway, and can be used in other projects.
At the same time, this service is payable to Anansi according to the number of hours it took to create.
If you need any additional information on the methodology or best practices of project planning and specification preparation, contact us, and we’ll be happy to discuss it with you.Back to Playbook