-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Sustainability NFRs blog post and new author, Nick Barber #203
base: gh-pages
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great read. Made a few comments but nothing major 👍
* Service A should be built with adaptability in mind such that we could roll out into a new market in 4 weeks. | ||
|
||
### Why aren't sustainability NFRs prioritised today | ||
Traditionally carbon emissions and environmental impact have not been prioritised as NFRs and there's a few possible reasons for this. One could be that the costs are generally someone else’s problem in the sense that we don’t personally suffer the effects of our service’s emissions. Contrast with the case where your API is responding too slowly, and the engineering team will get a callout. Over time we expect development teams to face more pressure to keep emissions as low as possible as is now happening with cloud costs and the rise of FinOps. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needed to Google FinOps - might be worth a link
### Why aren't sustainability NFRs prioritised today | ||
Traditionally carbon emissions and environmental impact have not been prioritised as NFRs and there's a few possible reasons for this. One could be that the costs are generally someone else’s problem in the sense that we don’t personally suffer the effects of our service’s emissions. Contrast with the case where your API is responding too slowly, and the engineering team will get a callout. Over time we expect development teams to face more pressure to keep emissions as low as possible as is now happening with cloud costs and the rise of FinOps. | ||
|
||
Another reason may be that setting sustainability NFRs isn't simple. In short, it's hard to say in advance that software service A should generate X emissions per month, because every application is slightly different and has different usage patterns. It’s not as simple as something like availability with a set of standard achievable values like (99%, 99.5%, 99.9%, ….) that is well understood. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bit of a nitpick - I think as you are referring to values (plural), it should be
...that are well understood.
|
||
Another reason may be that setting sustainability NFRs isn't simple. In short, it's hard to say in advance that software service A should generate X emissions per month, because every application is slightly different and has different usage patterns. It’s not as simple as something like availability with a set of standard achievable values like (99%, 99.5%, 99.9%, ….) that is well understood. | ||
|
||
Like cost, carbon emissions will very much depend on other NFRs like performance and availability. There is a mentality where we set those other NFRs as independent variables and a cost, financial or carbon, results as a dependent variable. We need to move to a mentality where carbon is weighed up independently against all the other NFRs. If we’re to deliver truly sustainable software solutions, we need to incorporate low carbon and sustainability attributes into the same conversations and processes where we consider performance, security, and usability. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe just me but I had to read this a couple of times to understand it, suggest:
There is often a mentality where we set those other NFRs as independent variables and the cost, either financial or carbon, become dependent on them.
|
||
<img alt="Diagram of overlapping sustainability goals with economically viable, sustainable e.g. managed tech debt and then green sustainability including water and carbon" src="{{ site.github.url }}/nbarber/assets/sustainability_nfrs/sustainabilty_development_goals.jpg" title="" style="display: block; margin: 0 auto; padding: 1rem 0;" /> | ||
|
||
Collaboration between all stakeholders is crucial for establishing sustainability NFRs. It’s key this occurs pragmatically considering business realities alongside environmental ideals. No single group has the full picture - it requires understanding differing motivations and constraints to find common ground. Joint ownership of priorities allows the sustainability NFRs to be set ambitiously but realistically. Teams can then work together, confident that targets reflect both ethical ideals and practical limitations. Consistent collaboration ensures priorities dynamically adapt as capabilities evolve. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
might be worth changing the dash to a comma here:
...full picture - it requires understan
|
||
Collaboration between all stakeholders is crucial for establishing sustainability NFRs. It’s key this occurs pragmatically considering business realities alongside environmental ideals. No single group has the full picture - it requires understanding differing motivations and constraints to find common ground. Joint ownership of priorities allows the sustainability NFRs to be set ambitiously but realistically. Teams can then work together, confident that targets reflect both ethical ideals and practical limitations. Consistent collaboration ensures priorities dynamically adapt as capabilities evolve. | ||
|
||
In future blog posts, we'll discuss how to set specific NFRs that help with sustainability including carbon, such as: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feels like it needs a new section header rather than being part of Collaboration?
Please add a direct link to your post here:
https://dhope-scottlogic.github.io/blog/2024/05/17/integrating-sustainability-into-NFRs.html
Have you (please tick each box to show completion):
npm install
followed bynpx mdspell "**/{FILE_NAME}.md" --en-gb -a -n -x -t
if that's your thing)Posts are reviewed / approved by your Regional Tech Lead.