Seven Pillars

(c)agile skills project

Get Started. It's Free
or sign up with your email address
Rocket clouds
Seven Pillars by Mind Map: Seven Pillars

1. customer satisfaction

1.1. split testing

2. Bugs

3. Relational vs Hierarchical Thinking

4. Performance / Response Time

5. Non-functional requirements

5.1. Load / Capacity

5.2. Robustness / Long Duration

6. Critiquing the Product

6.1. Test Harness for Legacy Code

6.1.1. test seams

6.1.2. dependency breaking

6.1.3. sprouts and strangling

7. easy to use/learn

7.1. simple

7.2. functional completeness

7.3. overall coherence

7.3.1. Evolutionary Design

8. Domain-Driven Design

9. Persistent

10. JDUF-just enough design up front

11. Code Smells

11.1. Don't Repeat Yourself

11.2. Law of Demeter (Tell Don't Ask)

11.3. Metrics

11.3.1. Test Coverage

11.3.2. Lines of Code (sphags)

11.3.3. Static Code Analysis Tools Find Bugs Report Cyclomatic Complexity

12. Collaboration

12.1. Sufficient communication

12.2. Frequent

13. Business Value

13.1. validating

13.1.1. Release Management Flow Stories Story Estimation Story Splitting Story Writing Delivering In Small Slices Incremental Iterative Product Backlog Sprint Backlog frequent delivery Basic Throughput Accounting Cadence Limiting Work in Progress Optimize the whole Value Stream Mapping Kanban

13.1.2. Time management Pomodoro Getting Things Done Timeboxes

13.2. avoiding waste (muda)

13.2.1. Extra features

13.2.2. Heavy specs

13.2.3. Handoffs

13.2.4. Waiting

13.2.5. Multi-step analyze-dev-test-verify...

13.2.6. Re-creating knowledge

14. Supportive Culture

14.1. Conflict management

14.1.1. diagnosis dissapointment friction disconnect disagreement

14.1.2. productive discussion Consent-based decision making Knowledge vs Information Facilitation

14.2. respect

14.2.1. Craftsmanship Manifesto

14.2.2. Declaration of Interdependence

14.2.3. Agile Manifesto

14.2.4. growing trust

14.2.5. individuals and interactions over processes and tools

14.2.6. give teams what they need & trust them to get the job done

14.3. commitment

14.3.1. Nudging for Improvement Jiggling (Change Agent)

14.3.2. Patrick Lencioni’s Five Dysfunctions of a team Absence of Trust Fear of Conflict Lack of Commitment Avoidance of Accountability Inattention to Results

14.3.3. help Knowing when you're blocked Ask first, conclude later Active Listening Mentoring Helping

14.3.4. whole team attitude Cross-functional teams generalizing specialists product focus responsibility autonomy

14.3.5. permanent team attitude improves productivity enhances commitment shared history

14.4. Space to learn

14.4.1. slack

14.4.2. accepting failure

14.4.3. sustainable pace

14.4.4. risk taking

15. Technical Excellence

15.1. Simple Design

15.1.1. KISS - Keep it simple, stupid! Architecture--simplest thing that could possibly work One level of abstraction

15.1.2. Design Patterns Evolutionary Iterative Development Emergent Design Refactoring to Framework Avoid Speculative Generality MVP / MVC Patterns Separation of Concerns FCoI - Favour Composition over Inheritance Modeling CRC (class responsibility collaborator) cards UML diagrams whiteboard discussions

15.1.3. Craftsmanship Coding by Intention Clean Code Boy Scout Rule Source Code Conventions

15.2. Refactoring

15.2.1. SOLID Single Responsibility Principle Open Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle

15.2.2. Common Refactorings Compose Method Extract Method Inline Method Rename

15.2.3. Database Refactoring testing databases abstracting away from dbms

15.2.4. Test Refactoring

15.2.5. Modular Design

15.3. Testing

15.3.1. developer tests Unit Testing xUnit Design-for-Testability

15.3.2. test-first Test-Driven Development TDD Cycle - Red, Green, Refactor Which test next? TDD with GUIs Tests Used for Design Behavior-Driven Development StoryTest-Driven Development

15.3.3. customer tests Acceptance Testing Exploratory Testing Testing Quadrants Supporting Programming Robustness / Fault Tolerance Technology Facing Business Facing

15.3.4. Test Automation Test Automation Patterns Test Doubles 3A Pattern: Arrange, Act, Assert

16. Self Improvement

16.1. intentional practice

16.1.1. book discussions

16.1.2. online communities

16.1.3. Reading

16.1.4. Code Kata

16.1.5. local user groups

16.1.6. open source projects

16.1.7. conferences

16.2. retroflection

16.2.1. Daily self reflection

16.2.2. Self Management

16.2.3. Common Pitfalls

16.2.4. Self Awareness

16.3. balance

16.3.1. Keeping Motivated autonomy mastery purpose

16.3.2. work/ health/ friends

16.3.3. social captial (networking)

16.3.4. slack

17. Product

17.1. vision

17.1.1. clear problem domain Visualization and Presentation Techniques Wireframe/Paper Prototyping working directly with whole team

17.1.2. explicit goals managed scope

17.1.3. measured progress success metrics split testing

17.2. solves real/valuable problems

18. Confidence

18.1. Definition of Done

18.1.1. working software

18.1.2. validated learning

18.1.3. High Quality Zero Bugs

18.2. Visibility

18.2.1. Storyboard

18.2.2. Informative Build

18.2.3. Burn-up/down charts

18.2.4. transparency open decision making continuous improvement Plan Do Check Act

18.2.5. Reliable Cadence

18.2.6. Using Version Control Distributed Optimistic vs Pessimistic Locking branching

18.2.7. Continuous Integration (CI) CI Tools automated deployment automated build ten-minute build automated deployment frequent check-in