Cut Through the Noise By Taking Action
One of the fundamental principles of Scrum is "the art of the possible." That is, Scrum instructs teams not to dwell on what can't be done, but to think about what can be done. It is important to focus on what can be done and how the problem can be solved with the available resources. This team had a name, a scope, and definition, and it was staffed with some really solid engineers, all of whom had workstations and access to a lot of software. I asked the team members what they were able to do with the resources that they already had. I also asked the team whether it believed that the problem it was trying to solve was important to the organization.
The team confirmed that the problem was real and that it was eager to tackle it. Some team members were aware that a customer service project was being held up by the very problem that they were supposed to solve. The customer service project was supposed to implement access to the legacy databases, but was unable to because this team had not yet built the middleware server that would handle legacy database access. Clearly, this team had been chartered because of a critical organizational need, and it had an important mission to accomplish. Until the team could get moving, other projects would continue to be held up
The team quickly identified a core set of transactions that the customer service project needed it to enable. The team members felt that they had enough skills to build a middleware object server to implement these transactions, so long as someone from the customer service team worked with them as a domain expert. They felt that they knew AIX, Tuxedo, and CORBA well enough to use that technology to implement the solution. They "borrowed" an RS6000 server from the server room to develop and prototype their work. The project manager, Herb, presented this plan of attack to his management. Since this effort required no additional funding and no administrative action, Herb was authorized to proceed. I got together with the team and devised a goal for the first Sprint. The Sprint goal was:
Sprint Goal: to provide a standardized middleware mechanism for the identified customer service transactions to access backend databases.
The team figured out the work they would have to do to meet the Sprint goal. The following tasks came up:
Map the transaction elements to back-end database tables
Write a business object in C++ to handle transactions via defined methods and interfaces
Wrap the C++ in a CORBA wrapper
Use Tuxedo for all queueing, messaging, and transaction management
Measure the transaction performance to determine whether scalability requirements could be met