Thursday, August 31, 2006

Eureka: The Daily Scrum

We have a team at the client site that is holding daily scrum meetings. I am onsite this week and was listening to the conversation (as a chicken from the other room). What I heard caught me off guard; it was a status meeting where they would actually go through and update each task in the Sprint Backlog.

I took the ScrumMaster to lunch and discussed with him the purpose and benefits of the 3 questions:
  1. What did you do yesterday?
  2. What will you do today?
  3. What is preventing you from accomplishing your goal?
He was very receptive and acknowledged that he needed to make a change. We held a daily scrum this morning and went through the 3 questions with each team member.

The difference was remarkable. The meeting turned into a conversation rather than a status meeting. Team members were offering help to each other. They finally get it that they are a team and that they are measured as a team.

If anyone is running a project without the daily scrum, they are really missing out on significant opportunities.

Wednesday, August 23, 2006

Agility & Discipline Made Easy

I was turned on to the book "Agility and Discipline Made Easy" by a colleague of mine. This book is a good follow up to the book "The Rational Unified Process Made Easy." The primary focus of the book is to provide you with best practices for making projects more agile (with focus on the Unified Process).

The book outlines six fundamental principles (best practices) that characterize the most successful projects in the software development industry. Many of these principles are found to some degree in most iterative and agile processes:
  1. Adapt the process
  2. Balance stakeholder priorities
  3. Collaborate across teams
  4. Demonstrate value iteratively
  5. Elevate the level of abstraction
  6. Focus continuously on quality
Each principle is then broken down into sets of practices for:
  • Supporting Iterative Development
  • Improving Your Ability to Manage Requirements
  • Improving Your Ability to Do Architecture, Design, and Implementation
  • Improving Your Ability to Do Testing
I highly recommend this book for those of you that are experienced with RUP and want to make your processes more agile.

Tuesday, August 22, 2006

Set the Foundation in the Inception Phase

Jon Kern has written an excellent overview of what you need to accomplish in the Inception phase of a project in order to set the proper foundation for all future work.

Here is a high-level summary of his article.

To set the proper foundation, you need to have the following defined:
  • Prioritized list of features for Release 1 (at a minimum)
  • Domain model
  • Technical architecture
  • Automated build process
  • Coding guidelines
  • Version control system
  • Issue tracking system
  • Requirements management system
  • Collaborative workspace (e.g., blogs, wiki)
Jon properly notes that there are two critical pieces to the Inception process: the domain workshop and the technical workshop.


The requirements-gathering process takes place in the Domain Workshop. The Technical Workshop is used to ensure the architecture and development techniques are defined. At the end of this process, we will have the necessary ingredients to form a Release Plan and can start the iterative development in earnest.

In the Domain Workshop, the artifacts we should typically end up with include:
  • Business definition
    - Problem statement
    - Vision document
    - Simple cost/benefit check
  • Feature set
    - Basic description
    - Roughly prioritized
  • Domain model (initial cut)
  • "Non-functional" requirements
In the Technical Workshop, the artifacts we should typically end up with include:
  • Architecture vision
  • Things we chose not to do (and why)
  • Object models
  • Sequence diagrams
  • Deployment diagram
If all of these goals are accomplished, the team will be able to move forward quickly with a list of features in hand, the technical architecture determined, a set of coding guidelines, a set of automated build scripts and a domain model from which to start coding.

This is certainly a recipe for success!!!

Tuesday, August 15, 2006

Agile & Blended Shore Projects

My whitepaper is finally published. It's titled "Adapting the Agile Unified Process to Blended Shore Projects." You can read it here.

I have put nearly all of my recommendations into practice and they are working. Our next step is to collect more metrics to help us plan the project.

New Metrics
  • Use Function Point Analysis to create estimates by feature
  • Review & update FPA estimates after each iteration
  • Record the number of function points per feature in the Product Backlog
  • Record the actual effort for each feature after it is implemented
  • Team Productivity = Total # of function points implemented in an iteration
  • Track actual effort per function point
  • Track team productivity over time; the trend should be that the team's productivity increases as they become more familiar with the domain and technology
What's Working
  • Product Backlog as the master feature set
  • Iteration (Sprint) Backlog for each team
  • Daily Scrum
  • Iteration Assessments (Sprint Review Meetings)
  • Iteration Planning Sessions (Sprint Planning Sessions)
  • Early and frequent delivery to QC within an iteration
  • Storyboards
  • Modeling
Challenges
  • No automated test tools are available for Avalon/WinFX
  • Technical reviews of requirements are not conducted soon enough; we plan to bring more technical resources onshore to close the communication gap
  • Tracking rework and changes; we have revised our change control process so we have a record of the changes requested and the effort to implement each
This is fun and it's working well!!!