DISCLAIMER: THIS IS WORK IN PROGRESS AND NOT A FINAL MANIFESTO
We observe that Software is eating the world.
There will always be more software created by more people.
This means that there will be more diversity: people who write and consume software.
There will be more one-off experiments landing in production because the barrier to entry is getter lower.
Complexity is growing inevitably.
There is a concept that helps organizing complexity:
There was this thing called modularity once. (https://twitter.com/mfeathers/status/1114925378752016384)
In the past, frameworks and tools that are known to help you with modularity - like OSGi in the Java space for decades - are getting the blame for being too complicated, not worth the pain etc. (Shooting the messenger).
The value of going the extra mile is often questioned in fast paced product development. GreenDev expresses the long term benefit. It can help communicate the extra effort.
We propose a value-driven approach to sustainable software development. We call this GreenDev.
-
GreenDev favors Open Source Software Licensing (as in https://de.wikipedia.org/wiki/Open_Source_Initiative) over Closed Source Licencing
-
GreenDev assumes that most software pieces will land in production and should be nurtured that way.
-
GreenDev favours self-service automation over manual processes and steps.
-
GreenDev is about a sustainable practices in development (eg learning, sharing)
-
GreenDev advocates the re-use of parts (modularity).
-
GreenDev is modular, minimal, local.
-
GreenDev values diversity. In a time where female researchers still get shitstorm & measured by LOC this cannot be valued higher. Above all technical focus, diversity is a core need. Sad that we still have to explicitly state this. :/
Green carries a lot of what we think is needed in the industry of software development lifecycle.
The color green is associated with values such as: Environment-Aware, Healthy, Sustainable, Holistic.
Software has no cost of disposal (https://twitter.com/schneider_chris/status/1115502152678617088).
Because there is no silver bullet, we need to embrace complexity and acknoledge experience (from failures)
Modularity is hard.
You need to have been burned at least once to appreciate it.
We know that there is no-silver bullet to modularity.
But modularity is (as hard as it is) a safe pathway to tackle known issues with pervasive software everywhere:
- Security (know your boundaries)
- Stability (know the impact of changes)
- Discovery (know the capabilities)
GreenDev favours Open Source licensing because it simplifies communication across parties and boosts the idea of shared knowledge. There are many other aspects that are benefitial as well: many-eyes-principle for security, avoiding patent-issues that only benefit the lawyers etc.
"I wonder why #modularity in #softwaredevelopment is so unpopular these days. Trends such as #serverless and #microservices treat advances concepts like #capability & #requirements as an afterthought. Is it too hard? Not important enough for people?" (https://twitter.com/tonit/status/1115134599586287616)
"Let‘s start a software sustainability manifesto. We need to start somewhere" (https://twitter.com/kai_at_ProSyst/status/1115328384253464576)
We think GeenDev is a modern version of software craftsmenship. In a world of automation, persvasive cloud and self-service delivery a medival wording might be misleading.
We think GreenDev can complement Software Craftsmenship.