In software architecture, defining and implementing Non Functional Requirements (NFR) impact the degree of satisfaction of the stakeholders of the system. Non functional requirements determine the Quality of Service (QoS) of the system. QoS has a huge impact on the quality of the system in terms of how well the system is able to satisfy the behavior (functional requirements) of the system. To achieve the QoS, the implementation of the NFR depends on how SMART they have been defined, where SMART refers to, Specific, Measurable, Attainable, Realizable and Traceable requirements.
QoS is not only applicable for architecture but as an individual for all of us. It determines how much of quality of service we provide in what we do. Hence working harder is not enough but working SMART’er is very important. Let’s define SMART in terms of an individual’s quality of service.
- Specific - One should know what are his/her roles and responsibilities clearly. Specific also refers to Scope here. The more you deviate from the scope of work, the more confused you will be and will lead to chaos in planning, prioritizing and executing. Simply put you don’t want to be “Jack of all trades, master of none.”
- Measurable - Completing a work is one aspect. The other aspect is how effectively the work has been completed. That would require defining a quantifiable objective that can be measured in what has been done. This leads to benchmarking yourself and determining where you stand in terms of effectiveness in what you do.
- Attainable - Defining a goal for the task you are performing and making sure that it is achievable is important to confidently proceeding in performing the task. Clearly differentiate between what is possible versus what is not possible. Time, Money and Resources are the three quadrants that play a crucial role in identifying what is possible versus what is not.
- Realizable - This defines what is expected out of what you are doing. Essentially this is the end result of what is being done and what the stakeholders expect out of your work. Remember there cannot be any task or work without stakeholders. Even if you are working on something that you are going to use, you are still a stakeholder and would have expectations. I am sure you would want something best for yourself. So if the stakeholder is someone else they too would want the best outcome.
- Traceable - There is a lesson to learn in everything we do. These lessons build the experience and expertise factor. Tracing back what is done, what went right and what went wrong will result in a collection of what to do’s and what not do’s. Remember making a mistake is OK but repeating it is not OK. A mental imprint of events that affect our emotional mind is there with us throughout our life. But that may not be always the case in the tasks that we do in our career. Hence keeping a document of lessons learnt might be very handy as you move ahead. That could also become a reference for others to use without wasting time going through the same mistakes.
There are some professions where physical effort is more needed than the mental effort. These professions could be more mechanical in nature. In such environments working harder may be sufficient. It is not the same case in software industry where mental effort plays a major role than (almost no) physical effort. While working harder is important, it is just not enough to be successful and to grow. What is needed is to work SMART. So don’t just work hard but work SMART.
This post is part of “Foundations” series of posts.