Getting Started with Grails
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
- Java,
Tracking change and innovation in the enterprise software development community

Posted by Gunjan Doshi & Deborah Hartmann on Jan 25, 2007 03:01 AM
It has been few months since your teams started using Agile or aspects of Agile process. Everyone in the organization is very happy with the rollout: developers, product managers, information architects, QA, upper management. You think your team has developed an optimal process and can now cruise on auto-pilot. Not so fast! If you're not careful, the party could be over sooner than you think.This article will focus on behavior patterns that enable teams to realize the most benefits of Agile rollout and sustain the experience. This article assumes that you have already implemented Agile process in your organization.
IBM Agile Development eKit: Free Articles, Expert Q&A, Educational Resources
Rational Model Driven Development eKit: Examples, Tutorials, Webcasts
Evaluation Guide: Is Your SCM Tool Ready for Agile?
IBM Web 2.0 Developer eKit: Free Tutorials, Webcasts, Whitepapers
Successful practitioners will have noticed that Agile relies heavily on discipline, rather than genius. For this reason, there is an emphasis on the practice of the basics: putting people first, focusing on value, delivering high-quality work frequently, and reflecting regularly to continue improving. Average teams, even in the early stages of Agile implementation, can achieve dramatic performance improvement if they are disciplined. As we do these things, the effects of our words and actions actively create, and re-create over time, the environment in which our teams and projects operate.
Many have noted that learning often follows this pattern.1:
As we keep practicing Agile disciplines like pair programming, TDD, and plannning with User Stories, we build up a web of interrelated, mutually reinforcing behaviours which together yield more than the sum of their individual parts. These can have more far-reaching effects than we might at first have imagined. Once we have experienced some of these compounded benefits, the question is how do we sustain the benefits and keep improving? The tool for answering this is the retrospective, wherein we can determine not only what went wrong... but also what went right: things we want to reinforce and continue doing.
Enter 'Agile Karma', to borrow an idea from an ancient tradition.
Agile Karma: the cosmic principle according to which the experience of project participants improves or degrades in each iteration according to their actions (or failure to act) in previous iterations.
Good karma looks different for different teams, and for different players on the team. This is because, while the underlying principles remain the same, each team will find different ways to enact them. That's why it's important to do retrospectives, and not only to look at what's broken, but to answer the question: "what went well?" or "what do we want to keep?" Such an exercise helps the team surface and celebrate the things they are doing, perhaps unconsciously, which actually play a key factor in the success of their teamwork.
We start here by looking at some examples that we'd consider good Agile karma for the customer team, and work our way through the different team roles. What would your team's good karma profile look like?
The customer is the "driver" of the product or project, maintaining and tuning the vision, and communicating it to the team and providing feedback as they work. Usually the customer team is made up of Product managers, Information architects, QA, Usability engineers, member services etc.
The development team consists of not just coders, but everyone whose skills are required to create a potentially shippable product at the end of iteration. This team makes decisions about how to provide the functionality requested by the customer.
The Tech Lead probably knows the team and the technology better than they know Agile. This lends them an advantage over the Consultant Coach in highly political situations, and may balance their lack of expertise with the Agile practices.
The Consultant Coach is an experienced "hired gun" who can shepherd a team or an organization through the challenges of Agile adoption. This may shorten the learning curve and smooth the way, but it is no replacement for the team's own learning, which will remain and guide the process once the coach leaves.
This role proved tricky to define - it can look so different in each context - often it's really several of the other roles mixed together. We've decided it warrants separate treatment, and have put it aside for now. (In the meantime, we'd be interested in reader suggestions).
Upper Management is a key stakeholder in every project, but has the least control over what gets delivered. By providing strong support to the implementation effort, management can keep the channels of communication open and be in a position to respond rapidly to major obstacles when they arise.
Gunjan Doshi works as the Vice President of Product Development and Process Excellence for Community Connect Inc., a social networking company based in New York city. He is responsible for the managing and leading a team of 30 programmers, project managers and quality assurance analysts. In past, he has customized and rolled out agile methodologies across several teams at various organizations. He is passionate about continuous learning and growth. He blogs at http://www.gunjandoshi.com
Deborah Hartmann is an Agile practitioner and coach living in Toronto and working in Canada and the US. Deborah is passionate about making work both valuable and enjoyable. She's been the Agile Community Editor for InfoQ.com since April 2006.
Photo credit: photo by william biscorner www.creations-photos.com.
1Alistair Cockburn was one of the first to introduce the Aikido model, called shu-ha-ri, to many Agilists.
Note: For the sake of simplicity, we have used the following terminology:
Iteration: also known as "sprint" in Scrum
Customer: corresponds to "product owner" in Scrum
Coach: corresponds to Scrum Master or team lead, though sometimes Project Managers move into this role
Standup meetings: daily status meetings, known in Scrum as "daily scrums"
There are many variants on this role. I usually suggest the common denominator is that the PM provides the team with resources and priorities, and takes away from the team obstacles and results.
Normally Project Manager is not a role but a function. Regarding to Scrum, the Scrum Master should be the Project Manager, e.g. there should NOT be an extra Project Manager next to a Scrum Master. Because in Scrum tradional project management has shifted into coaching. Anyway look up a description of the Scrum Master role.
> Regarding to Scrum, the Scrum Master should be the Project Manager Depending on your definition of PM, true enough. On the other hand, in some environments, where Agile is a really different paradigm from the status quo, a ScrumMaster can really use a "blocker" in management, to tackle sticky organizational obstacles and let the ScrumMaster get on with the work of helping Product Owners and Teams deliver software. I guess I'm thinking of a "champion" role... sometimes it's helpful to turn the PM into this champion, and put a a second person in the ScrumMaster role. Hopefully, over time this duality is resolved and one of them can move on to new challenges :-) Again, how you define PM influences what happens to the PM role when you go Agile, imo. deb
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.
3 comments
Reply