Sustainability

From CitconWiki
Jump to navigationJump to search

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)

Answers:

 * 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

Refs:

 * Influence - The Psychology of Persuasion - Chaldini
 * The power of intuition - Gary Klein
 * Comparison of gambling and code & fix coding.