diff options
author | Dave Kerr <dwmkerr@gmail.com> | 2018-10-03 21:05:21 +0800 |
---|---|---|
committer | Dave Kerr <dwmkerr@gmail.com> | 2018-10-03 21:05:21 +0800 |
commit | 244f590e758899ec356afb4fe92b5b5497b3112e (patch) | |
tree | 77173e8b04da6f4af60ad40aae952a71995bf3ee | |
parent | 7719db73566d91ecf5c4e1f14f0b5ce6b1337a74 (diff) |
chore: add table of contents, separate introduction, adjust headings
The table of contents is auto-updated in vim. Theoretically we could
even automate this step. The intro has been separated out, and the laws
are a level deeper, which makes them a bit clearer in the comments.
-rw-r--r-- | README.md | 29 |
1 files changed, 23 insertions, 6 deletions
@@ -2,31 +2,48 @@ Laws, Theories, Patterns and Ideas that all developers should know about! + +<!-- vim-markdown-toc GFM --> + +* [Introduction](#introduction) +* [The Laws](#the-laws) + * [⭐⭐ Conway's Law](#-conways-law) + * [⭐⭐⭐ The Unix Philosophy](#-the-unix-philosophy) + * [⭐The Spotify Model](#the-spotify-model) + +<!-- vim-markdown-toc --> + +## Introduction + There are lots of laws which people discuss when talking about development. This repository is a reference and overview of some of the most common ones. Please share and submit PRs! I have tried to use a star rating for how 'important' a law is. The more stars, the more likely you are to hear the law referred to, and therefore the more potentially useful it is to know about it. Of course this is highly subjective, I am open to other suggestions. +## The Laws + +And here we go! + -## ⭐⭐ Conway's Law +### ⭐⭐ Conway's Law [Conway's Law on Wikipedia](https://en.wikipedia.org/wiki/Conway%27s_law) -This law suggests that the technical boundaries of a system will reflect the structure of the organisation. It is commonly referred to when looking at organisation improvements, Conway's Law suggests that if an organisation is structured into many small, disconnected units, the software it produces will be. If an organisation is built more around 'verticals' which are orientated around features or services, the software systems will also refelect this. +This law suggests that the technical boundaries of a system will reflect the structure of the organisation. It is commonly referred to when looking at organisation improvements, Conway's Law suggests that if an organisation is structured into many small, disconnected units, the software it produces will be. If an organisation is built more around 'verticals' which are orientated around features or services, the software systems will also reflect this. See also: 'The Spotify Model'. -## ⭐⭐⭐ The Unix Philosophy +### ⭐⭐⭐ The Unix Philosophy -[The Unix Philososphy on Wikipedia](https://en.wikipedia.org/wiki/Unix_philosophy) +[The Unix Philosophy on Wikipedia](https://en.wikipedia.org/wiki/Unix_philosophy) The Unix Philosophy is that software components should be small, and focused on doing one specific thing well. This can make it easier to build systems by composing together small, simple, well defined units, rather than using large, complex, multi-purpose programs. Modern practices like 'Microservice Architecture' can be thought of as an application of this law, where services are small, focused and do one specific thing, allowing complex behaviour to be composed from simple building blocks. -## ⭐The Spotify Model +### ⭐The Spotify Model [The Spotify Model on Spotify Labs](https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/) -The Spotify Model is an an approach to team and organisation structure which has been popularised by 'Spotify'. In this model, teams are organised around features, rather than technologies. +The Spotify Model is an approach to team and organisation structure which has been popularised by 'Spotify'. In this model, teams are organised around features, rather than technologies. The Spotify Model also popularises the concepts of Tribes, Guilds, Chapters, which are other components of their organisation structure. |