I finished my “Seven Strategies” series of 72 blog posts with seven strategies for implementing each of the nine practices from my book, Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software. These posts are filled with practical advice for implementing the nine core practices from Scrum, Extreme Programming, and …
Continue reading “Summary of Seven Strategies Series”
Read MoreContinuous delivery is the single most important step in agility. Regardless of whether you do big releases or not you should always build software incrementally so it is always in a releasable state. Why? Because the only way to know if code will work in a system is to test it in the system. This …
Continue reading “Seven Strategies for Continuous Delivery”
Read MoreNaming is a central part of programming and vitally important. Everything has a name and the name we give something should reveal something about what it does. The difference between good names and bad ones is a key factor in the maintainability of the software we write. Here are seven strategies for creating better names. …
Continue reading “Seven Strategies for Creating Better Names”
Read MoreUsing tests to drive development in TDD concertizes abstract requirements making them easier to understand and work with. This is a very powerful way of solving software problems while at the same time creating maintainable code. Here are seven strategies for solving problems test-first: 1. Think outside-in Before solving a problem we must first understand …
Continue reading “Seven Strategies for Solving Problems Test-First”
Read MoreBig tasks are hard to work on. When we break a big task down into smaller tasks they become much more manageable. Suddenly, insurmountably large tasks become manageable as a series of smaller tasks, each of which is easily achievable on their own. Building smaller simplifies tasks making them easier to define, create, and verify. …
Continue reading “Seven Strategies for Building Smaller”
Read MoreWhat makes a software development project Waterfall and what makes it Agile? Different people answer this question differently. For a lot of teams, Agile is having a daily stand-up meeting and working in two-week sprints. For other teams, Agile is doing all of the practices in Scrum, Lean, and XP. Which is right? I say …
Continue reading “Seven Strategies for Vanquishing Waterfall”
Read MoreTrue innovation means pioneering into territory no one has ever been in order to discover something new. Not everyone can do this but fortunately for the rest of us some can. Still, it can be helpful to find ways of supporting innovation. Here are seven strategies for fostering innovation. 1. Believe it’s possible There’s a …
Continue reading “Seven Strategies for Fostering Innovation”
Read MorePeople end up as software developers from a variety of backgrounds. Regardless of how we became software developers, if we want to stay on the leading edge of the industry we must be constantly learning and growing as developers. Here are seven strategies for growing as a software developer. 1. Do your own project Having …
Continue reading “Seven Strategies for Growing as a Software Developer”
Read MoreBugs are the bane of the software industry. They can be difficult to find and costly to fix. How we deal with bugs has a big impact on our software development process. We can use bugs to show us ways of improving our process so that similar bugs aren’t created again. Here are seven strategies …
Continue reading “Seven Strategies for Fixing Bugs”
Read MoreDeveloping software is risky and expensive. Software is formless and hard to understand. Subtle interaction can cause software to affect seemingly unrelated components. A good development process focuses on mitigating risk by finding problems early, before they become showstoppers, and while there’s still time to resolve them. 1. Integrate continuously Creating a system that can …
Continue reading “Seven Strategies for Burning Down Risk”
Read MoreSoftware is different from tangible goods and it must be measured differently. The tasks that developers do are different from day to day, so we can’t directly measure productivity in any meaningful, normalized way. I often advise teams not to measure velocity because it can send the wrong message and give management the wrong goals. …
Continue reading “Seven Strategies for Measuring Value in Software”
Read MoreOkay, 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 …
Continue reading “Seven Strategies for What to Refactor”
Read MoreGiven 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 …
Continue reading “Seven Strategies for When to Refactor”
Read MoreRefactoring 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 …
Continue reading “Seven Strategies for Helping You Justify Why to Refactor”
Read MoreScrum 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 …
Continue reading “Seven Strategies for Effective Retrospectives”
Read MoreCode 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 …
Continue reading “Seven Strategies for Better Code Reviews”
Read MoreClean 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 …
Continue reading “Seven Strategies for Cleaner Code”
Read MorePeople 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 …
Continue reading “Seven Strategies for Increasing Code Quality”
Read MoreThe 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 …
Continue reading “Seven Strategies for Splitting Stories”
Read More“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. …
Continue reading “Seven Strategies for Writing Better Stories”
Read MoreThe 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 …
Continue reading “Seven Strategies for Effective Daily Stand-Ups”
Read MoreCommunication 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 …
Continue reading “Seven Strategies for Higher Fidelity Communication”
Read More