Sustainability: Meeting the needs of the present without compromising the ability of future generations to meet their own needs --Bruntland Commission
Horror Stories / Issues:
* Tests not well factored * Too much duplication * Too much abstraction * Dependencies between tests * Mocks that mock something that doesn't exist * Untested test frameworks * Monolithic build * Untested build scripts * Convoluted * Magic / Convenient * Feedback * WHy did it fail? * Hard to read the logs * What do we depend on? * Who depends on us? * (Nobody wants to be the) Build Wizard * Separated from source * Requirements cruft - do we still need this? WHo could we know? * Creep * (Agile) Value Fetish * anxiety to deliver - from where? * rewards for (the wrong) heroes * lack of slack * (Lack of) Visibility of problems (to management)
* Refactor, Refactor, Refactor (build scripts) * Keep dependencies up to date * Speed / Performance / Feedback: * Rank code by how long since a test last failed. Move stable stuff into a build that's run less frequently * Products: Selenium Grid / Dever * Parallelize? * Collective ownership: should I add this test? * Build Quality: * Can we measure it? * Tests & Build get same status as the production code * better even? * Fresh eyes * Self respect * Retrospectives - give visibility of problems to management
* Influence - The Psychology of Persuasion - Chaldini * The power of intuition - Gary Klein * Comparison of gambling and code & fix coding.