SDExpo 2007: Day in Review (3/22/07)
Today was another information-packed day! I have to say that the sessions on agile methodologies turned out to be really great. Here are some of the highlights of the more interesting sessions I attended:
Transitioning to Agile: A Guide to Good Practices in Context
Michael Cohn, from Mountain Goat Software, gave an excellent presentation on how to introduce an agile process into a company. Michael dispensed some great tips on building teams, picking the right project for making the transition, and dealing with resistance. You can download the presentation and a related PDF on his website:
One particualr topic that Michael discussed really got my attention. While dealing with resistance and change, there is a popular model that can be used: CDE (Container, Differences, Transforming Exchanges). From the seminar
Self organization (CDE Model)
A boundary within which self-organization occurs (company, project, team, city)
There must be differences among the “agent” acting in our system
Technical knowledge, domain knowledge, education, experience, power, gender
Agents in the system interact and exchange resources
Information, money, energy (vision)
I’m fascinated with the topic of change and system models, so I dug a little deeper and found some references to a new field called HSD (Human System Dynamics). The Human System Dynamics FAQ says:
Human systems dynamics (HSD) is an emerging field of research and practice that applies principles of complexity, nonlinear dynamics, and chaos theory to the study of groups of humans as they live and work responsibly in teams, organizations, and communities.
Google turned up a related paper on HSD and CDE titled: After the Dance with Whole-Scale Change(WSC) PDF. I plan on researching this further.
Scrum: A Five Letter Word Geeks to Need Learn
Michael Vizdos, a certified Scum trainer, gave an informative overview of Scrum. Prior to the session I had only briefly heard about Scrum, and by the end of the talk I felt that I had taken away quite a bit to think about. According to Wikipedia, Scrum is:
“… intended (for) use is for management of software development projects, and it has been successfully used to “wrap” Extreme Programming and other development methodologies. However, it can theoretically be applied to any context where a group of people need to work together to achieve a common goal – such as setting up a small school, scientific research projects or planning a wedding.”
When asked how Scrum differs from other Agile methodologies like XP, Lean, Crystal and others, here was the explanation:
- Scrum is more of a project management methodology, not software development. Scrum does not dictate how software is constructed.
- Scrum is a great into methodology. Once roles are defined and teams are built, many companies pickup some other methodologies (like Crystal Clear)
- Scrum is also used in other domains (sales, marketing, and program management)
There is also a more detailed process flow for Scrum in the Scrum (development) article on Wikipedia. Here are the highlights from that article:
“Scrum assumes that the software development process is complicated and unpredictable and treats it as a controlled black box instead of a theoretical, fully defined process. This is one of the biggest differences between Scrum and the Waterfall and Spiral methodologies, which view the software development process as a fully defined process. Most problems encountered when using these older, formal types of methodologies are :
* Requirements are not fully understood at the beginning of the process.
* Requirements change during the process.
* The process becomes unpredictable when new tools and technologies are used.
Another characteristic of Scrum is that the software development process isn’t treated as a linear process, unlike the Waterfall, Spiral and Iterative methodologies. In a lot of cases this linear process consists of the following four activities: Analysis, Design, Implementation and Testing. Scrum, however, doesn’t prescribe a sequence in which the activities must be implemented. A project can start with any activity, and can change between activities at any time. ”
Core Models and Patterns of Web 2.0 – What They Mean to Architects
The final highlight of the day was the informal “Birds of a Feather” gathering at the end of the day by the poolside at the Hyatt. James Ward, Flex evangelist for Adobe, lead a discussion with a group of about 15 people focusing on patterns and trends of the Web 2.0 phenonemon. Discussions focused on security, identity, trust, multi-platform architectures (ESB, MVC, RIA). Overall, it was a great chit-chat and lots of fun.