Recent site activity

Agile Methods


Blogs and Links

The links to web sites are:
The links to presentations are:

Agile Approach

The stated, accepted philosophy for systems development was that the development process is a well understood approach that can be planned, estimated, and successfully completed. This hypothesis has proven incorrect in practice. Agile methods assume that development processes are unpredictable, complicated processes that can only be roughly described as an overall progression. The agile approaches define the process as a loose set of activities that combines known, workable tools and techniques with the best that a development team can devise to build systems. Since these activities are loose, controls to manage the process and inherent risk are used. bbv software services applies the following proven approaches for software development.

  • Feature Driven Development FDD is used to specify the key functions of the product and provides a rough estimate of the development costs. The estimates are validated using the Delphi method.
  • Analysis and architectural design is performed using UML 2.0 and architectural patterns. The artifacts are a subset of UML and agile RUP. Documents should be online and linked together and not on paper.
  • Test Driven Development TDD and Behavior Driven Development BDD are used for detailed design and implementation
  • Agile concepts are used to plan and control the project. The customer's product owner team together with the team defines the functions part of the next release. A complete new release is delivered every two or three weeks. Upon completion the next features and identified risks are selected for resolution.
  • Automatic unit testing, regression testing and deployment are used to sustain the rhythm of iterations.
bbv software services champions the agile rules to develop an agreeable and successful working atmosphere. We favor (see the Agile Manifesto)
  • Individuals and interactions over processes and tools. The whole development team must collocated. State of the industry tools and components are used if they increase effectiveness
  • Working software over comprehensive documentation therefore integration, testing and deployment must be fully automated to sustain the iteration rhythm
  • Customer collaboration over contract negotiation to provide flexibility for changing requirements and priorities
  • Responding to change over following a plan
Regular software engineering activities are still performed in the context of iterations in agile methods

Scrum Agile Mentoring



Goals and Activities

One goal is to distribute our experiences with agile methods and provide coaching for software projects, in particular projects using either Java or .NET technologies.

We have started to agile methods for software development and project management as a logical evolution from RUP based approach. Our current approach uses Scrum as an engineering method and Feature Driven Development approach as an overall project management method. These ideas were used to developed and complete complex applications such a  Property and Casualty Contracts application - using J2EE, Java, DB2 technologies - for a big player or a medicinal diagnostics control application for viruses - using .NET, C#,Oracle, for one major player.

I am an active Scrum Master, Product Owner and Scrum coach in various projects since 2003. The experience gained and the learned pitfalls are documented in Scrum agile experiences.

Processes and Tools

Experience gained in multiple .NET, Java, and C++ projects is used to fine tune the software development processes and identify tool chains to support them. Detailed information are available under agile processes and tools.

Workshops and Trainings

The public presentations I held are listed under speeches.
Experiences and thoughts are also documented under Agile and Scrum Discussions.

Bibliography

For the ones embracing agile development, Scrum and XP here a list of beautiful books to read and reflect on.

[1] Lean Software Development: An Agile Toolkit, Mary Poppendieck & Tom Poppendieck, Addison Wesley 2003

[2] Agile Project Management with Scrum, Ken Schwaber, Microsoft Press 2004

[3] Agile Estimating and Planning, Mike Cohn, Prentice Hall 2006

[4] Scrum and XP from the trenches, Henrik Kniberg, ISBN: 978-1-4303-2264-1 [[10]]

[5] User Stories Applied: For Agile Software Development, Mike Cohn, Addison Wesley 2004

[6] Refactoring: Improving the Design of Existing Code, Addison Wesley 1999

[7] Test Driven Development By Example, Ken Beck, Addison Wesley 2003

[8] The Pragmatic Programmer, Andrew Hunt & David Thomas, Addison Wesley 2000

[9] Implementation Patterns, Kent Beck, Addison Wesley 2008

[10] Agile Principles, Patterns, and Practices in C#, Prentice Hall, (Robert C. Martin Series)

For the ones taking the path to Scrum masters, coaches and technical leaders a list of books forcing us to see our work with new insights

[11] Peopleware: Productive Projects and Teams, Tom DeMarco & Timothy Lister, Dorset House 1987

[12] Slack: Getting Past Burnout, Busy Work, and the Myth of Total Efficiency, Tom DeMarco, Random House 2002

[13] The Deadline: A novel about Project Management, Tom DeMarco, Dorset House 1997

[14] Waltzing with Bears: Managing Risk on Software Projects, Tom De Marco & Timothy Lister, Dorset House 2003

[15] The Mythical Man-Month, Fredericks P. Brooks Jr., Addison Wesley 1975

[16] The Mythical Man-Month (Anniversary Edition with new Chapters), Fredericks P. Brooks Jr., Addison Wesley 1995

[17] Leading Quietly: An Unorthodox Guide To Doing the Right Thing, Harvard Business School Press 2002

[18] The Skilled Facilitator: Practical Wisdom For Developing Effective Groups, Roger M. Schwarz, Jossey-Bass 1994