Git Product home page Git Product logo

greendev's Introduction

The Green Dev Manifesto

Join the chat at https://gitter.im/greendevio/community

DISCLAIMER: THIS IS WORK IN PROGRESS AND NOT A FINAL MANIFESTO

Problem Statement

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.

Values

  • 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. :/

Why Green?

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.

Sustainability

Mindful to the environment

Recycling

Software has no cost of disposal (https://twitter.com/schneider_chris/status/1115502152678617088).

Learning Econonmy

Because there is no silver bullet, we need to embrace complexity and acknoledge experience (from failures)

Modularity

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)

Open Source

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.

Origin

"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)

Relationship to Software Craftsmenship

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.

Authors

greendev's People

Contributors

gitter-badger avatar tonit avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.