Whats in the toolbox of a successful software craftsman - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Whats in the toolbox of a successful software craftsman

Description:

What's in the toolbox of a successful software craftsman ... StarTeam for ScrumWorks, JBuilder for Eclipse, Exactor for FitNesse and Selenium, ... – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 27
Provided by: xpd3
Category:

less

Transcript and Presenter's Notes

Title: Whats in the toolbox of a successful software craftsman


1
Whats in the toolbox of a successful software
craftsman
  • XPDay 2007 Technical Experience
    SessionFabrizio Cannizzo, Nathan Fisher,
    Gabriela Marcionetti, Paul Moser

2
Introduction
  • 4 of a distributed team
  • 40 members
  • split in sub-teams
  • London, Ipswich, Belfast, Denver (Colorado, US)
  • 2y project
  • Java, .NET, Ruby, PHP, Python,
  • The product
  • Web21C SDK
  • Make phones ring in one line of code
  • http//web21c.bt.com

3
About BT
  • Global provider of network-centric solutions,
    services and products
  • (2006/07) 36 of revenues from IT services sales
  • BT Company Stats
  • 100,000 staff globally (25,000 outside UK)
  • Operate in 170 countries
  • 20 million ( Residential. Business Customers)
  • Annual Turnover 20 Billion (2007)
  • IT Organisation BT Design
  • 8000 People
  • 4000 on customer facing IT
  • 6000 subcontract staff in India

4
Experience
  • XP/Scrum
  • Tools and practices
  • Open source, Free to use, Customisable
  • Manage team communication
  • Distributed, Highly motivated, Believers in Agile
  • Comply with agile practices
  • High visibility, Fast feedback, Complete
    automation
  • Evolving set of tools and practices
  • Some previously used tools were abandoned in
    favour of new ones
  • Examples StarTeam for ScrumWorks, JBuilder for
    Eclipse, Exactor for FitNesse and Selenium,

5
Toolbox
6
Practices vs. Tools
7
Eclipse IDE for Java development
  • Tips for Fast feedback and automation in Eclipse
  • Commit to Subversion .project and .classpath
  • Configure Eclipse and Ant independently from the
    development workstation environment
  • Use Eclipse to run Unit tests and Metrics before
    committing the recently modified files
  • Dont make Eclipse build and Ant build dependant
    each other
  • Use Eclipse plug-ins to collect the same Metrics
    collected in the main Ant build

8
Eclipse IDE for Java development
9
Eclipse IDE for Java
  • So
  • Automate code base sharing
  • Speed up feedback by sharing config and running
    plug-ins
  • But what are the problems?
  • Dependence on Eclipse platform
  • But remember ANT still rules
  • Each Eclipse project has only one build directory
  • Possible class shadowing
  • Forces a naming convention on resources in the
    classpath
  • Ant build dir structure is way more flexible

10
ScrumWorks
  • Emphasises simplicity
  • All stories are the same, and treated in the same
    way no separate bug tracking system
  • Ordering is the only method of determining
    priority no separate settings for priority and
    importance
  • The backlog is visible to everyone and everyone
    can add to the backlog and access it

11
ScrumWorks
  • Burn down chart
  • Same information for those inside and outside of
    the team
  • Easy to see work remaining for the iteration
  • Provides information on how the iteration played
    out
  • Useful to examine during the retrospective, and
    to compare iterations and look at trends
  • Access historic data (charts of previous
    iterations)

12
ScrumWorks
  • A burn down chart

13
ScrumWorks
  • Another burn down chart

14
ScrumWorks
  • Cons
  • No ability to add un-estimated stories/tasks
  • No ability to see who added stories and when.
  • Forces tasks to be estimated in multiple of hours

15
CruiseControl
  • Monitors SVN and runs an Ant build if something
    changes
  • Ant build output can be merged into the reporting
    web application
  • Alerting mechanism after build completion
  • Peers are notified for unsuccessful builds
  • Tags successful builds in source control
  • Builds and publishes deployment artefacts

16
CruiseControl
  • Automation
  • Build happens Automatically every check-in
  • The process looks after itself
  • JMX console to drive the CruiseControl server
  • Visibility
  • All can access the (customisable) reports on the
    project builds
  • Everybody can subscribe to alerts
  • Produces reports that are integrated into the
    build report page
  • Unit tests and CAT outputs
  • Metrics
  • SVN repository modifications
  • Access to past build reports
  • Feedback
  • Rapid feedback of build status after every build
  • Depending on the total build time
  • Runs the same build that can be run in the
    developers PC

17
CruiseControl
  • Extensibility
  • Custom reports and artefacts
  • Can run any Ant build script
  • Multiplatform and behaves similarly on each
  • Java, .NET, Ruby,
  • No vendor tie-in
  • Most of the configuration is coded in XSLT and
    Ant XML

18
CruiseControl
  • Cons
  • Can be difficult to setup and configure
  • Seems slower than building locally
  • Sometime incongruence between platform versions
  • Interface can be a bit clunky

19
Selenium
  • Runs in the browser
  • Accurate feedback
  • Support multiple browsers on multiple OS
  • 3 modes of running
  • Selenium IDE
  • Selenium on Rails
  • Selenium Remote Control

20
Selenium IDE
  • Easy to automate tests
  • Record/playback
  • Not complete automation
  • Firefox only
  • Limited to just testing stuff in the browser
  • Difficult to maintain tests

21
Selenium-on-Rails
  • Visible test results
  • Test results published
  • Complete automation (depending on what you have
    to test)
  • Works out of the box
  • Must be using Rails
  • Limited to just testing stuff in the browser (or
    awkward workarounds)
  • Immediate feedback
  • Easily automatically run from the build
  • Can run on developers workstation
  • Difficult to trace cause of failing test

22
Selenium Remote Control
  • Visible test results
  • Results can be published
  • Complete automation
  • Run automatically from the build, supports
    multiple languages
  • Can test other things outside of the browser
  • Immediate feedback
  • Easily automatically run from the build
  • Can run on developers workstation

23
What else is in the toolbox
  • Fitnesse
  • Wiki
  • TiddlyWiki, Confluence
  • Communication
  • BT MeetMe
  • MS LiveMeeting
  • MS Communicator
  • Webcams
  • Entertainment
  • Coffee maker
  • Vending machine
  • MS XBox
  • Foosball

24
Conclusions
  • Tools
  • Eclipse
  • ScrumWorks
  • CruiseControl
  • Selenium
  • Practices
  • Project Status Visibility
  • Complete Automation
  • Immediate Feedback
  • It works for us
  • Always evolving and changing

25
  • Questions and Answers
  • ?
  • (please come and talk to us at our poster, too)

26
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com