Skip to main content

01 - Development Method, Management & Business

Software Development & Design

Agile Development

  • Agile software development - An umbrella term for approaches to developing software that reflect the values and principles agreed upon by The Agile Alliance
    • Agile Manifesto - A document that proclaims better ways of developing software by valuing individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan
    • Software prototyping - The activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed
    • Minimum viable product - A version of a product with just enough features to be usable by early customers who can then provide feedback for future product development
    • User story - An informal, natural language description of features of a software system
      • Card, Conversation, Confirmation - A practice where the Card is a token representing the requirement, the Conversation is where details are teased out, and the Confirmation is the acceptance test for the story
    • INVEST of PBI - A mnemonic created by Bill Wake as a reminder of the characteristics of a good quality Product Backlog Item (PBI)
      • Independent: The PBI should be self-contained
      • Negotiable: Draft PBIs are not explicit contracts and should leave space for discussion
      • Valuable: A PBI must deliver value to the stakeholders
      • Estimable: You must always be able to estimate the size of a PBI
      • Small: PBIs should not be so big as to become impossible to plan/task/order within a level of accuracy
      • Testable: The PBI or its related description must provide the necessary information to make test development possible
  • Key Methodologies
    • Extreme Programming - A software development methodology which is intended to improve software quality and responsiveness to changing customer requirements
    • Scrum - A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value
    • Acceptance test-driven development - A development methodology based on communication between the business customers, the developers, and the testers
      • Three Amigos - A meeting where the product owner, developer, and quality tester come together to establish clarity on the scope of the project
    • Behavior driven development - An agile software development process that encourages collaboration among developers, quality assurance testers, and customer representatives in a software project
      • Specification by example - A collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements
  • Key Practices
    • Refactoring - A disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior
      • Software rot - The tendency for software to deteriorate in quality, performance, or usefulness over time
      • Technical debt - A concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer
        • Technical Debt Radio - A metric used to measure the cost of fixing the existing technical debt in a codebase compared to the cost of developing the entire codebase from scratch
    • Test driven development - A software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases
  • Tools for ATDD/BDD
    • Gauge - A free and open source test automation framework that takes the pain out of writing and maintaining acceptance tests
    • Cucumber - A tool that supports Behaviour-Driven Development (BDD) by reading executable specifications written in plain text and validating that the software does what those specifications say
      • Gherkin Syntax - A set of grammar rules that makes plain text structured enough for Cucumber to understand
      • cucumber-ruby - The Ruby implementation of Cucumber
    • RSpec - A testing tool for the Ruby programming language, created for behavior-driven development (BDD)
    • Behave - A tool for behavior-driven development (BDD) in Python, using tests written in a natural language style, backed up by Python code

Lean Development

  • Lean software development - A translation of lean manufacturing principles and practices to the software development domain
    • Continual improvement process - An ongoing effort to improve products, services, or processes
    • OODA loop - A four-step approach to decision-making that focuses on filtering available information, putting it in context and quickly making the most appropriate decision while also understanding that changes can be made as more data becomes available
  • Lean manufacturing - A production method aimed primarily at reducing times within the production system as well as response times from suppliers and to customers
  • Toyota Production System - An integrated socio-technical system, developed by Toyota, that comprises its management philosophy and practices
    • Kanban - A lean method to manage and improve work across human systems
    • Kaizen - A concept of continuous improvement through small, incremental changes
    • Just-in-Time (JIT) - A system for producing and delivering parts and products only when needed, minimizing waste and inventory
    • Jidoka - The concept of automation with a human touch, where machines detect defects and allow workers to address quality issues
    • Heijunka - A method for leveling the production schedule to achieve a balanced, consistent workflow
    • Genchi Genbutsu - The principle of going to the source to understand the actual situation
    • Andon - A visual management system that allows workers to signal problems and request assistance
    • Muri, Muda, Mura - The three types of waste that should be eliminated: overburden, uselessness, and unevenness
  • Theory of Constraints - A management paradigm that views any manageable system as being limited in achieving more of its goals by a very small number of constraints

DevOps & Engineering Productivity

  • Concepts
    • CALMS framework - A conceptual model for approaching DevOps that stands for Culture, Automation, Lean, Measurement, and Sharing
  • Cultural & Organizational Foundations
    • Generative organizational culture - A type of culture characterized by a high degree of trust and cooperation, a shared sense of responsibility for the mission, and a focus on learning and continuous improvement
    • Servant leadership
    • Transformational leadership - A leadership style in which leaders encourage, inspire, and motivate employees to innovate and create change that will help grow and shape the future success of the company
  • Technical Practices
    • Feature Toggles - A powerful technique, allowing teams to modify system behavior without changing code
    • Blue-Green Deployment - A technique that reduces downtime and risk by running two identical production environments called Blue and Green
    • Canary Release - A technique to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure
    • Everything as code - A software development practice that seeks to apply the same principles of version control, testing, and deployment to enhance maintainability and scalability of all aspects of the development lifecycle, including networking infrastructure, documentation, and configuration

Requirement Engineering

  • System - A group of interacting or interrelated elements that act according to a set of rules to form a unified whole
    • Systems architecture - The conceptual model that defines the structure, behavior, and more views of a system
    • Conway's law - An adage stating that organizations design systems that mirror their own communication structure
  • Requirements analysis - The process of determining the needs or conditions to meet for a new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders
    • Requirement - A documented need of what a product or service should be or do
      • Non-functional requirement - A requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors
  • Related Standards
    • ISO/IEC 25010: Systems and software Quality Requirements and Evaluation (SQuaRE)

Domain-Driven Design (DDD)

  • Domain-driven design - A major software design approach, focusing on modeling software to match a domain according to input from that domain's experts
  • Object-oriented analysis and design - A technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process
    • Use case - A list of actions or event steps typically defining the interactions between a role (known in the Unified Modeling Language as an actor) and a system to achieve a goal
  • Ontology - A representation, formal naming and definition of the categories, properties and relations between the concepts, data and entities that substantiate one, many or all domains of discourse
    • Semantic network - A knowledge base that represents semantic relations between concepts in a network
      • WordNet - A large lexical database of English
  • Database design - The organization of data according to a database model

Management & Measurement

Project & Work Management

  • Project management - The process of leading the work of a team to achieve all project goals within the given constraints
    • Critical chain project management - A method of planning and managing projects that emphasizes the resources (people, equipment, physical space) required to execute project tasks
    • Gantt Chart
    • Work breakdown structure - A deliverable-oriented breakdown of a project into smaller components
    • RACI matrix - A responsibility assignment matrix (RAM)... describes the participation by various roles in completing tasks or deliverables for a project or business process
      • Responsible, Accountable, Consulted, Informed
    • Software development effort estimation - The process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input
      • Three-point estimation - A technique used in project management to estimate the likely duration or cost of an activity
      • Planning poker - A consensus-based, gamified technique for estimating, mostly used for timeboxing in Agile principles
  • Systems development life cycle (SDLC) - A conceptual model used in project management that describes the stages involved in an information system development project
    • ISO/IEC/IEEE 12207: Systems and software engineering — Software life cycle processes
    • ISO/IEC/IEEE 15288: Systems and software engineering — System life cycle processes
  • Prioritization - The activity that arranges items or activities in order of urgency
    • RICE - A simple scoring system for product prioritization that stands for Reach, Impact, Confidence, and Effort
    • Kano model - A theory for product development and customer satisfaction developed in the 1980s by Noriaki Kano
    • MoSCoW method - A prioritization technique used in management, business analysis, project management, and software development
  • Stakeholder management - The process of identifying individuals or groups that are affected by a project or business venture, understanding their interests and concerns, and managing their expectations and influence
  • Tools & Platforms
    • Issue Tracking Systems
      • JIRA - A software application used for issue tracking and project management that helps teams plan, assign, track, report, and manage work
        • Python Jira - A Pythonic interface to the JIRA REST APIs
        • JiraCLI - An interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent
      • GitLab Issue Board - A user interface that displays issues in columns that correspond to their workflow statuses
      • GitLab Service Desk - A feature that enables you to connect with users through email, without requiring them to have a GitLab account
      • Azure Boards - A service that provides a customizable platform for managing work items, allowing teams to collaborate effectively and streamline their workflow
      • GitHub Issues - A tracking tool that helps you manage your work on GitHub
      • Redmine - A free and open source, web-based project management and issue tracking tool
    • Chat Systems
      • Slack - A channel-based messaging platform where people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work
        • Python Slack SDK - A software development kit that helps Python developers build apps that integrate with Slack
        • Slack API in Go - A Go library for the Slack API
      • Mattermost - An open source collaboration platform for developers, offering secure messaging, project management, and workflow orchestration
      • Discord - A free voice, video, and text chat app that's used by tens of millions of people to talk and hang out with their communities and friends
        • discord.js - A powerful Node.js module that allows you to interact with the Discord API very easily
      • Notify - A dead simple Go library for sending notifications to various messaging services

Product Management

  • Product management - The business process of planning, developing, launching, and managing a product or service
    • Aha! - A suite of product development software that helps teams build and market products customers love
  • Lean startup - A methodology for developing businesses and products that aims to shorten product development cycles and rapidly discover if a proposed business model is viable
  • Related Standards
    • ISO/IEC 15504: Information technology — Process assessment
    • ISO/IEC 20000: Information technology — Service management
  • Business model - The rationale of how an organization creates, delivers, and captures value, in economic, social, cultural or other contexts

Goal Setting & Performance

  • Goal setting - The process of developing an action plan designed to motivate and guide a person or group toward a goal
    • SMART goals - A mnemonic acronym, used to guide in the setting of objectives or goals, for example in project management, employee-performance management and personal development
      • Specific: Targeting a particular area for improvement
      • Measurable: Quantifying, or at least suggesting, an indicator of progress
      • Assignable: Defining responsibility clearly
      • Realistic: Outlining attainable results with available resources
      • Time-related: Including a timeline for expected results
    • FAST goals - A framework for goals that are Frequently discussed, Ambitious in scope, Specific in metrics, and Transparent for everyone to see
    • GROW model - A simple method for goal setting and problem solving
    • OKRs - A goal-setting framework used by individuals, teams, and organizations to define measurable goals and track their outcomes
    • KPIs - A type of performance measurement used to evaluate the success of an organization or of a particular activity (such as projects, programs, products and other initiatives) in which it engages
      • Net Promoter Score - A market research metric that is based on a single survey question asking respondents to rate the likelihood that they would recommend a company, product, or a service to a friend or colleague
    • Goodhart's law - An adage often stated as, "When a measure becomes a target, it ceases to be a good measure"
  • Performance Measurement
    • SPACE framework - A framework that provides a way to think about developer productivity in a more holistic way, encompassing Satisfaction and well-being, Performance, Activity, Communication and collaboration, and Efficiency and flow
    • The Four Keys of DORA - A set of metrics used to measure DevOps performance, consisting of Deployment Frequency, Lead Time for Changes, Change Failure Rate, and Time to Restore Service

Business & Strategy

Enterprise Architecture & Administration

  • Enterprise architecture - A well-defined practice for conducting enterprise analysis, design, planning, and implementation, using a comprehensive approach at all times, for the successful development and execution of strategy
    • TOGAF standard - A proven Enterprise Architecture methodology and framework used by the world’s leading organizations to improve business efficiency
    • Zachman Framework - An ontology – a theory of the existence of a structured set of essential components of an object
    • ArchiMate - An open and independent modelling language for Enterprise Architecture that is supported by different tool vendors and consulting firms
      • Archi - A free, open source, cross-platform tool and editor to create ArchiMate models
  • Enterprise resource planning - The integrated management of main business processes, often in real time and mediated by software and technology
    • Customer relationship management - A strategic process that organizations use to manage, analyze, and improve their interactions with customers
      • EspoCRM
      • Salesforce - A customer relationship management solution that brings companies and customers together, providing one integrated CRM platform for all departments
      • SuiteCRM
    • Supply chain management - The management of the flow of goods and services, between businesses and locations, including the movement and storage of raw materials, work-in-process inventory, and finished goods from point of origin to point of consumption
    • Human resource management - The strategic and coherent approach to the effective and efficient management of of people in a company or organization such that they help their business gain a competitive advantage
    • Contract management - The process of systematically and efficiently managing contract creation, execution, and analysis for the purpose of maximizing financial and operational performance and minimizing risk
    • SAP ERP - A comprehensive software system that streamlines processes, improves productivity, and provides real-time insights across your entire organization
    • Odoo - A suite of open source business applications covering areas such as CRM, ERP, accounting, and more
    • ERPNext - A 100% open-source ERP with a modern, comprehensive, and user-friendly enterprise resource planning solution
  • Enterprise modeling - The process of building models of whole or part of an enterprise with process models, data models, resource models and or new ontologies
    • BPMN- A graphical notation for specifying business processes in a Business Process Diagram
    • SysML - A general-purpose graphical modeling language for specifying, analyzing, designing, and verifying complex systems that may include hardware, software, information, personnel, procedures, and facilities
    • Eclipse Capella - An open-source Model-Based Systems Engineering (MBSE) solution that provides a process and tooling to graphically design systems and master their architectural complexity
  • Business process change management
    • Organizational structure - A system that outlines how certain activities are directed in order to achieve the goals of an organization
    • Kotter's 8-step change model - A set of tools and strategies designed to help organizations effectively implement and sustain change
    • Prosci ADKAR Model - A goal-oriented change management model that guides individual and organizational change

Strategic Management & Marketing

  • Strategic management tools
    • MECE principle - A grouping principle for separating a set of items into subsets that are mutually exclusive (ME) and collectively exhaustive (CE)
    • SWOT analysis - A strategic planning and strategic management technique used to help a person or organization identify Strengths, Weaknesses, Opportunities, and Threats related to business competition or project planning
    • PEST analysis - A framework of external macro-environmental factors (political, economic, social and technological) used in strategic management and market research
    • Porter's five forces analysis - A model that identifies and analyzes five competitive forces that shape every industry and helps determine an industry's weaknesses and strengths
  • Business inteligence and analysis tools
    • Tableau - The world’s leading analytics platform
    • Power BI - A unified, scalable platform for self-service and enterprise business intelligence
      • DAX - A programming language that is used throughout Microsoft Power BI for creating calculated columns, measures, and custom tables
    • Amazon QuickSight - A scalable, serverless, embeddable, machine learning (ML)-powered business intelligence (BI) service built for the cloud
  • Marketing
    • SEO - The process of improving the quality and quantity of website traffic to a website or a web page from search engines
    • Marketing mix - A foundation model for businesses, historically centered around product, price, place, and promotion
    • Card sorting - A method used to help design or evaluate the information architecture of a site
    • Fear of missing out (FOMO) - The feeling of apprehension that one is either not in the know about or missing out on information, events, experiences, or life decisions that could make one's life better
    • Fear, uncertainty, and doubt (FUD) - A manipulative propaganda tactic used in sales, marketing, public relations, politics, polling, and cults
    • Tag management
      • Google Tag Manager - A tag management system that allows you to quickly and easily update measurement codes and related code fragments known as tags on your website or mobile app
    • Analytics tools
      • Google Analytics - The go-to platform for millions of website and app owners seeking to gain a deeper understanding of their website and app performance
      • Plausible - Intuitive, lightweight and open source web analytics
      • vince - A cost effective, self hosted, privacy friendly alternative to Google Analytics
    • User experience research
      • A/B testing - A way to compare multiple versions of a single variable, for example by testing a subject's response to variant A against variant B, and determining which of the variants is more effective
      • Diary studies - A research method in which people record their experiences and activities over time
    • Advertising
      • Indicators
        • Click through rate - The ratio of users who click on a specific link to the number of total users who view a page, email, or advertisement
        • Conversion rate - The percentage of users who take a desired action
      • Platforms
        • Google Ads - An online advertising platform where advertisers bid to display brief advertisements, service offerings, product listings, or videos to web users
        • Google AdSence - A program run by Google through which website publishers in the Google Network of content sites serve text, images, video, or interactive media advertisements that are targeted to the site content and audience
    • Experiment platform
      • Optimizely - A leading digital experience platform (DXP) that provides a single, unified platform that offers you the scalability and security you need to drive your business into the future
    • Email Distribution
      • listmonk - Self-hosted newsletter and mailing list manager
      • BillionMail - An open-source MailServer and email marketing solution that is fully self-hosted and dev-friendly
    • Concepts and Frameworks
    • Tools for Strategy
      • Value proposition canvas - A tool to help you create products and services customers want
      • Persona - A fictional character created to represent a user type relationship
    • Tools for Ideation
      • Affinity diagram - A business tool used to organize ideas and data
      • Brainstorming - A group creativity technique by which efforts are made to find a conclusion for a specific problem by gathering a list of ideas spontaneously contributed by its members
      • SCAMPER

Risk Management

  • Risk management - The identification, evaluation, and prioritization of risks followed by coordinated and economical application of resources to minimize, monitor, and control the probability or impact of unfortunate events or to maximize the realization of opportunities
    • Business continuity planning - The process an organization undergoes to create a prevention and recovery system from potential threats such as natural disasters or cyber-attacks
      • IT disaster recovery - The process of resuming normal IT operations after a disruptive event, such as a natural disaster, cyberattack, or equipment failure
      • ISO 22301: Security and resilience - Business continuity management systems - Requirements
    • Project risk management - The process of identifying, analyzing, and then responding to any risk that arises over the life cycle of a project to help the project remain on track and meet its goal
    • Financial risk management - The practice of protecting economic value in a firm by managing exposure to financial risk - principally credit risk and market risk, as well as some aspects of operational risk
    • ISO 31000: Risk management

The Open Ecosystem

Open Source

  • Open Source Initiative - A non-profit organization dedicated to promoting and protecting open source software and communities
  • Major Licenses
    • MIT - A permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s
    • BSD - A family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software
    • Apache - A permissive free software license written by the Apache Software Foundation (ASF)
    • GPL - A series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software
    • LGPL - A free-software license published by the Free Software Foundation (FSF)
  • Source Repositories
    • GitHub - The AI-powered developer platform to build, scale, and deliver secure software
    • GitLab.com - The DevSecOps Platform that empowers organizations to maximize the overall return on software development
  • Package Registries
    • CTAN - The Comprehensive TEX Archive Network
    • CPAN - The Comprehensive Perl Archive Network
    • CRAN - The Comprehensive R Archive Network
    • PyPI - A repository of software for the Python programming language
    • RubyGems.org - The Ruby community’s gem hosting service
    • npm Registry - The world's largest software registry
    • JSR - The open-source package registry for modern JavaScript and TypeScript
    • pkg.go.dev - Your source for information about Go packages and modules
    • crates.io - The Rust community’s crate registry
    • LuaRocks - The package manager for Lua modules
    • Hackage - The Haskell community's central package archive of open source software
      • Stackage - A curated set of packages from Hackage
    • NuGet Gallery - The package manager for .NET
    • Maven Central - The World's Largest and Oldest Component Repository
    • ConanCenter - The central repository where you can find all the open source packages created by the community
    • Anaconda Hub - The Hub for Data Science and AI Collaboration
  • Container Related
    • Docker Hub - A service provided by Docker for finding and sharing container images
    • Artifact Hub - A web-based application that enables finding, installing, and publishing Cloud Native packages
  • Community Curations
    • Awesome Go - A curated list of awesome Go frameworks, libraries, and software. Inspired by awesome-python
    • Awesome Ruby - A curated list of awesome Ruby frameworks, libraries and software
    • Awesome Python - A curated list of awesome Python frameworks, libraries, software and resources
    • Awesome Neovim - Collections of awesome neovim plugins
    • Awesome VSCode - A curated list of delightful VS Code packages and resources

Open Data

  • Tools and Licenses
    • Creative Commons - A nonprofit organization that helps overcome legal obstacles to the sharing of knowledge and creativity to address the world’s pressing challenges
    • Open Data Commons - The home of a set of legal tools and licenses to help you publish, provide and use open data
  • Open Data Registries
    • Hugging Face Hub - A platform with over 900k models, 200k datasets, and 300k demos in which people can easily collaborate in their ML workflows
    • Data.gov - The home of the U.S. Government’s open data
    • Kaggle - The world's largest data science community with powerful tools and resources to help you achieve your data science goals
    • Registry of Open Data on AWS - A service that makes it easy for people to find datasets that are publicly available through AWS services
    • OpenML - An open, collaborative, frictionless, and automated machine learning environment
    • OpenStreetMap - A map of the world, created by people like you and free to use under an open license
  • Data Search Engines
    • Google Dataset search - A search engine that enables users to find datasets stored across thousands of repositories on the Web

Community & Governance

  • Umbrella Open Source Foundations
    • Linux Foundation - A non-profit organization that supports, protects, and standardizes Linux by providing a neutral, trusted hub for developers to code, manage, and scale open technology projects
    • Apache Software Foundation - A nonprofit corporation to support Apache software projects, including the Apache HTTP Server
    • Eclipse Foundation - A provider of a business-friendly environment for open source software collaboration and innovation for a global community of individuals and organizations
  • Technology-Specific Foundations
    • OpenJS Foundation - The neutral home for more than 40 open source projects, including Appium, Dojo, jQuery, Node.js, and webpack
    • Rust Foundation - An independent non-profit organization dedicated to stewarding and growing the Rust programming language and ecosystem
    • Python Software Foundation - The charitable organization behind the Python programming language
    • PyTorch Foundation - A community-driven hub for open-source AI
  • Cloud & AI
    • Cloud Native Computing Foundation - An open source software foundation dedicated to making cloud native computing universal and sustainable
    • Agentic AI Foundation (AAIF) - A neutral, open foundation to ensure this critical capability evolves transparently, collaboratively, and in ways that advance the adoption of leading open source AI projects
  • Web & Data Standards
    • World Wide Web Consortium - An international community that develops open standards to ensure the long-term growth of the Web
    • WHATWG - A community of people interested in evolving HTML and related technologies
    • The Open Group - A global consortium that enables the achievement of business objectives through technology standards
  • Ethical & Digital Rights
  • Community Governance & Codes of Conduct

People & Collaboration

Team Dynamics & Communication

  • Team Dynamics
  • Interpersonal Communication Techniques
    • Storytelling - The social and cultural activity of sharing stories, sometimes with improvisation, theatrics or embellishment
    • Facilitation - The act of designing and running a successful meeting or workshop
    • Active listening - The practice of preparing to listen, observing what verbal and non-verbal messages are being sent, and then providing appropriate feedback for the sake of showing attentiveness to the message being presented
    • Negotiation - A dialogue between two or more parties to resolve points of difference, gain an advantage for an individual or collective, or craft outcomes to satisfy various interests
  • Corporate Principles & Values
    • Amazon's Leadership Principles - The set of core tenets Amazonians use daily to guide their discussions, decisions, and actions
    • GitLab Values - The key principles that form GitLab's identity and culture, guiding how team members work together
  • Professional Manifestos
    • Manifesto for Software Craftsmanship - As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft