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...
Evolutionary Design
Test Coverage
Lines of Code (sphags)
Static Code Analysis Tools, Find Bugs Report, Cyclomatic Complexity
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
Extra features
Heavy specs
Handoffs
Waiting
Bugs
Multi-step analyze-dev-test-verify...
Re-creating knowledge
diagnosis, dissapointment, friction, disconnect, disagreement
productive discussion, Consent-based decision making, Knowledge vs Information, Facilitation
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
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
slack
accepting failure
sustainable pace
risk taking
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
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
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
Performance / Response Time
Load / Capacity
Robustness / Long Duration
Robustness / Fault Tolerance
book discussions
online communities
Reading
Code Kata
local user groups
open source projects
conferences
Daily self reflection
Self Management
Relational vs Hierarchical Thinking
Common Pitfalls
Self Awareness
Keeping Motivated, autonomy, mastery, purpose
work/ health/ friends
social captial (networking)
slack
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
working software
validated learning
High Quality, Zero Bugs
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