Generally. we can think of a concept as a blueprint that helps realize business significance. A concept contains the details of the people involved and their contribution towards the stated objective of realizing business value. A simple criterion of knowing that a concept is clear is checking if it can be understood without any difficulties by both development and operations. A key component of a concept is a requirement document which documents both the functional and non-functional requirements of a software project.
Interest among operations is on the non-functional aspects of the software. The non-functional aspects can be categorized in different ways as listed below.
Requirements related to usability are concerned with the ease of using the system.
Requirements related to portability ensure the system is not tied to one platform
Requirements related to reliability are concerned with ensuring the system is available when it needs to be used
Requirements related to performance are concerned with the numbers the system can handle and ability of the system to cope with additional requirements
Requirements related to supportability are concerned with ensuring the system is maintained in an easy way.
When thinking about non-functional requirements of a system you can look at them as restrictions that you need to impose. For example, when thinking about performance you think about the acceptable time required for a query to run and return its results. Portability will require that the system can be used on different platforms. Capacity will be concerned with the amount of data the system needs to handle. for instance 500 GB of data will be comfortably handled by the system. Maintainability places a restriction on the period all unit tests need to be conducted like for 48 hours.
The best approach to use in gathering non-functional requirements is to use a user voice form. A user voice form gives clear metrics on what the user expects. For example a user may express a requirement as needing a query to return its result within a few seconds to avoid disruption of the train of thought. The three key aspects that need to be expressed in a requirement are the actor, the objective and the interaction with the system. It is good practice to establish a criterion that will be used to accept or reject the adequacy of user requirements. All user requirements need to be availed to team members to foster a collaborative approach to incorporating the requirements in a system. Simple tools such as Microsoft Word or a dedicated project tracking tool such as JIRA can be used.
Despite the shift to modern approaches such as Agile, there are still cases of success and failure. This situation is largely as a result of conflicts that arise between different teams. The first cause of conflict is the exclusion of some teams due to chain of rationality which leads to inadequacy in the definition and understanding of requirements. The second cause of conflict is unethical behavior resulting from power relations among team members.
When coming up with concepts there are times when the concepts are deficient in different ways. Deficiencies can occur as a result of error, incompleteness or inclusion of impossible nonfunctional requirements. Technical causes include errors in calculations and race conditions that arise in multithreaded systems. Conceptual deficiencies can be as a result of an accident or a deliberate action. Deliberate causes are as a result of unethical behavior by team members. Complexity and change in operating environment are some of the causes of accidental deficiencies. The causes of deficits in concept due to the environment are as a result of the following.
Management lacks complete awareness of the consequences of its decisions. This is so because feature requests are not very clear to the management.
The second cause which is closely related to the first is the lack of complete information by the management. A team may come up with an idea which ends up as being unacceptable to management.
The third cause is management lacks organization which spreads in the organization
For a successful shift to a DevOps approach, the involvement and support of management is critical.
Another cause of concept deficits is unethical behavior of some team members. This occurs when behavior deviates from what is generally accepted by the team. Competition for power among operations, development and management leads to risk of unethical behavior among team members. Ethical risks are costly to the company therefore measures need to be put in place to discourage them from happening. The best solution to resolving ethical risks is creating a transparent environment. Team members involved in unethical behavior avoid detection by failing to use objective metrics and logs. By enforcing transparency, it is easy to identify unethical behavior and minimize risks posed to the organization.
To minimize occurrence of deficiency in concepts a unified approach, where development and operations collaborate in the definition of concepts is advisable. A unified approach reduces the risk of occurrence and puts in place a mechanism for early detection of deficits.
Some approaches that can be used to improve the quality of concepts are listed below.
Fostering transparency – this encourages the use of several steps to come up with a concept. Previous steps are rigorously evaluated before the next step. For traceability to happen there should be proper documentation.
Properly assessing non-functional requirements – there is no single approach available to cover testing of requirements therefore several strategies are needed. Non-functional requirements need to be clearly defined because of the prohibitive costs and infeasibility associated with incorporating them in later stages. One approach to test nonfunctional requirements is to write tests if they are applicable. Other techniques are monitoring, infrastructure testing and creating links in project documentation.
Bring into line management and company goals – this will ensure all actions of team members are towards achieving the common objective
In this tutorial, we introduced concepts and noted they help in the realization of business value. We introduced nonfunctional requirements and gave examples of how they are constraints in a project. We identified the possible causes of deficits in concepts and discussed ways in which quality of concepts can be improved.