Scrum and Test-driven development

  • 9,395 views
Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
9,395
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Software Development Methodologies: Scrum and Test-Driven Development Gábor Török, Agil Eight Oct 15, 2007 Forum Nokia Developer Day, October 2007
  • 2. Agile Software Development
    • “ Agile methods are a family of development processes, not a single approach to software development. ” ( Wikipedia )
    • Some basic principles
      • Frequent delivery == short iterations
      • Close (preferably face-to-face) cooperation with business people and developers
      • Simplicity
      • Self-organizing teams
      • Regular adaptation to changing circumstances
      • Trusted people , fewer but more competent
    • Cost-effective , an answer to the changing needs of recent years: producing quality software in shorter time, react on rapidly changing requirements more efficiently.
    Developer Day, October 14 th – 15 th 2007
  • 3. Agile Software Development
    • Whilst being incremental agile development differs from other methods in that its time periods are measured in weeks rather than months and work is performed in a highly collaborative manner.
    • Compared to the Waterfall model
      • The waterfall model is the most predictive of the methodologies, stepping through requirements capture, analysis, design, coding, and testing in a strict, pre-planned sequence.
      • Waterfall model is inflexible : commitments are made early on, and it is difficult to react to changes in requirements.
      • Agile methods, in contrast, produce completely developed and tested features (a very small subset of the whole, though)
    Developer Day, October 14 th – 15 th 2007
  • 4. Scrum
    • “ Scrum is an iterative, incremental process for developing any product or managing any work.” ( www.controlchaos.com )
    • Its attributes are
      • Wrapper for existing engineering practices
      • Produces a potentially shippable set of functionality at the end of every iteration
      • Short iterations, typically between 2-4 weeks
      • Cross-functional team, close co-operation with customer
      • Prefers rapidly changing requirements
    Developer Day, October 14 th – 15 th 2007
  • 5. Scrum
    • Characteristics of Scrum
      • Product backlog: prioritized list of tasks to be done
      • Sprint: iteration of work, typically between 2-4 weeks
      • Sprint planning session/review: meeting for planning the upcoming sprint or reviewing what the team has achieved
      • Daily scrum: short daily meeting for team to synchronize
    • Roles
      • Product Owner: representative of customer/stakeholders
      • ScrumMaster: facilitator for the team and product owner
      • Team: people doing the actual work
    • Burndown chart: shows remaining work over time. X axis is time, Y axis is work.
    Developer Day, October 14 th – 15 th 2007
  • 6. Scrum Developer Day, October 14 th – 15 th 2007 ( www.controlchaos.com )
  • 7.
    • A software development technique that involves repeatedly first writing a test case and then implementing only the code necessary to pass the test.
    • As an aspect of Extreme Programming (XP), TDD requires that an automated unit test is written before each aspect of the code itself.
    • Development cycle
      • Add a test
      • Run all tests and see the new one fail
      • Write code that satisfies test
      • Run all tests again and see them succeed
      • Refactor if neccessary
    Test-Driven Development (TDD) Developer Day, October 14 th – 15 th 2007
  • 8.
    • Benefits
      • Less use of a debugger
      • Less defects
      • Build software better and faster  it drives design and looks functionality from user's point of view
    • Limitations
      • Code quality is much based on the quality of the test itself  discussions and code reviews are needed to avoid low-quality code
      • TDD is difficult to use in some situations, such as graphical user interface or relational database  mock objects can help
    • Mock objects are simulating objects that mimic the behavior of real objects in controlled ways. The aim is that production code should be unaware of whether it's using mock or real objects.
    Test-Driven Development (TDD) Developer Day, October 14 th – 15 th 2007
  • 9.
    • Tools (Symbian)
      • SymbianOSUnit from Penrillian
        • Based on open source CxxUnit  developers may be familiar with it
      • Unit++
        • Also open source: http://unitpp.sourceforge.net/
      • EUnit from SysopenDigia (commercial)
      • etc.
    • No mock object framework for Symbian , there are some for C++ in general (e.g. Mockpp)
    Test-Driven Development (TDD) Developer Day, October 14 th – 15 th 2007
  • 10. Continuous Integration (CI)
    • “ A software development practice where members of a team integrate their work frequently , usually each person integrates at least daily.” (Martin Fowler)
    • CI leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly  reduced risks .
    • On completing the definition
      • Automated, self-testing and fast builds
      • Make it easy for anyone to get the latest executable
      • Automate deployment
      • Everyone can see what's happening: progress, statistics on code coverage/tests, etc.
    Developer Day, October 14 th – 15 th 2007
  • 11. Continuous Integration (CI)
    • Tools (Symbian)
      • First of all, there are no CI tools around specific for Symbian development
      • CruiseControl
        • Java (Ant, JUnit), .NET (NAnt, NUnit) or Ruby-based versions
        • Open Source
      • Anthill
        • Java- and Ant-based
        • Open Source
      • Continuum
        • Java- and Ant/Maven-based
        • Open Source
    Developer Day, October 14 th – 15 th 2007
  • 12. A Working Solution Developer Day, October 14 th – 15 th 2007 CruiseControl Build tool Build script Ant SDK with build tools SVN checkout clean build test package builds reports notification / monitoring commits changes SymbianAnt SymbianOSUnit Symbian performs uses uses uses gets data from executes artifacts
  • 13. A Working Solution
    • SDK
      • E.g. S60, UIQ
    • Subversion
      • Open source version control system
      • http://subversion.tigris.org/
    • CruiseControl
      • Tool for a continuous build process (includes Ant)
      • http://cruisecontrol.sourceforge.net/
    • SymbianOSUnit
      • Popular C++ unit testing framework, open source
      • http://www.symbianosunit.co.uk/
    • SymbianAnt
      • Glue between Ant (CruiseControl) and SymbianOSUnit
      • http://www.agileight.com/
    Developer Day, October 14 th – 15 th 2007
  • 14. More Information About Scrum and TDD
    • Scrum
      • http://www.controlchaos.com/
      • http://www.scrumalliance.org/
      • Agile Software Development with SCRUM by Ken Schwaber
    • Test-Driven Development
      • http://www.testdriven.com/
      • http ://www.agiledata.org/essays/tdd.html
      • Test Driven Development: By Example by Kent Beck
    Developer Day, October 14 th – 15 th 2007
  • 15. Personal Information
    • Gábor Török
    • Company: Agil Eight
    • Company e-mail: [email_address]
    • Company URL: http://www.agileight.com/
    • Private e-mail: [email_address]
    • Blog: http://mobile-thoughts.blogspot.com/
    Developer Day, October 14 th – 15 th 2007
  • 16. Thank you! Developer Day, October 14 th – 15 th 2007