Choosing the right website contractor is essential, but at the same time it is just the beginning of a process, the culmination of which will be a fully functional solution. To start working together, parties must sign an implementation contract and make a number of arrangements. However, in the case of complex websites or applications there is one more important element. The key annex to the contract should be a functional specification.
What is functional specification?
Functional specification is a reflection of the application project; it determines its implementation and future shape. Its author or authors can be called software developers. It is very important to entrust the creation of functional specification to a person or a team with great experience. The document created by them will be an instruction, a guide and a kind of plan for the project manager, people responsible for the interface design, software developers and testers of the developed application.
Functional specification is not a document that cannot be modified during the construction of the website. Software development is a creative process. With time, there are new ideas, changes required by the customer or improvements arising. They should be added to the specification in the place of the initial assumptions or as additional elements and put into practice. Their appearance does not change the direction of actions, but is a correction which has a potential to improve the final effect of work. By updating the specification in progress, a technical documentation is created that reflects the process of application development. After completion of the project such specification will become useful for development activities on the website or it can be even used as a source material for creating the next application.
Why should functional specification be created?
Standard websites (corporate websites, shops etc.), generally provide common functionalities. Therefore, there is no need to describe them in detail. It is enough to create a list of functionalities – most of them are supported by already made solutions (CMS). In the case of a web application the vast majority of functionalities need to be programmed from scratch. To do this effectively you need to plan the process and diligently prepare a detailed specification. This will allow for achieving effect consistent with the assumptions and expectations of the customer.
The unique nature of functionalities requires their accurate description. The information contained in used for this purpose functional specification should be clearly stated and understandable for people responsible for the project development. Key aspects that should be closely described are technical architecture of internet website, database structure, individual processes and functionalities, views and administration panel.
What should functional specification of web application include?
There is no universal scheme of creating a functional specification for web application. There are different approaches to writing it. Much depends on the experience of people involved in the project, their knowledge, skills, way of thinking and action, and finally from the application itself. Structure of functional specification proposed by us is based on 5 key elements, which can be supplemented by further elements, if the situation so requires.
The first element is the genesis of the project. At the beginning of specification it is good to describe the application in general – to define what its purpose is, to determine the basic functionalities and aims. Besides technical issues, at this point it is also worth to refer to the purposes for execution of which the application is helpful. All of the information will be instructions for the executive team, which on their basis can propose new ideas that will help in achieving the aims.
Another challenging element to describe is the application database. In functional specification not only a list of tables in database should be presented, but also the structure of each record of the tables should be defined. In practice it means a listing of table fields. It is also important to determine the relation between fields. Optimal database design is crucial for application performance.
Furthermore, the specification should include a functional Front-End description (part of the application visible to users), and descriptions of each functionalities and processes. In this case, not without significance are the order of functionalities (from the most frequently executed to the most rarely executed and determination of the sequence of steps in processes) and hierarchy (from general to specific). In each step of all functionalities there has to be a detailed description of different views and interface elements together with their way of function. In addition to functions and procedures that are started by users, all of the periodic functionalities i.e. functionalities executed by specific dates, hours or at defined time intervals, have to be described.
Functional specification complementing the issues related to Back-End, which is a list and descriptions of the functionalities of administrative panel – elements invisible to users.
At the end of the specification there should be a list of views included (also called screens) that occur in the descriptions of the functionalities mentioned in the earlier parts of the document. This statement is prepared for people who will design and implement an interface (UX Designer, Graphic Designer, front-end Developer).
The functional specification is a document the creation of which should be given much attention. Because of its fundamental nature for the application development process, the specification must be created at the highest possible level, and that takes time and incurs certain – often not inconsiderable – costs. In the case of less complicated applications, operating without the specification usually ends up with a waste of time and money. Sometimes, planned application is never finished. When a website with a high complexity level is created, operation without specification is practically impossible. Similar situation occurs when the preparation of the document in question is entrusted to people who do not have the appropriate qualifications.
In order to help you with working on the web application project, we enclose a sample template containing descriptions of sample tables in the database and functionalities. The document is based on the aforementioned approach.
To download the file please share this post: