#Introduction
As we all know Non-functional requirements are what drives the design of a software architecture. The problem with Non-functional requirements is that they are most often implicit, vague and forgotten at the start of a new software project.
How can you as a software architect make Non-functional requirements more explicit in your organization?
This was the question I struggled with a while ago in my organization. I wanted to make the organization (sales, marketing, development, research) more aware of Non-functional requirements. I also wanted to make the determination of the Non-functional requirements explicit. Naturally, this process was triggered due to the fact that some products that we developed struggled with some Non-functional requirements.
#Change
I think that with most changes, they work best if you take small steps. My first goal was to make people more aware of the importance of Non-functional requirements. The second step was to make determination of the Non-functional requirements part of the development process. I realized the first goal by giving a presentation about Non-functional requirements. Part of this presentation was a workshop in which the participants were asked to find the most important Non-functional requirements of a project that we at the time were working on. We showed QUINT which could serve as a checklist which Non-functional attributes can be defined. If you haven't heard or used QUINT you really should take a look at the quality attributes that QUINT defines.
#Presentation
Below you can see the slide show through slide share. At the bottom of the post a link can be found were the original presentation can be downloaded in power-point format. Feel free to use the presentation if you think your organization should also focus more on Non-functional requirements. I would like to hear about you’re experiences through the contact form or comments.
My presentation was a success, people were enthusiastic and all thought that the organization should focus on making Non-functional requirements more explicit.