This respository is a collection of ideas about collaboration, in written and visual form. It connects experience, society and software engineering. It is used as a tool for learning - to map out ideas. It is meant to provoke discussion, rather than to offer in-depth explanations.
Disclaimer: this repository does not contain advice.
See index.
Models
Theory: Domain modelling (of real world concepts)
- Domain-Driven-Design- examples of DDD using OOP and FP.
- Functions and Relationships
- Programming Patterns - common programming, application and system architecture patterns.
Practice: Computer language (encoding of models)
- Style Guide - a prescriptive guide for programming (low level)
- Language Specification - this can be implemented as a library or a new language.
- Functional Programming Patterns
- Programming Paradigms - a comparison of OOP and FP.
Systems
Theory: Systems (internal view).
Practice: Labour (organization of work)
Practice: Management of systems
Technological
Theory: Math
- Mathematical Models.
- Forces.
- Waves (periodic processes).
- Signal Processing (sinoids).
Practice: Software Industry
- Security.
- Software Engineering.
- Software Domains.
- Software Development Cycle.
Theory: Intelligence (and reasoning)
- Knowledge (and truth).
- Creativity (exercises for brainstorming).
- Learning (change and improvement).
- Models and modelling principles.
Practice: Collaboration (and communication)
- Communication
- Communication principles (human communication).
- Messaging (verbally or non-verbally).
- Interview Questions (discovery).
- Retrospective exercises for reflection for groups.
- Creating value
- Labour (work and management of work).
- Organization (identity)
- Teams (structure and effectiveness)
Other
- Quotes - to contemplate (high level).
- Behaviour - generic ideas, specific to human behaviour.
- Documentation.
Templates and exercises
-
Interactive
- Retrospective exercises.
- Brainstorming prompts.
- Interview questions.
-
Documentation
- Documentation templates.
- Requirements engineering.
Relations between documents
From abstract theory to application within a domain. For a full overview, see this table.
- Communication Patterns > Programming Patterns > Programming Paradigms
- Requirements Engineering > Project Management
- Systems Management > Organization Structure > Organization Architecture
- Management Principles > (management of) Systems > a Product > a Platform > a Project
Themes
- Quality, flow & systems: domains, organization, emotions.
- Agile coaching. coaching, Scrum, coaching, activity, organization, systems.
Perspective & Generalizability of Guidelines
- Generic but subjective.
- Theory, Principle, doctrine, culture.
- Implicit, feeling, can be sensed.
- Difficult to prove or falsify.
- Applicable always and anywhere.
- Objective but specific.
- Practice, habit, skill.
- Explicit, Concrete, measurable, actionable.
- Provable, falsifiable.
- Applicable to a single moment or location.
E.g. a goal can be short-term and precise, or long-term but vague.
Definition of anti-pattern: a commonly used, bad solution to a problem. Possibly just an indicator, signaling a deeper issue.