Sustainability

From CitconWiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.