Collaborate

Seven Strategies for Team Swarming

I don’t see a lot of talk about team swarming (sometimes referred to as mobbing) yet it can be one of the most powerful problem-solving techniques for breaking through really difficult challenges. A swarm is where you get the whole team together to focus on solving a single problem. You can also focus on multiple …

Read More
Collaborate

Seven Strategies for Pair Programming

Of all the agile developer practices I teach, pair programming gets the most resistance from management. Managers often ask me how putting two developers on the same task can possible be more efficient than having them work independently on different tasks…but it most definitely is. Well, you may not find a huge increase in the …

Read More
Bits and Pieces

Seven Strategies for Doing Emergent Design

Emergent design is an advanced technique, drawing on several agile practices. When done correctly, it can be a highly efficient way of building quality software but it is not a beginner technique, it requires a deep understanding in many areas. Here are seven strategies to help you master emergent design: 1. Understand object-oriented design Just …

Read More
Integrate Continuously

Seven Strategies for Agile Infrastructure

The first step in achieving agility and technical excellence is to set up an infrastructure to support it. The infrastructure we will discuss here, an automated build server, is one of the most important aspects of agility because we can only consider a story as “done” when it is fully integrated into the build. Here …

Read More
Collaborate

Seven Strategies to Foster Hyper-Performing Teams

Hyper-performing teams do exist. I know teams that are an order of magnitude more productive than average teams. Achieving hyper-performance is possible if everyone on the team has the skills and a burning passion to do their best. Here are seven tips that can help your team become high performing, if not hyper-performing: 1. Know …

Read More
Bits and Pieces

Seven Strategies for Improving Your Scrum Process

Scrum is a minimal framework for providing feedback so we can constantly improve our development process yet many teams use Scrum prescriptively without using the feedback that Scrum makes available for ongoing improvement. Here are seven strategies for using Scrum to improve your development process. 1. Use retrospectives Scrum offers many subtle feedback loops to …

Read More
Rants

Scrum for Science

I’ve been fortunate to work with clients whose business requires a large amount of scientific research. One client is so committed to Scrum that they brought their researchers to my Scrum Developer Certification training and for the first time I seriously looked at how to use the practices of Scrum and XP to do scientific …

Read More
Rants

What Do You Hate About Developing Software?

I have asked the question “What don’t you like about developing software” to thousands of developer and I often hear similar answers. The list is a bit longer than the list of what we love about developing software, discussed in my last post, but don’t infer that it outweighs what we love about it. I …

Read More
Rants

What Do You Love about Developing Software?

I have asked this question to thousands of developers in my classes and I always hear very similar answers: “I love creating something new that has never been done before.” “I love giving people tools to help them do their work more efficiently.” “I love solving problems.” “I love learning about new domains.” “I love …

Read More
Rants

My Favorite App

In honor of the New iPad, I thought I’d blog this time about something other than software development and share with you my favorite app. I believe Apple will continue to own the tablet market not because of their stunning hardware or great ad campaigns. They know what Microsoft knew and IBM didn’t twenty years …

Read More
Refactor Legacy Code

Avoid the Legacy Trap

Some of my clients put their best software developers on a project to build a system and then afterwards they put new hires on to maintain and extend it. Often the intention behind the original design is not clear to the people who have inherited the system and so they tend to make changes that …

Read More
Announcements

Techniques of Design Has Become To Be Agile

Realizing that mastering Agile software development is more than just learning techniques, I am rebranding and changing the name of my company to (drum roll, please)… To Be Agile This new name (and website) reflects a new commitment to helping our community, not just do the Agile practices, but to be Agile with everything we …

Read More