Scrum Log Jeff Sutherland

Scrum is an Agile development framework that Jeff Sutherland invented at Easel Corporation in 1993. Jeff worked with Ken Schwaber to formalize Scrum at OOPSLA'95. Together, they extended and enhanced Scrum at many software companies and helped write the Agile Manifesto.

Sunday, March 25, 2007

ScrumMaster Certification Boston


18-19 April 2007 Boston
17-18 May 2007 Boston
8-9 Nov 2007 Boston

Get certified by Jeff Sutherland, Co-Creator of Scrum. Signup using Google or PayPal checkout buttons on left. Or email Purchase Orders or fax to 617-812-8527.


Jeff started the first Scrum at Easel Corporation in 1993 and worked with Ken Schwaber to emerge Scrum as a formal process at OOPSLA'95. Together, they extended and enhanced Scrum at many software companies and IT organizations and helped write the Agile Manifesto.

Springtime is a wonderful time of year in Boston and the course will be given at PatientKeeper, home of the first All-At-Once Scrum driving the whole company to market leadership in their product space. Jeff is the PatientKeeper CTO and Worldwide Scrum Consulting Practice Manager. He will be assisted in leading the course by the PatientKeeper Product Owner who will review Product Backlog management for the company's product portfolio. They will describe how to automate and manage Sprint Backlogs for multiple teams developing a wide variety of integrated and interoperable products.

The PatientKeeper Chief Product Owner leads the weekly MetaScrum which resources, starts, stops, and changes all Sprints to deliver dozens of production releases a year to large enterprise healthcare systems. Mary Poppendieck, in her latest book on Lean Software Development comments:

Five years ago a killer application emerged in the health care industry: Give doctors access to patient information on a PDA. Today there is no question which company won the race to dominate this exploding market; PatientKeeper has overwhelmed its competition with its capability to bring new products and features to market just about every week. The sixty or so technical people produce more software than many organizations several times larger, and they do not show any sign that the size of their code base is slowing them down.

A key strategy that has kept PatientKeeper at the front of the pack is an emphasis on unprecedented speed in delivering new features. It will not surprise anyone who understands Lean that PatientKeeper has to maintain superb quality in order to support its rapid delivery. CTO Jeff Sutherland explains it this way:

"Rapid cycle time: * Increases learning tremendously * Eliminates buggy software because you die if you don't fix this. * Fixes the install process because you die if you have to install 45 releases this year and install is not easy. * Improves the upgrade process because there is a constant flow of upgrades that are mandatory. Makes upgrades easy. * Forces quick standardization of software via new features rather than customization and one off. * Forces implementation of sustainable pace.. You die a death of attrition without it. * Allows waiting to build new functionality until there are 4-5 customers who pay for it. This is counterintuitive, and caused by the fact everything is ready within 90 days."

As part of the unique opportunity to work for two days within a Scrum company, there is a large open space Atrium which is ideal for group exercises. Participants will learn everything necessary for getting started with Scrum. There are very few rules to Scrum so it is important to learn its fundamental principles by experiencing them.

In this course, participants gain hands-on practice with the release backlog, sprint backlog, the daily Scrum meeting, tracking progress with a burndown chart, and more. Participants experience the Scrum process through a "59-minute Scrum" and the "XP Game" which simulate Scrum projects through a non-technical group exercises.

This course is equally suited for managers, programmers, testers, analysts, product managers, and others who are interested in working on or with a Scrum team. You will leave with solid knowledge of how and why Scrum works. Through practical, hands-on exercises and small-group discussion you will be prepared to plan your first sprint immediately after this class.

The course will run from 9am-5pm each day. A continental breakfast and lunch will be provided.

Following the course, each participant is enrolled as a Certified ScrumMaster, which includes a one-year membership in the Scrum Alliance, where additional ScrumMaster-only material and information are available.

Who Should Attend

Whether you're a manager, programmer, tester, analyst, product manager, or someone interested in working on or with a Scrum team, this course is suited for you. You will leave with solid knowledge of how and why Scrum works. Through practical, hands-on exercises and small-group discussion you will be prepared to plan your first sprint immediately after this class.

PMPs: You can receive 16 Professional Development Units (PDUs) for this course.

Course Material:

Click here for course syllabus.

Participants will receive course materials for review upon registration. The CSM course was formulated to train and certify ScrumMasters and is used worldwide for ScrumMaster training. The book, Agile Project Management with Scrum, by Ken Schwaber is required reading for the course and the course is based on the primary Scrum book, Agile Development with Scrum.

Of course, there will be updated material and training exercises in the course which you cannot get from books. The entire syllabus will be made available upon registering for the course so you can look it over and bring it with you to the sessions. You may get to see our Product Backlog presented by the PatientKeeper Chief Product Owner or attend our Daily Scrum of Scrums!

Logistics Information


http://maps.google.com/maps?q=275+Washington+St,+Newton,+MA&ie=UTF8&z=15&om=1&iwloc=addr

Boston CSM Trainings are held in the PatientKeeper Board Room on the second floor of 275 Washington Street in Newton, MA. This is directly off the Mass. Pike and across the street from the Sheraton Hotel, only about a 10-15 minute drive from Logan Airport or from Harvard Square.

PatientKeeper, Inc.
275 Washington Street - Second Floor
Newton, MA 02458
+1 617 987-0394
+1 617 812-8527 fax

PatientKeeper has a special rate of $179 at the Newton Marriott. Click on
http://cwp.marriott.com/bosnt/patientkeeper/ to get this rate which also includes "Wired for Business" (unlimited high speed, unlimited local telephone calls and unlimited domestic long distance).

The Newton Marriott is approximately 6 miles (and about 10-12 minutes) from the corporate office. http://marriott.com/hotels/travel/bosnt-boston-marriott-newton/
You can call the hotel directly at (617) 969-1000 or the Marriott Worldwide Reservations line at (800) 228-9290. Just be sure to mention the PatientKeeper "P1K" rate!

Airport Shuttle Reservations:
The Boston Marriott Newton Hotel has a contracted rate for airport transfers with Knights for $28.00 per way with direct service from Logan International to The Boston Marriott Newton Hotel. Advanced Reservations are required by booking online at http://www.knightslimo.com or calling Knights at (800) 822-5456.

Shuttle to PatientKeeper:
For service to and from the Boston Marriott Newton Hotel to PatientKeeper's Newton office, we have negotiated rates with US Limo and each traveler will pay own expenses with US Car Service with your own credit card. To make shuttle reservations, please contact US Limo at 508-494-1015. The rates are outlined as follows:

$18/way for a Sedan which accommodates up to 3 passengers
$35/way for an SUV which accommodates 4 – 6 passengers
$50/way for a Van which accommodates 7-14 passengers

Remember there are many other good hotels in the Harvard area near PatientKeeper. Check www.hotels.com or your favorite travel site for hotels in Cambridge, MA, and pick one that fits your price.

The fee for Certified ScrumMaster Training is $1200. You can register in three ways:

1. Fax a Purchase Order to PatientKeeper at 617-812-8527.
2. Send a check to Jeff Sutherland, PatientKeeper, Inc., 20 Guest Street, Suite 500, Brighton, MA 02135.
3. Use the Google Buy Now button on the upper left side of this page.

Refund policy: Rescheduling to another date for the same course is free at any time. 90% of the course fee will be refunded for cancellations more that 7 days in advance of the course. No refunds will be provided for cancellations within a week of the course.

Saturday, March 24, 2007

Scrum Burndown using Trac




In a recent draft of "The Scrum Papers" I document the use of the GNATS bug tracking system at my company PatientKeeper for managing a complex Scrum implementation. In my Scrum Tuning course I use a complexity number which equals (number of teams) x (number of releases per year) x (number of products) x (number of kits or separate release branches to support vendor platforms). PatientKeeper has a complexity number of 3240 which is higher than any other Scrum company I have seen except for a British Telecom project of over 1000 people.

Supporting this level of complexity at PatientKeeper requires an "All-At-Once-Scrum" using a completely automated system. I'm deprecating the term Type C Scrum used in my Agile 2005 paper as Scrum Trainers feel it confuses people. There is only one Scrum and a few would even claim a Scrum that multithreads Sprints through multiple teams is not really Scrum at all. Let me just note that Mary and Tom Poppendieck have documented the All-At-Once-Scrum in their recent book on implementing lean software development as one of the highest performing Agile implementations on the planet, Ken Schwaber has remarked that it is a "competitive monster," and at least five companies have discussed with me their implementation of this ugly duckling. One of them even published a paper on their implementation at the Hawaii International Conference on Software Systems in January, 2007. This Scrum implementation requires complete and total participation of senior management and a MetaScrum led by a Chief Product Owner that drives product strategy for the company, not to mention live deployment at the end of every Sprint. But I digress ...

Very few companies using Scrum are platform companies. These companies tend to use layered architecture teams, as the APIs on various software layers are products used by dozens of technology partners and therefore are features that must be supported even more carefully than a typical user-oriented feature in a web application. The ones I have worked with are Google, Palm, and PatientKeeper. Amazon is using Scrum to address similar platform features. To properly support the complexity of these implementations advanced tooling is required. One of the advantages of the tooling needed is that it supports scalable, distributed, and outsourced teams as a trivial, yet important, side effect.

The tooling implemented at PatientKeeper had a key requirement laid down by the development team in the early days of the company. It had to take less than 60 seconds a day for a developer to use and less than 10 minutes a day for the ScrumMaster to provide updated burndown report to the company and any other report a manager might request on demand.

The solution was to add five data items to an open source bug tracking system along with minor enhancements to the user interface and the ability to do nightly dumps of data for import into Excel spreadsheets. While I have regularly recommended upgrading the PatientKeeper GNATS system to a newer open source solution, it has become as mission critical to PatientKeeper as an online accounting system to a bank. If it goes down the company goes down. Therefore, the development team has refused to even think about upgrading it.

Some of the many features I would like in a new system are a better user interface and an automated connection to a version control system. Trac was of interest because it is a wiki-based bug tracking system that can be extended to support an "All-At-Once-Scrum" and has a direct binding to Subversion. Since the Subversion code configuration management system is an easy upgrade from CVS, I recommend that to PatientKeeper also. However, the nature of our complex management of code branches to support an All-At-Once-Scrum is even more mission critical than the real-time Scrum reporting system. "Alas," engineering says, "don't even think about it!"

I trust the day will come when PatientKeeper will decide to upgrade. They will need to do it like the big banks I used to work with running dual online systems in parallel for several weeks to ensure that everything works flawlessly before cutting over. For those of you who have not already gone completely paperless, cardless, and noteless there are more options.

Note: In 2008 PatientKeeper upgraded to Jira and Subversion.

Early versions of Trac would not easily support Scrum. However, the latest version of Trac has more flexibility and a London-based company developed an open source Scrum plugin, the first of several requirements for the tool I need.

See Daan's Blog for latest updates on the Trac Scrum plugin.

Agilo is also a nice Scrum plugin for Trac.

Labels:

Sunday, March 18, 2007

Mind Boggling Scrum Certification

Mads Klinkby’s weblog
Life in general and technology in particular.

Certified ScrumMaster
March 9th, 2007

These last two days I’ve been taught the principles of Scrum in agile development and become a certified ScrumMaster. The instructors Jens Østergård and the world famous Jeff Sutherland both brought an enormous amount of experience and inspiration to the fully booked class of about 30 people. Jeff Sutherland and Ken Schwaber were the inventors of Scrum.

The course was held at Nordija in Lyngby where the famous writer and OO guru James O. Coplien happens to work. We were lucky to get him to give a lecture on lightweight architecturing (which I am very much interested in).

All in all, two mind bogglingly inspiring and well spent days. I would recommend it to anyone just remotely interested in agile software development.

- Waterfall model? Never again!

Labels:

Friday, March 16, 2007

Scrum Montage



Montage-a-google

Montage-a-google is a simple web-based app that uses Google's image search to generate a large gridded montage of images based on keywords (search terms) entered by the user. Not only an interesting way of browsing the net, it can also be used to create desktop pictures or even posters.

The Scrum montage was created by setting Scrum as the keyword for a Montage-a-google search.

Wednesday, March 07, 2007

Time Tracking is Anti-Scrum: What do you do when you need it for billing?


When we implemented an automated Type C Scrum back in 2002 at PatientKeeper, we did a user analysis of what to ask developers to minimize their administrative time (waste) and lean out the organization. I'm not aware of any other user studies of this type on eliminating administrative waste for developers.

We came up with a counterintuitive answer. While all we wanted to know was how to update the Burndown Chart, our developers told us not to ask about time remaining on a task for the following reasons:

1. It took more than 60 seconds to answer the question for five tasks and 60 seconds was the design criteria for the project reporting system.
2. It made them think too hard and they did not want to be bothered when they thought the resulting estimate was not necessarily accurate.
3. They felt that the estimate of time remaining had high variability and therefore was high risk. If the current estimate was exploding they knew what time they had invested and percent complete. Anything else was pure guesswork.

These were high powered professional engineers. We had several Ph.D.s on the team from MIT and elsewhere. The founders of the company were all MIT graduates. As a result, my view was that they gave the "right" answers to the questions based on best practice and not an answer you would get from inexperienced, perhaps ill-motivated engineers, who knew little about Scrum.

By taking the time invested and percent complete on each task touched each day, the system autocalculates time remaining to update the Scrum Burndown Chart. If a task is 50% done and one day is invested, the time remaining is assumed to be one day. The new total estimate for the task is two days. The original estimate for the task is archived in the system for historical analysis. The Burndown Chart automatically recalculates every estimate for every item touched during a day.

Time remaining to Sprint completion is all that is reported publicly and the team remains focused on what it takes to get "Done" at the end of the Sprint and does not even feel the questions asked relate to time reporting in any way. It is simply the "leanest" way to get the data needed to update the Burndown Chart.

A side effect of this approach is that consulting companies that bill customers on an hourly basis can generate billing from our automated system without filling out any time sheets.

It was generally agreed in a Scrum training class in Copenhagen yesterday with experienced project leaders operating at CMMI Level 5 at IBM and elsewhere that asking developers to fill out time sheets reduces team productivity by at least 10%. They hate to do it, it is duplicate work, it is obviously "waste", and is only done by companies that do not have a clue about lean product development. I have consulted at some companies where time reporting is so complex, developers make up time sheets, the company lies to customers as a result, and senior management make bad decisions on erroneous data, compromising the company's success in the marketplace. My final report to senior management was that 50% of their entire development productivity was lost because of the time sheet implementation.

Any project leader that has any sense will not "waste" 10% or more of development team productivity. They will move heaven and earth to avoid it and get more features done sooner with higher quality.

The recommendation to software development organizations is:

1. Abolish all time reporting.
2. Institute the part of Type C Scrum reporting described above. You do not have to implement a Type C Scrum to do this. How to do it is detailed in the current draft of the book, "The Scrum Papers." For those willing to give editorial feedback, send me email and a copy of the latest draft will be made available.
3. Autogenerate time reporting to the customer from the Type C Scrum approach. Never use it to report development progress.
4. This approach gives more accurate information than any time reporting system ever created:
- Developers never "make up" the data on the time sheets.
- Exact time is available for every task.
- It provides a "micro-costed" analysis of work in progress.
- You never lie to customers. They are billed only on real work.

Sunday, March 04, 2007

Get an Experienced Developer on the Test Team


In 1993, at Easel Corporation, we went to the local university and hired their best Master of Computer Science graduate to join the test team and focus 100% on automation. This was one of the decisions that put the first Scrum into a hyperproductive state where we delivered software so fast, the management, sales, and marketing people asked us to slow down.

Alberto Savoia proposes the same thing in his recent blog posting and his proposed job description is below. Click here to read the full post that makes the case for an experienced developer on the test team.

Agitating Thoughts & Ideas
Developer Testing Masters and Brain Surgeons

by Alberto Savoia
February 26, 2007

Developer Testing Master

This is a high-visibility, high-impact, senior software development position, reporting to the VP of Software Engineering at Company ABC. The successful candidate will help our software engineering organization bridge the gap between development and QA by providing developers with the infrastructure, tools, training, and support necessary to be successful at developer/unit testing.

Job Requirements:

[Should start with the organization’s standard requirements for non-junior software developers. Remember, this should not be an entry-level or junior position. This person has to be at least as good as other developers – ideally better than most of them since the DTM will often have to understand, clean-up, and make testable some of the un-testable code the other developers have created.]

Must have demonstrated passion for, and experience in, developer testing. Should be extremely familiar with continuous integration and testing tools and frameworks (CruiseControl, xUnit, code-coverage tools, etc.)

Must have leadership ability to evangelize, motivate, and train developers in the art and science of unit testing.

Job Responsibilities

Help to set-up a software development environment that enables continuous integration and testing. Environment must support automated hourly and nightly builds. The former must run smoke tests and the latter the full battery of developer tests. Might have to implement distributed testing framework to allow parallel test execution.

Analyze the existing code base and recommend and/or implement re-designs and refactorings to make the code base testable.

Extend and customize xUnit framework to standardize and simplify unit test writing for the other developers. Extend the “TestCase” class by creating “CompanyABCTestCase” and maintain the latter. Implement initial set of mocks, test fixtures, and other set-up methods to enable other developers to write true unit tests that don’t depend on external system resources.

Create and deliver basic unit testing training material to educate all developers in the art and science of unit testing.

Work with the team to decide on developer testing metrics and objectives. Create, maintain, and publish a developer-testing dashboard to track those objectives.

Labels: