Motivation
As a software practicioner for several years I am continuously observing a lack of knowledge about specific methods and concepts. What I miss mostly is knowledge about organisation and communication.
Goal
To make a start in order to change that (at least around me) I would like to collect methods and concepts here.
Approach
- Collect methods and concepts.
- Rethink the approach when the number exceeds the count of
~30
.
Software development in general has more dimensions than just technology. What I see as important dimensions are:
-
organisation
You are not working alone anymore. You are working in a group of people. Questions: How do you organize and structure work?
-
communication
As you are not working in a complex world and nobody can always complete work alone, how do we effectively communicate with others?
-
learning
We can be very confident about that we don't know everything. We can further be sure, we need some capability in the future we currently don't have. How do we organize learning?
-
technology
Software development without technology would miss the point. (This is just listed for the sake of completeness.)
When we leave university, we are mostly packed with knowledge around the 4th dimension (technology). But with that alone we will fail in the first reality contact badly. We will never know everything. But to know what we don't know and should know is the first step out of unconscious incompetence.
- retrospective, https://en.wikipedia.org/wiki/Retrospective#Software_development
- feedback rules, https://www.entrepreneur.com/article/280791 (needs improvement)
- mindfulness in the art of software development
- Maker vs. Manager schedule, https://fs.blog/2017/12/maker-vs-manager/
- Liberating Structures, https://www.liberatingstructures.de/ (only German version yet)
- Non-violent communication, https://en.wikipedia.org/wiki/Nonviolent_Communication
- basic architecture of microservices: https://12factor.net/
- testing microservices: https://martinfowler.com/articles/microservice-testing/
- scrum, https://en.wikipedia.org/wiki/Scrum_(software_development)
- kanban, https://en.wikipedia.org/wiki/Kanban_(development)
- agile manifesto, https://agilemanifesto.org/
- Software Gardening Manifesto, http://softwaregarden.io/manifesto/
- prime directive, https://www.martinfowler.com/bliki/PrimingPrimeDirective.html
- slack-time, https://medium.com/sainsburys-engineering/the-science-of-slack-time-f62c77a38349
- noestimates movement, http://ronjeffries.com/xprog/articles/the-noestimates-movement/
- story points, https://www.atlassian.com/agile/project-management/estimation
- Popcorn Flow, https://de.slideshare.net/cperrone/popcornflow-continuous-evolution-through-ultrarapid-experimentation
- Post Mortem Analyse, https://landing.google.com/sre/sre-book/chapters/postmortem-culture/
- STAMP Analyse, https://en.ru.is/stamp/what-is-stamp/
- 5-Whys, https://en.wikipedia.org/wiki/5_Whys
- 4-stages-of-competence, https://en.wikipedia.org/wiki/Four_stages_of_competence
- Rubber-duck-debugging, https://en.wikipedia.org/wiki/Rubber_duck_debugging