We have done a huge disservice to leaders and managers, as well as teams. There are plenty of people that will say we don’t need managers and leaders. People can lead themselves. While there is an aspect of this that may be true, there are a lot of steps to get close to that idea.
We’ve seen how refactoring becomes the primary design activity on an Agile team. Diligent, confident refactoring is possible to the degree that the code is tested through an automated test suite. If the tests don’t cover a portion of the code, a defect may be introduced when that code is altered. If the tests are
I’ve learned not to assume a team has experienced a variety of software design skills. Some are writing elegant functional-paradigm code in archaic, challenging languages. Others are writing strongly-coupled, heavily-commented, and procedural static methods in Java or C#.
I’ve found that “good design,” though not really subjective, is certainly contextual. It depends
In this newsletter series, we explore the intersection of typical Agile methods with technical software development practices, tools, skills, and recommendations.
I was recently asked about the difference between unit-testing and Test-Driven Development (TDD). Specifically, why—if the end results are the same—would I recommend TDD overwriting unit tests after coding?
Last month we talked about good software design and introduced the notion of code smells. Code smells are names given to those instinctual thoughts you have whenever you look at a chunk of less-than-elegant code. Some are subtle, and some really stink.
Each code smell represents something that would make understanding,
As an Agile trainer and coach, I have worked with hundreds of companies over the past 10 years. After reflecting back on my interactions with all these companies, I have found there is a strong correlation between a single decision companies make and how much dysfunction there is in the company.