Dominic, a software developer in Mannheim, Germany describes his work.
All IT projects need system requirements from the customer. System requirements describe the functions of a system, in other words, what the computer programme is supposed to do in a machine or application.
Before I can start with my work, I need all the relevant system requirements from the customer. So, I do what the customer wants me to do and not what I want to do or think I should do. My work is defined by the customer, he pays for this. He does not pay me for things he does not want.
The customer’s system requirements should be given to me in writing. That can be a Word or Excel document or a ticketing system such as “redmine”, “polarion” or something similar. It is comparable to a recipe. If I have a written and approved text, it becomes the defined standard for me to do my work efficiently.
When I receive the complete system requirements, which have also been approved by the customer, I can start my work.
The first step is to read the system requirements in order to get an overview of all the tasks I have to do. The second phase is the conceptional work. Here, I create a software design with the components I need. A customer wants that all his system requirements should be implemented in the software.
As an experienced software developer, who has an overview over the project, I define software requirements. Software requirements are tasks which the software should fulfil. The defined task the customer wants the software to perform should be translated into programming code. I write the code so that the equipment does what the customer wants it to do.
I categorize the software requirements into three categories: mandatory, optional and nice to have (features). I start working with the mandatory categories. Next, I include optional categories and if there is enough money in the budget, I suggest some “nice to have” options.
However, my description here is easy in theory, but incredibly complicated in reality.