Skip to content

Commit

Permalink
Created method intros and icons for each method
Browse files Browse the repository at this point in the history
  • Loading branch information
robmoffat committed Jun 14, 2024
1 parent 6a1c48c commit 29e08be
Show file tree
Hide file tree
Showing 63 changed files with 605 additions and 1,445 deletions.
82 changes: 80 additions & 2 deletions docs/methods/DevOps.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,84 @@
---
tags:
title: DevOps
description: A set of practices that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle and provide continuous delivery with high software quality.
tags:
- Method
- Agile
- DevOps
featured:
class: c
element: '<image-artifact imgsrc="/public/templates/risk-first/posts/devops.svg">DevOps</image-artifact>'
method:
practices:
- tag: Configuration Management
reason: "DevOps uses Infrastructure as Code (IaC) to manage and provision computing infrastructure through machine-readable scripts."
use:
- Security as Code
- Infrastructure As Code (IaC)
- Configuration Management
- tag: Design
reason: "DevOps emphasizes microservices architecture and service discovery to improve scalability and reliability."
use:
- Microservices Architecture
- Service Discovery
- tag: Integration Testing
reason: "Continuous Integration (CI) regularly integrates code changes into a shared repository to detect and fix problems early."
use:
- Continuous Integration (CI)
- tag: Monitoring
reason: "Monitoring and logging, along with observability, are critical for identifying issues and opportunities for improvement in DevOps."
use:
- Monitoring and Logging
- Observability
- tag: Prototyping
reason: "Canary releases and blue-green deployments are used to test new features in a controlled manner."
use:
- Canary Releases
- Blue-Green Deployment
- tag: Redundancy
reason: "Load balancing and redundancy are crucial for maintaining uptime in a DevOps environment."
use:
- Load Balancing
- Redundancy
- tag: Release Delivery
reason: "Continuous Delivery (CD), Continuous Deployment, and Blue-Green Deployment ensure smooth and frequent releases."
use:
- Continuous Delivery (CD)
- Continuous Deployment
- Blue-Green Deployment
- tag: Security Testing
reason: "Security as Code and Automated Security Testing integrate security practices into the DevOps pipeline."
use:
- Automated Security Testing
- tag: Unit Testing
reason: "Automated Testing and Test Driven Development (TDD) validate code changes to ensure they work as expected."
use:
- Automated Testing
- Test Driven Development (TDD)
- tag: Version Control
reason: "Version Control and Artifact Management are essential for managing code and builds in DevOps."
use:
- Version Control
- Artifact Management
---

![Draft](/img/state/draft.png)
<MethodIntro details={frontMatter} />

## Description

> "DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle." - [DevOps, _Wikipedia_](https://en.wikipedia.org/wiki/DevOps)
DevOps emphasizes collaboration between development and operations teams to improve efficiency, reliability, and scalability. Key practices in DevOps include continuous integration, continuous delivery, infrastructure as code, monitoring and logging, automated testing, and configuration management. DevOps focuses on automating and streamlining the software development and deployment process.

## See Also

<TagList tag="DevOps" />

### Additional DevOps Practices

- **Microservices Architecture**: Designing applications as a collection of loosely coupled, independently deployable services.
- **Service Discovery**: Automatically detecting and connecting to services in a microservices architecture.
- **Security as Code**: Integrating security practices into the DevOps pipeline.
- **Automated Security Testing**: Using automated tools to perform security checks throughout the development and deployment process.

These practices highlight the core elements of DevOps and how they align with your provided list.
98 changes: 96 additions & 2 deletions docs/methods/Lean.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,102 @@
---
tags:
title: Lean Software Development
description: An Agile software development methodology that emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole.
tags:
- Method
- Agile
featured:
class: c
element: '<image-artifact imgsrc="/public/templates/risk-first/posts/lean.svg">Lean Software Development</image-artifact>'
method:
practices:
- tag: Analysis
reason: "Lean uses value stream mapping to analyze the flow of materials and information, identifying areas of waste."
use:
- Value Stream Mapping
- tag: Automation
reason: "Lean uses automation to eliminate waste and improve efficiency, especially in testing and deployment processes."
use:
- Pull Systems
- Automation
- tag: Change Management
reason: "Lean emphasizes managing changes effectively to ensure continuous improvement and adaptability."
- tag: Coding
reason: "Lean practices emphasize building quality in throughout the coding process to prevent defects."
use:
- Build Quality In
- tag: Configuration Management
reason: "Lean ensures consistency and quality across different environments through configuration management."
- tag: Debugging
reason: "Lean uses techniques like the 'Five Whys' to identify the root cause of defects and address them effectively."
use:
- Root Cause Analysis
- tag: Design
reason: "Lean uses set-based concurrent engineering to explore multiple design options and narrow down to the best solution."
use:
- Set-Based Concurrent Engineering
- tag: Estimation
reason: "Lean focuses on working in small, manageable batches to reduce cycle time and increase feedback, aiding in more accurate estimation."
use:
- Small Batch Sizes
- tag: Integration Testing
reason: "Lean builds quality in, and integration testing is part of ensuring quality from the beginning."
use:
- Build Quality In
- tag: Measurement
reason: "Lean uses empirical data to understand and improve the development process."
use:
- Empirical Process Control
- tag: Monitoring
reason: "Lean implements pull systems where work is pulled based on demand, ensuring that no work is done until it is needed."
use:
- Pull Systems
- tag: Pair Programming
reason: "Lean encourages collaboration through cross-functional teams."
use:
- Cross-Functional Teams
- tag: Performance Testing
reason: "Lean ensures that performance is built into the product from the beginning."
use:
- Build Quality In
- tag: Prioritising
reason: "Lean uses Kanban to prioritize and manage work."
use:
- Kanban
- tag: Prototyping
reason: "Lean uses set-based concurrent engineering to explore multiple options and narrow down to the best solution."
use:
- Set-Based Concurrent Engineering
- tag: Release Delivery
reason: "Lean focuses on delivering value to the customer as quickly as possible."
use:
- Deliver Fast
- tag: Retrospectives
reason: "Lean regularly reflects on and improves the development process through continuous improvement and Kaizen."
use:
- Continuous Improvement
- Kaizen
- tag: Security Testing
reason: "Lean ensures that security is built into the product from the beginning."
use:
- Build Quality In
- tag: Stakeholder Management
reason: "Lean emphasizes respecting people and engaging stakeholders."
use:
- Respect People
- tag: Unit Testing
reason: "Lean ensures that quality is built into the product from the beginning."
use:
- Build Quality In
---
![Draft](/img/state/draft.png)

<MethodIntro details={frontMatter} />

## Description

> "Lean software development is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System,[1] it is emerging with the support of a pro-lean subculture within the agile community. Lean offers a solid conceptual framework, values and principles, as well as good practices, derived from experience, that support agile organizations." - [Lean software development, _Wikipedia_](https://en.wikipedia.org/wiki/Lean_software_development)
Lean Software Development emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole. Key practices in Lean include value stream mapping, pull systems, Kanban, small batch sizes, continuous improvement, root cause analysis, and respecting people. Lean focuses on improving efficiency and quality through these principles and practices.

## See Also

<TagList tag="Lean Software Development" />
92 changes: 92 additions & 0 deletions docs/methods/Scrum.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
title: Scrum
description: An Agile framework for managing and completing complex projects.
tags:
- Method
- Agile
featured:
class: c
element: '<image-artifact imgsrc="/public/templates/risk-first/posts/scrum.svg">Scrum</image-artifact>'
method:
practices:
- tag: Approvals
reason: "Scrum requires approval during sprint reviews and at the end of each sprint."
use:
- Sprint Review
- tag: Automation
reason: "Automation of tests and integration (CI/CD) is common in Scrum practices."
- tag: Change Management
reason: "Changes are managed through the product backlog and sprint planning."
- tag: Coding
reason: "Coding is a core activity in Scrum as it is in any software development framework."
- tag: Configuration Management
reason: "Configuration management helps maintain the consistency of the product's performance."
- tag: Debugging
reason: "Debugging is an essential part of the development process in Scrum."
- tag: Demo
reason: "Scrum includes sprint reviews which act as demos for stakeholders."
- tag: Documentation
reason: "Documentation is produced, but Scrum values working software over comprehensive documentation."
- tag: Estimation
reason: "Estimation is performed during sprint planning using techniques like story points."
use:
- Planning Poker
- Sprint Planning
- tag: Integration Testing
reason: "Integration testing is part of the Definition of Done in Scrum."
- tag: Issue Management
reason: "Issues are logged and tracked through tools like JIRA to ensure they are resolved promptly."
use:
- Sprint Backlog
- tag: Measurement
reason: "Scrum uses various metrics like burndown charts to measure progress."
use:
- Burndown Chart
- Definition of Done
- tag: Monitoring
reason: "Monitoring progress through daily stand-ups and sprint reviews is integral to Scrum."
use:
- Daily Stand-ups
- tag: Prioritising
reason: "Scrum prioritizes work during sprint planning and focuses on delivering a potentially shippable product increment."
use:
- Sprint Planning
- Sprint Goal
- Product Backlog Refinement
- tag: Refactoring
reason: "Refactoring is encouraged to maintain code quality within Scrum."
- tag: Regression Testing
reason: "Regression testing is part of the Definition of Done to ensure changes don't break existing functionality."
- tag: Requirements Capture
reason: "Capturing requirements is done through user stories and the product backlog in Scrum."
use:
- User Stories
- tag: Retrospectives
reason: "Retrospectives are a key part of Scrum for continuous improvement."
use:
- Sprint Retrospective
- tag: Review
reason: "Scrum includes regular reviews in the form of sprint reviews and retrospectives."
- tag: Release Delivery
reason: "Scrum focuses on frequent releases, with potentially shippable increments delivered at the end of each sprint."
- tag: Unit Testing
reason: "Unit testing is part of the Definition of Done in Scrum."
- tag: Code Reviews
reason: "Code reviews can be part of the development practices within Scrum."
- tag: Stakeholder Management
reason: "Stakeholder engagement is critical in Scrum, especially through the role of the Product Owner."
- tag: Version Control
reason: "Version control is a best practice in software development, including in Scrum."
---

<MethodIntro details={frontMatter} />

## Description

> "Scrum prescribes for teams to break work into goals to be completed within time-boxed iterations, called sprints. Each sprint is no longer than one month and commonly lasts two weeks. The scrum team assesses progress in time-boxed, stand-up meetings of up to 15 minutes, called daily scrums. At the end of the sprint, the team holds two further meetings: one sprint review to demonstrate the work for stakeholders and solicit feedback, and one internal sprint retrospective. A person in charge of a scrum team is typically called a scrum master." - [Scrum (software development), _Wikipedia_](https://en.wikipedia.org/wiki/Scrum_(software_development))
Scrum is an Agile framework that focuses on iterative progress through small, cross-functional teams. Key practices in Scrum include sprint planning, daily stand-ups, sprint reviews, and retrospectives. Scrum emphasizes collaboration, flexibility, and continuous improvement, making it a popular choice for managing complex projects.

## See Also

<TagList tag="Scrum" />
4 changes: 2 additions & 2 deletions docs/methods/Start.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ title: Methodology
description: Some rough groupings of practices by methodology.

featured:
class: bg1
element: '<image-artifact imgsrc="/public/templates/risk-first/redesign/risks/complexity_risk_v2.svg">Track 6: On Complexity</image-artifact>'
class: c
element: '<image-artifact imgsrc="/public/templates/risk-first/redesign/artifacts/methodology_v2.svg">Methods</image-artifact>'
layout: categories
cat: Complexity
tags:
Expand Down
56 changes: 54 additions & 2 deletions docs/methods/Waterfall.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,57 @@
---
tags:
title: Waterfall Development
description: A traditional linear and sequential development methodology where each phase must be completed before moving on to the next.
tags:
- Method
- Traditional
featured:
class: c
element: '<image-artifact imgsrc="/public/templates/risk-first/posts/waterfall.svg">Waterfall Development</image-artifact>'
method:
practices:
- tag: Approvals
reason: "Waterfall emphasizes formal reviews and sign-offs at the end of each phase to ensure that all stakeholders agree on the work completed and the plans for the next phase."
use:
- Review and Sign Off
- tag: Coding
reason: "The implementation phase in Waterfall involves converting design documents into functional software through coding."
use:
- Implementation
- tag: Design
reason: "The system design phase in Waterfall includes both high-level and low-level design to create a blueprint for the implementation phase."
use:
- System Design
- tag: Documentation
reason: "Detailed documentation is created and maintained throughout each phase in Waterfall to ensure clarity and traceability."
- tag: Issue Management
reason: "The maintenance phase in Waterfall involves managing issues and bugs that arise post-deployment and making necessary updates and improvements."
use:
- Maintenance
- tag: Prioritising
reason: "Waterfall involves detailed project planning and management, which includes prioritizing tasks to ensure the project progresses according to schedule and within budget."
use:
- Project Management and Planning
- tag: Release Delivery
reason: "The deployment phase in Waterfall involves releasing the completed software product to the production environment for end-users."
use:
- Deployment
- tag: Requirements Capture
reason: "The requirements gathering and analysis phase in Waterfall involves collecting and documenting all possible requirements of the system to be developed."
- tag: User Acceptance Testing
reason: "The integration and testing phase in Waterfall includes system and acceptance testing to ensure the product meets the specified requirements and the needs of the users."
use:
- Integration and Testing
- User Acceptance Testing
---
![Draft](/img/state/draft.png)

<MethodIntro details={frontMatter} />

## Description

> "The waterfall model is a breakdown of development activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks... The waterfall model is the earliest SDLC approach that was used in software development." - [Waterfall model, _Wikipedia_](https://en.wikipedia.org/wiki/Waterfall_model)
Waterfall Development is a traditional project management methodology that follows a linear and sequential approach. Key phases in Waterfall include requirements gathering and analysis, system design, implementation, integration and testing, deployment, and maintenance. Each phase must be completed before the next phase begins, ensuring a structured and disciplined approach to software development.

## See Also

<TagList tag="Waterfall" />
Loading

0 comments on commit 29e08be

Please sign in to comment.