VMware Infrastructure 3 Book Excerpt and Author Interview
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Tracking change and innovation in the enterprise software development community
Posted by Mike Bria on Jan 18, 2008 01:29 PM
Agile Alliance founding member, consultant, and book author Mike Cohn recently distilled his experiences helping teams adopt Agile into three core pairs of patterns that can be used by teams when launching an agile transition. He suggests that a team or organization adopting agile should choose the core pattern that best suits their situation from each of the three sets, summarized here:Six Free Project Management Certification Training Courses
IBM software architect eKit: Grady Booch podcast, whitepapers, articles
The Agile Business Analyst: Skills and Techniques needed for Agile
Gamma's Jazz platform's first implementation: Rational Team Concert (Trial Download)
Scaling Agile on large teams & Being Agile every day Tracks @ QCon SF Nov 19-21
We've been using Agile/Scrum at XAware for almost 3 years. We would not be where we are today without software process tools support. We use Rally Development (www.rallydev.com) to manage the process from feature requests to story creation, tasking, schedule tracking, acceptance, etc. I think adopting a tool specifically designed to support your agile process is critical to being successful with Agile. I'd love to hear about other software process tools people out there are using to support their Agile process.
We have a very distributed team around the world, and we have been very successful with the XP/Agile processes Mike mentioned. We use Jira for weekly tracking of all tasks (in a priority queue), weekly progress review and estimates/committing for new tasks for next week. This three-way process using one tool (that we adapt and improve for these purposes) has proven great. We get the perspective of the customers by merging into the priority queue the appropriate mix of tasks to capture all interests. Being the manager (who has a wider view) I prepare the priority queue of jira tasks, weekly. The Architect reviews estimates and approach, and the "coach" reviews the progress. To succeed in introducing these practices, it works well to add practices gradually in subsets of relalted processes and improve them until the benefits show clealry and people get used and bought into them, and then add another subset. The three aspects of coordinating and directing tasks I mentioned above, hang together nicely as a set that can be introduced at once. Success also depends on the right set of people and in particular the right thought leasders in the team. if they belive, and are united in their opinion about the process and methodology - it will succeed.
My experience is that using tools at the initial adoption phase can actually cause more problems. We initially used a tool, but found that its lack of All-Visible-All-The-Time, i.e., the entire iteration being visible at once all the time, made it harder for people to feel like they were actually doing anything different. Once we switched to using Cards_On_A_Wall, things started going more smoothly. Also, using a tool makes it difficult to use the Start_Small pattern, since the tools I've seen generally assume All_In. ;ted
I agree with Ted Young. Very often tools (especially dedicated for project management or whole the process) overshadow core agile practices (which are human-centric by their nature) and the spirit of agility. I witnessed the situation where tools were being evaluated, then tailored and then implemented across the company so long that the whole idea of introducing agile methodology just failed. Also imagine religious wars about which tools to choose, how to integrate them, how much to pay, hot to deploy and maintain them, etc. In my opinion it is more beneficial and resonable to start introducing those practices which affect your core business and the biggest issues you have. Typically they are related to frequency of releases, software quality, development eficiency, knowledge exchange, technical risks and so on. Exchanging the tools used for managing software projects will not help too much, if engineering practices are still poor. But, if the only problem a company has is having ineffective managment tools, then of course it should concentrate on them. But I doubt if such a company would switch to agile methodology in such circumstances. So actually I think it's better to start lean and light regarding tools supporting the process (whiteboard/corkboard + memo notes are very often enough) and only when some automation in the managent area (the process) becomes necessary and high priority, then go for it. Having said all of that, I still believe that we without good development tools introducing efficient agile methodologies will be virtually impossible. Wojtek
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.
Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.
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.
4 comments
Reply