Seven Pillars

(c)agile skills project

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Seven Pillars por Mind Map: Seven Pillars

1. Static Code Analysis Tools

1.1. Find Bugs Report

1.2. Cyclomatic Complexity

2. Database Refactoring

2.1. testing databases

2.2. abstracting away from dbms

3. customer satisfaction

3.1. split testing

4. Bugs

5. Relational vs Hierarchical Thinking

6. Performance / Response Time

7. Non-functional requirements

7.1. Load / Capacity

7.2. Robustness / Long Duration

8. Critiquing the Product

8.1. Test Harness for Legacy Code

8.1.1. test seams

8.1.2. dependency breaking

8.1.3. sprouts and strangling

9. easy to use/learn

9.1. simple

9.2. functional completeness

9.3. overall coherence

9.3.1. Evolutionary Design

10. Domain-Driven Design

11. Persistent

12. JDUF-just enough design up front

13. Code Smells

13.1. Don't Repeat Yourself

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

13.3. Metrics

13.3.1. Test Coverage

13.3.2. Lines of Code (sphags)

14. Collaboration

14.1. Sufficient communication

14.2. Frequent

15. Business Value

15.1. validating

15.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

15.1.2. Time management Pomodoro Getting Things Done Timeboxes

15.2. avoiding waste (muda)

15.2.1. Extra features

15.2.2. Heavy specs

15.2.3. Handoffs

15.2.4. Waiting

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

15.2.6. Re-creating knowledge

16. Supportive Culture

16.1. Conflict management

16.1.1. diagnosis dissapointment friction disconnect disagreement

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

16.2. respect

16.2.1. Craftsmanship Manifesto

16.2.2. Declaration of Interdependence

16.2.3. Agile Manifesto

16.2.4. growing trust

16.2.5. individuals and interactions over processes and tools

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

16.3. commitment

16.3.1. Nudging for Improvement Jiggling (Change Agent)

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

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

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

16.3.5. permanent team attitude improves productivity enhances commitment shared history

16.4. Space to learn

16.4.1. slack

16.4.2. accepting failure

16.4.3. sustainable pace

16.4.4. risk taking

17. Technical Excellence

17.1. Simple Design

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

17.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

17.1.3. Craftsmanship Clean Code Boy Scout Rule Source Code Conventions

17.2. Refactoring

17.2.1. SOLID Single Responsibility Principle Coding by Intention Open Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle

17.2.2. Common Refactorings Compose Method Extract Method Inline Method Rename

17.2.3. Test Refactoring

17.2.4. Modular Design

17.3. Testing

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

17.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

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

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

18. Self Improvement

18.1. intentional practice

18.1.1. book discussions

18.1.2. online communities

18.1.3. Reading

18.1.4. Code Kata

18.1.5. local user groups

18.1.6. open source projects

18.1.7. conferences

18.2. retroflection

18.2.1. Daily self reflection

18.2.2. Self Management

18.2.3. Common Pitfalls

18.2.4. Self Awareness

18.3. balance

18.3.1. Keeping Motivated autonomy mastery purpose

18.3.2. work/ health/ friends

18.3.3. social captial (networking)

18.3.4. slack

19. Product

19.1. vision

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

19.1.2. explicit goals managed scope

19.1.3. measured progress success metrics split testing

19.2. solves real/valuable problems

20. Confidence

20.1. Definition of Done

20.1.1. working software

20.1.2. validated learning

20.1.3. High Quality Zero Bugs

20.2. Visibility

20.2.1. Storyboard

20.2.2. Informative Build

20.2.3. Burn-up/down charts

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

20.2.5. Reliable Cadence

20.2.6. Using Version Control Distributed Optimistic vs Pessimistic Locking branching

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