Difference between revisions of "What is the right mix of practices and tools for introducing CI"
From CitconWiki
Jump to navigationJump to search (cnaact) |
(monact) |
||
Line 1: | Line 1: | ||
+ | lialererch | ||
noc4tcoeldr | noc4tcoeldr | ||
nozelviac | nozelviac | ||
Line 10: | Line 11: | ||
* Remove some obstacles to communication and collaboration | * Remove some obstacles to communication and collaboration | ||
** Increase happiness | ** Increase happiness | ||
− | ** Overcome | + | ** Overcome âÃÂÃÂculture of blameâÃÂà|
** Accountability and empowerment | ** Accountability and empowerment | ||
* Improve visibility and assurance of code quality | * Improve visibility and assurance of code quality | ||
Line 33: | Line 34: | ||
** Light-hearted embarrassment tokens / achievement awards | ** Light-hearted embarrassment tokens / achievement awards | ||
* Measurements | * Measurements | ||
− | ** | + | ** âÃÂÃÂTasks completed each periodâÃÂà(e.g. Stories per iteration) |
** Look at valuable quantitative metrics (e.g. Cyclomatic complexity) | ** Look at valuable quantitative metrics (e.g. Cyclomatic complexity) | ||
* Code reviews | * Code reviews | ||
− | ** Set the context for positive outcome | + | ** Set the context for positive outcome âÃÂàitâÃÂÃÂs not for the mob-flaming of the code author or their skills |
− | ** Impromptu: | + | ** Impromptu: âÃÂÃÂHey there, whatchya doin?âÃÂà|
** Ask questions to understand design intent | ** Ask questions to understand design intent | ||
** Ask someone to look at yours | ** Ask someone to look at yours | ||
** Have the strong developers demonstrate good examples for others to learn from | ** Have the strong developers demonstrate good examples for others to learn from | ||
** Knowledge sharing | ** Knowledge sharing | ||
− | * | + | * DonâÃÂÃÂt fall for overly-draconian style rules early on |
== Tools == | == Tools == | ||
Line 53: | Line 54: | ||
** Coverage (improving trend) | ** Coverage (improving trend) | ||
** Change notification | ** Change notification | ||
− | ** | + | ** âÃÂÃÂBasicâÃÂàcode consistency checks |
* Consistent code | * Consistent code | ||
Line 70: | Line 71: | ||
=== Later === | === Later === | ||
− | * | + | * âÃÂÃÂProblematic codeâÃÂàdetection |
** Findbugs | ** Findbugs | ||
** Google singleton collector | ** Google singleton collector | ||
− | ** Complexian, | + | ** Complexian, JeffâÃÂÃÂs âÃÂÃÂCrap4JâÃÂà|
** Simian | ** Simian | ||
** PPMD | ** PPMD |
Revision as of 08:14, 13 February 2008
lialererch noc4tcoeldr nozelviac Facilitated by Jeff Frederick
What pain will they address?
- Expensive (latent) release cycles
- Make it easier to do what I want to do
- Spend less time doing mundane activities
- Engage in higher-value activities rather than repetitive manual tasks
- Remove some obstacles to communication and collaboration
- Increase happiness
- Overcome âÃÂÃÂculture of blameâÃÂÃÂ
- Accountability and empowerment
- Improve visibility and assurance of code quality
- Sense of accomplishment
- More confidence / courage
- Reduce need to re-write due to lack of knowledge / hit-by-bus
- Ship more often, happier customer, underpants gnomes PROFIT!
Where do I start
- Recognise we have a problem
- Consensus on what the problems are and that we want to change
- Identify the outcomes we would like to have
- Listen & understand how the issues impact others
- Change behaviours
- Empathetic, trust-building
- Pick some easy wins to build momentum
- May make it feel worse before it gets better
- Frequent retrospectives (perhaps daily)
- Talk to each other (across teams). Brown bags, socialise, catch up over lunch
- Co-located cross-functional team
- Light-hearted embarrassment tokens / achievement awards
- Measurements
- âÃÂÃÂTasks completed each periodâÃÂà(e.g. Stories per iteration)
- Look at valuable quantitative metrics (e.g. Cyclomatic complexity)
- Code reviews
- Set the context for positive outcome âÃÂàitâÃÂÃÂs not for the mob-flaming of the code author or their skills
- Impromptu: âÃÂÃÂHey there, whatchya doin?âÃÂÃÂ
- Ask questions to understand design intent
- Ask someone to look at yours
- Have the strong developers demonstrate good examples for others to learn from
- Knowledge sharing
- DonâÃÂÃÂt fall for overly-draconian style rules early on
Tools
To Start
- The Basics
- Unit tester (e.g. JUnit)
- Builder (e.g. Ant)
- CI server (e.g. CC)
- Coverage (improving trend)
- Change notification
- âÃÂÃÂBasicâÃÂàcode consistency checks
- Consistent code
- Jalopy
- Checkstyle
- IntelliJ inspections
- Change set notification, review tools
- SCM commit triggers
- FishEye
- RSS
- Coverage
- Clover, Cobertura
- Emma
Later
- âÃÂÃÂProblematic codeâÃÂàdetection
- Findbugs
- Google singleton collector
- Complexian, JeffâÃÂÃÂs âÃÂÃÂCrap4JâÃÂÃÂ
- Simian
- PPMD
- Test veracity
- Agitator
- Jester
- What files are being changed by others?
- Crucible
- Conflict
- Profiling, performance tuning
- JProbe, etc