Refactor Legacy Code

Seven Strategies for What to Refactor

Okay, you got the time and management approval to refactor some code. What do you do with it? Refactoring legacy code can be like unraveling a knotted rope and it can be hard to figure out where to start. Here are seven strategies for determining what to refactor. 1. Remove dead code Dead code is …

Read More
Refactor Legacy Code

Seven Strategies for When to Refactor

Given that there’s more code that could be refactored than our industry can handle, we have to decide what code should be refactored and what code doesn’t need it. If production software works fine and doesn’t need to be extended then there’s no need to refactor the code. Refactoring code is risky and expensive so …

Read More
Refactor Legacy Code

Seven Strategies for Helping You Justify Why to Refactor

Refactoring is improving the internal structure of code without changing its external behavior. Refactoring gives developers another chance to improve their designs and often gives management a cheaper and less risky way to ready an existing system for adding new features. Here are seven strategies to help you justify why to refactor code. 1. To …

Read More
Collaborate

Seven Strategies for Effective Retrospectives

Scrum is all about inspecting and adapting so it’s important to make time to reflect with the team and gain insights on what can be improved. Regular retrospectives are a good way to get the team in the habit of looking at what they did and how they can improve. Here are seven strategies for …

Read More
Collaborate

Seven Strategies for Better Code Reviews

Code reviews are an important way for the team to learn and understand the parts of a system they aren’t working on. Code reviews also give developers feedback on their work. They help the team provide consistency in the code they write and help propagate good development practices throughout the team. Here are seven strategies …

Read More
Seven Strategies

Seven Strategies for Cleaner Code

Clean code is code that is understandable and maintainable. It’s design is clear, entities are well named, and developers aren’t scared to work with it. Clean code doesn’t happen by accident, it requires attention but it can make a big difference for those who have to work in the code. Here are seven strategies for …

Read More
Create CLEAN Code

Seven Strategies for Increasing Code Quality

People define quality in software in many ways. Some define quality as software that does what the customer wants. Others define quality as software that runs fast. Still others define quality as software that’s error-free. We all agree these are good things but are they all effects of a single cause, and if so, how …

Read More
Build in Small Batches

Seven Strategies for Splitting Stories

The shorter the story the better. Short stories are easier to estimate, understand, and implement. Short stories help create cohesive, uncoupled code. Short stories are easier to test. But how do we turn big stories into shorter ones? Here are seven strategies for splitting stories. 1. Break down compound stories into components If a story …

Read More
Build in Small Batches

Seven Strategies for Writing Better Stories

“As a blogging developer, I want to share a post on writing stories so that readers find value in it.” It helps to focus on what we want to build and for whom. Here are seven strategies for writing better stories. 1. See it as a placeholder Stories alone are not meant to replace requirements. …

Read More
Bits and Pieces

Seven Strategies for Effective Daily Stand-Ups

The daily stand-up meeting is an important part of Scrum. It helps the team work together and gives everyone a sense of what the team is working on. Daily stand-ups don’t always have to be in person. I worked on a remote team that did our daily stand-up online through a wiki. While this was …

Read More
Bits and Pieces

Seven Strategies for Higher Fidelity Communication

Communication skills are essential for everyone but there aren’t a lot of places to go to learn about them. Most enterprise software development is a team activity and communication skills are a vital part of working on a team. Here are seven strategies for higher fidelity communication. 1. Know your outcome Getting clear on the …

Read More
Bits and Pieces

Seven Strategies for Helping People Get What They Want

It’s human nature to want to help others but we may not always know how. We offer solutions to problems with the best of intentions but sometimes the solutions we offer are taken as if we are telling others what to do. What we really need to do is help people find their own solutions, …

Read More
Bits and Pieces

Seven Strategies for Empowering Developers

Developers are the engine of software development, the people who write the code. Empowering developers to improve and supporting them to do the right things is an important part of building great software. Here are seven strategies for empowering developers. 1. Avoid sacrificing quality Unrealistic deadlines can lead to cutting corners that shouldn’t be cut. …

Read More
Bits and Pieces

Seven Strategies for ScrumMasters

The ScrumMaster serves a unique role on an Agile team–part leader, part servant. ScrumMasters are responsible for the overall health of their team and for making sure everyone has what they need to do their work. This is not a technical role but it is helpful to understand the technical issues the team will face …

Read More
Say What, Why, and for Whom Before How

Seven Strategies for Product Owners

Often we find at the core of a great product is a great Product Owner (PO). The Product Owner holds the vision for the product and prioritizes the work to be done. They steer the team to create the product. If the product they define is not ultimately what the customer wants then no matter …

Read More
Bits and Pieces

Seven Strategies for Getting Support from Management

Agile software development requires management support. If the rest of an organization is fundamentally entrenched in a waterfall process then it will be difficult to for software development to become agile. In such situations, we must identify external dependencies and give the non-agile parts of the organization time to get us whatever we need so …

Read More
Collaborate

Seven Strategies for Team Agreements

One of the most valuable documents teams can create is a Team Agreement. Team Agreements for software development can range from very detailed specifications of coding standards and practices to a general statement of moral and ethical conduct, or anywhere in between. Team agreements help set the context for team member expectations and provide a …

Read More
Collaborate

Seven Strategies for Remote Teams

It used to be thought that if only we could write a good specification that accurately described what was to be built, we could take advantage of the cheap labor overseas to cut costs and get software built faster. Unfortunately, reality often shatters such naive hopes. However, outsourcing overseas can help for many tasks and …

Read More
Collaborate

Seven Strategies for Working with an Onsite Customer

One important characteristic of agile development over non-agile processes, such as waterfall, is the presence of an onsite customer. Unlike the Project Manager or ScrumMaster, whose job it is to keep the team healthy, the Product Owner or onsite customer representative’s job is to be a proxy for the real customer and ensure development is …

Read More
Bits and Pieces

Seven Strategies for Successful Agile Development

Agile is not a silver bullet but it does have the potential of improving software development when done correctly. Unfortunately, teams newly adopting agile practices often don’t know how to get the most out of applying agile practices until it is too late. Here are seven strategies for getting more from agile software development. 1. …

Read More
Collaborate

Seven Strategies for Customer Collaboration

My wife is a video producer. Her job is not very different from our jobs as software developers. Both jobs demand lots of creative problem-solving where we face different challenges every day, and both jobs often involve close collaboration with our customer or a subject matter expert. My wife, Staci, is great at creating videos …

Read More
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