This article deals with the importance of a specification in software development and the specifics of its preparation for eCommerce projects. Let’s start with a little explanation of what a specification is from a software engineering perspective.
What’s the use of specification
The specification allows you to fix the detailed requirements for the development, indicate the roles and responsibilities of the parties, the timing and cost of implementation. So you can clearly understand what will be implemented and when, and, in case of disagreement, you have a written confirmation of the agreements.
At first glance, it may seem that the specification is not needed and not worth the time spent on its compilation. Some developers and their customers refuse proper documentation. But this is a mistake.
What’s the difference between specification and technical assignment
We do not draw up a technical assignment (TA) since this document involves its adherence to standards (such as IEEE 29148-2011, Rational Unified Process and others), complicating and extending the process of producing the final service.
Instead of a Technical Assignment, we usually write a specification, a document in a more free form that meets internal standards for content requirements. This happens because we communicate directly with business owners. They don’t want to be overwhelmed with the technical details and complexities of the classic TA. Moreover, TA production cost is high leading to an increase of the development cost. That’s why we use specifications.Oleg, CTO at Simtech Development
What’s the difference between TA and a brief
The specification (like the TA) is a detailed description of the requirements for development, while the brief is a questionnaire. We send briefs to clients to find out the general requirements and preferences. Such questionnaires help to understand what our customers want. An example of a design brief might include questions like:
- Do you have a corporate logo and/or a brand book?
- Please, specify examples of the websites you like and the design features you’d like to repeat.
- Please, describe your design preferences:
- I’d prefer to use a ready-made theme/template
- Personalized theme/template (changes in the color palette/icons/fonts according to the corporate style)
- Unique design
- What’s prohibited in design?
The brief is not a document to fix agreements but it can precede specification to find out customer requirements and the further task preparation.
Who writes the specification and when
In fact, there is no correct answer to this question. Both the customer and the contractor can draw up a specification. Often, this is a joint work. It all depends on the specific situation and conditions.
Compiled by Customer
In this case, the contractor receives a detailed explanation of what needs to be done and, if the task is clear, indicates the cost and duration of the work. However, often the compiler does not clearly imagine from the start what to get as a result. That’s why the specification becomes too broad and difficult to understand.
To avoid mistakes, it is better to provide business requirements along with a detailed description. So the developer will understand the relationship between the task and the proposed solution. Perhaps there will be a better and cheaper option for the same task.
Compiled by Developer
The contractor who draws up the specification collects the requirements for the task, determines the purpose of the work and the benefits for the customer. Then, they proceed with an interview, either face-to-face or written, where the parties clarify their concerns and find out the rest of the requirements. Only after these steps, the specification is drawn up and agreed with the customer. This method is based on the trust of the customer to the contractor. Therefore, it is so important to choose a reliable IT agency from the very beginning. Nevertheless, with this approach, the customer also needs to be proactive as he or she only knows the specifics of the business that will need to be taken into account in the work.
The joint preparation of the specification begins with the request of the customer who voices the requirements for the contractor regarding the job to be done. The contractor, in turn, suggests a way to improve the project. The parties make changes to the final specification and agree on it. This method, like the previous one, is based on the trust of the parties and the professionalism of the contractor.
What to mention in specification
A common scenario is when the developer asks questions, clarifies details and structures information. The customer states what is required of the product.
How do we make specifications at Simtech Development
In the title part, we indicate the name of the work, the project for which the work is being performed, the date the specification was drawn up, the version of the specification, the technology stack used and its characteristics (for example, the name and version of the platform).
The main part describes the technical details: what will be done and what the project limitations are.
The third section covers how testing will take place, for which systems and browsers the modification is being developed, which domains and platform versions are involved.
The fourth section describes the way of communication with the customer. Time slots and possible channels for communication are indicated here.
The following is a discussion of how work is accepted and handed over. As a rule, this is a demonstration on a test store, followed by transfer to a live site.
In the conclusion, we indicate the terms and cost of the work.
You can learn more about the designing and drawing up a specification (with an example) by downloading a presentation.
When you don’t need a specification
It often happens that you can do without a specification. Therefore, it is most rational to start with a description of your general vision:
- What should the product do?
- Who will use it and how?
- What to include in the final product and what to exclude?
With this understanding, you turn to the contractor. Perhaps the developer will offer to refuse the specification, and use the agile approach. In this case, we first develop and release a prototype, then collect feedback, constantly supplementing the requirements based on the data collected. This method fits large projects with vague requirements, as it allows you to jointly develop a product that is most suitable for the target audience.
Here are the words of Alex, the head of the group of programmers, on the difficulties of working on a new project:
Before starting customizing a project, you should understand what needs to be done. And here there would be different situations, from an abstract business idea to a clear technical specification provided by the customer. In most cases, our customers are open to our advice on how to implement the idea better, and in some cases, project design is required. Therefore, understanding the business idea is critical for us.Alexander, a Team Lead at Simtech Development
In our company, the agile approach to development is implemented by a dedicated development team through the Design service. The team works by sprints and reports to the customer at the agreed time.