I like to think that my special "set of skills" is related to the multi-nodal and integral (in a holistic sense) theory of Sustainable Development.
Sustainable development is simply to recognize three axis of analysis, Environmental, Social and Economic. And finding synergies, is part of this dimensional analysis.
Can this theory be applied to software development?
I think so, and I aim to leave some mental notes for you all in this post about the topic.
Economic Sustainability
Possibly this is the most practical, but any software based project must be economically sustainable. There are different ways to achieve this, but some lessons are:
- No game lasts forever
- Free work, don't work long term
There are best practices, from the perspective of all different types of participant: developer, investor, user - and we should always be mindful to learn the lessons of past failures.
Sustainable with its Environment
This might be obvious, but anything, any organism (organization) whether digital or biological, must exist "in harmony", in a healthy relationship with its environment or ecosystem.
In the case of software, it might not be quite so obvious as with biological organisms, but perhaps its enough to give an example: we exist within the HIVE ecosystem, which also connects to the open source ecosystems of github/gitlab; etc etc. We bridge to other ecosystems, we are a living community of organizations/organisms.
Living organisms thrive; adapt and change - responding to stimulus!
Socially Sustainable
This is somehow and some what of a specialty of mine, social skills in a world of nerdy basement dwellers.... Well maybe its not all that bad but suffice it to say - we are all weird in our own ways!
There is something to be said here, I'm sure I've been trying, but "open source software" is something of a "political" endeavour - and it requires social skills to navigate and get things done.
A person with keys to the repo might be a president or executive, but node runners are the legislature. Users, or possibly app developers can be represented as the judicial branch of "open source governance".
Sure there are all types of tricks and fillibusters possible, life is a game after all; life is a social game.
For an application, there must be a healthy level of communication between all stakeholders, developers and users, investors and management. If this sounds like a lot of work, its probably because it is - if it were easy, every project would be successful.
All living systems
These three axis of analysis, together representing "sustainability", exist and are essential in all realms of human endeavours. Whatever we do, it should be sustainable, even if its not meant to last forever, especially so if its designed or desired to stand the test of time.
In an ecosystem, there are always multiple types of organisms. Monoculture is not a natural state, it "doesn't exist", at least when speaking of sustainable realities outside of the imagination of the spreadsheet-brained office dweller.
Building Sustainably
To adapt and survive, an organization must take all this into consideration, to establish a healthy and profitable niche. Despite many people's (mis)conception, ecosystems are not zero sum games. There are ways, many ways in fact, even obvious ways, to add value without taking anything from anyone, without eating anyone's lunch.
Zero sum games do exist, but there is no law that we have to focus our efforts on such things. We can build, for a better tomorrow - we can be sustainable.
I choose, synergy and sustainability.