Seven Pillars

Seven Pillars of Wisdom is the autobiographical account of the experiences of British soldier T. E. Lawrence ("Lawrence of Arabia"), while serving as a liaison officer with rebel forces during the Arab Revolt against the Ottoman Turks of 1916 to 1918. Charles Hill has called the Seven Pillars "a novel traveling under the cover of autobiography," capturing Lawrence's highly personal version of the historical events described in the book. The title comes from the Book of Proverbs, 9:1: "Wisdom hath builded her house, she hath hewn out her seven pillars" (KJV). Prior to the First World War, Lawrence had begun work on a scholarly book about seven great cities of the Middle East, to be titled Seven Pillars of Wisdom. When war broke out, it was still incomplete and Lawrence stated that he ultimately destroyed the manuscript. Later, during the Arab Revolt of 1917–18, Lawrence based his operations in Wadi Rum (now a part of Jordan), and one of the more impressive rock formations in the...

easy to use/learn

simple

functional completeness

overall coherence

Evolutionary Design

Domain-Driven Design

Persistent

JDUF-just enough design up front

Code Smells

Don't Repeat Yourself

Law of Demeter (Tell Don't Ask)

Metrics

Test Coverage

Lines of Code (sphags)

Static Code Analysis Tools, Find Bugs Report, Cyclomatic Complexity

Collaboration

Sufficient communication

Frequent

Business Value

validating

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, Cycle Time, pull mentality, Kanban

Time management, Pomodoro, Getting Things Done, Timeboxes

customer satisfaction, split testing

avoiding waste (muda)

Extra features

Heavy specs

Handoffs

Waiting

Bugs

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

Re-creating knowledge

Supportive Culture

Conflict management

diagnosis, dissapointment, friction, disconnect, disagreement

productive discussion, Consent-based decision making, Knowledge vs Information, Facilitation

respect

Craftsmanship Manifesto

Declaration of Interdependence

Agile Manifesto

growing trust

individuals and interactions over processes and tools

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

commitment

Nudging for Improvement, Jiggling (Change Agent)

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

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

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

permanent team attitude, improves productivity, enhances commitment, shared history

Space to learn

slack

accepting failure

sustainable pace

risk taking

Technical Excellence

Simple Design

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

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

Craftsmanship, Coding by Intention, Clean Code, Boy Scout Rule, Source Code Conventions

Refactoring

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

Common Refactorings, Compose Method, Extract Method, Inline Method, Rename

Database Refactoring, testing databases, abstracting away from dbms

Test Refactoring

Modular Design

Testing

developer tests, Unit Testing, xUnit, Design-for-Testability

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

customer tests, Acceptance Testing, Exploratory Testing, Testing Quadrants, Supporting Programming, Critiquing the Product, Technology Facing, Business Facing

Test Automation, Test Automation Patterns, Test Doubles, 3A Pattern: Arrange, Act, Assert, Test Harness for Legacy Code, test seams, dependency breaking, sprouts and strangling

Non-functional requirements

Performance / Response Time

Load / Capacity

Robustness / Long Duration

Robustness / Fault Tolerance

Self Improvement

intentional practice

book discussions

online communities

Reading

Code Kata

local user groups

open source projects

conferences

retroflection

Daily self reflection

Self Management

Relational vs Hierarchical Thinking

Common Pitfalls

Self Awareness

balance

Keeping Motivated, autonomy, mastery, purpose

work/ health/ friends

social captial (networking)

slack

Product

vision

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

explicit goals, managed scope

measured progress, success metrics, split testing

solves real/valuable problems

Confidence

Definition of Done

working software

validated learning

High Quality, Zero Bugs

Visibility

Storyboard

Informative Build

Burn-up/down charts

transparency, open decision making, continuous improvement, Plan Do Check Act

Reliable Cadence

Using Version Control, Distributed, Optimistic vs Pessimistic Locking, branching

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

Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Sign Up For Free

Already have an account? Sign In


-
+