Concurrency: Past and Present
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Tracking change and innovation in the enterprise software development community
Posted by Deborah Hartmann on Jul 06, 2007 08:17 AM
InfoQ interviewed Joseph Little and Michael Spayd at the Agile2006 conference. At the time, they were in the middle rolling out Agile software development in a large corporation with a team of Agile coaches and master coaches. We asked them about the shift in the Agile community toward talking about "organizational change" and "organizational coaching": why is this happening now? Their answers reflect their work helping many teams become Agile within a more traditional organization.I don't think you can manage change. You can help it go better, and you can do things that make it much worse.Michael Spayd attributes this need to a shift in who's adopting Agile methodologies. The "early adopter" profile of agile adoption often brought the approach into organizations already quite agile in their ways. Now large, more slow-moving organizations want to benefit too, but are finding the transition less than natural. In response, they are calling for coaches to help them navigate the cultural shift, a new role for some coaches.
-- Joe Little
You've been working with organizations that are introducing Agile: what have you seen? How does this change happen?
Spayd: First it happens at the team level, and teams go through their own change curve with it. It's not easy for some teams to make these changes, and particularly if you don't have all the conditions right, you know: you don't have a good product owner or customer, you don't have a coach. There are things that are difficult just on the team level.
Little: Yes, there's the general movement from ground up; you've got teams involved and their impact filters up into the organization. The other way things usually move is from the top down, and in the best scenarios both are happening in the same time. Usually the toughest changes are in the middle level; after a while middle management starts to look at this and go "Oh, my job is starting to change. What does that mean for me?"
So: you are starting an engagement, you know there's going to be resistance to Agile but you have no idea what kind of resistance it's going to be. Where do you start? What methodology do you use?
Joe: In terms of dealing with organizational change, I'd choose Scrum because it makes the impediments visible... to a lot of people, not just yourself, and allows you to prioritize things much more easily than other approaches that I'm aware of.
Michael: I would agree that Scrum is the place to start, because it's the simplest to implement and therefore the most likely to have some early success. I don't think you want to end there, though, I think... it's going to be inadequate if mature engineering practices are not developed. But it's enough to start with Scrum.
Have you seen examples of mandated Agile implementation? Is it effective?
Little: It can often drive bad behaviours, particularly if the people are given that kind of guidance and nothing else.
Spayd: I've seen it be mandated very overtly, and I've seen it be mandated quite subtly, and in both instances it doesn't work very well, because it's against the grain of Agile, as you know. And yet [we're] very zealous; we tend to be true believers in Agile, because it's very cool, and ... it's hard it not to give in to the desire to impose a mandate: "You should do Agile because it's so much better". And [he laughs] we know we are right.
Gamma's Jazz platform's first implementation: Rational Team Concert (Trial Download)
IBM software architect eKit: Grady Booch podcast, whitepapers, articles
Six Free Project Management Certification Training Courses
Scaling Agile on large teams & Being Agile every day Tracks @ QCon SF Nov 19-21
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.
Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.
David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.
Nick Sieger talks about the future of JRuby, Java Integration, and his work on JEE deployment tools for Ruby on Rails like Warbler.
Rustan Leino and Mike Barnett of Microsoft Research discuss the technology in Spec# and its futures.
Henrik Kniberg talks about 10 possible reasons to fail while doing Scrum and XP. Maybe the team does not have a definition of what Done means to them, or they don't know what their velocity is.
This article outlines 9 principles Marc Lammers discovered while building the world’s best field hockey team, mapping them to software development practices.
1 comment
Reply