It’s been nineteen years since the creation of the agile manifesto, and with it came the popularization of the idea that teams should be organized cross-functionally. These cross-functional teams work together on solutions rather than being organized by function, relying on handoffs between organizational silos. While a lot of progress has been made on organization and team design, I still see a lot of companies struggling with issues stemming from an overreliance on specialized teams and specialist team members.

Specialization and Solo Work

The problems with specialization within teams is compounded when teams (or their organizations) rely exclusively on solo work. Teams of specialists…

I’ve spent the last few years coaching teams and introducing them to Mob Programming. I was fortunate to get to coach with some of the finest technical coaches, Industrial Logic consultants Tim Ottinger, Michael Rieser, Bill Wake, and Steve Ropa. During our time together, coaching over a dozen teams, we’ve discovered a set of starter practices that help teams find early success with Mob Programming.

Mob Programming is a fantastic way to teach technical practices like Test-Driven Development (TDD), refactoring, legacy code techniques, evolutionary design, etc. Teams adopt these practices quickly and continue to improve through mob programming sessions. …

Commonly I see the measurement of unit test coverage contribute to the continuation of poor development practices. Often when teams try to improve their code coverage, they unwittingly create more problematic code that continues to be a drag on the organization. Increasing code coverage without improving development practices isn’t likely to lead to improvements in the quality of the software.

Photo by Markus Spiske for Tech Daily

Coverage is a Result Not a Goal

The crux of the problem is that high code coverage is the result of quality-first development practices. Naturally, organizations with low coverage are missing these practices. …

There is a pervasive problem in the software industry stemming from a misunderstanding of automated testing. Companies are investing increasing amounts of money and time into automated testing strategies and test suites, but are not seeing an increase in quality or value delivery to customers. Thankfully automated testing is now being seen as a necessary complement to manual, exploratory testing. However, many organizations don’t understand the costs and benefits of the various types of automated tests available to them.

Two big misconceptions set the stage for a risky and expensive approach to automating tests. First, is the idea that automated…

Image courtesy of wokandapix from Pixabay

Learning tests are an unfortunately underutilized practice on software development teams. These tests provide several benefits throughout the lifetime of a development project or product. In fact, learning tests have a unique quality in that their value changes over time. Learning tests can save teams significant amounts of research and regression testing time. They reduce typically high risk changes to running a small, fast test suite.

What is a Learning Test?

A learning test is a way to explore a third-party library or API outside of the domain of an application.

When a team is starting to experiment with a third-party library or beginning to…

When working with teams who are new to refactoring I like to help them practice techniques with code katas. A favorite of mine is one that I call The Code Smell Scavenger Hunt Kata. It gives development teams the opportunity to practice identifying and refactoring code smells in their own codebase.

It’s worthwhile to work this kata into the team’s practices if:

  • The team needs practice identifying code smells
  • The team needs help learning and practicing refactoring techniques
  • The team struggles with the attributes of high quality, changeable code
  • The team wants to be able to practice using their own…

It is common for software companies to have cost accounting tunnel vision, solely focused on decreasing the costs associated with developing software. Consequently, a strict focus on reducing costs can actually lead to higher costs for worse results when examining the entire lifecycle of the software. Worse still, poor delivery and development associated with this style of “lowest bidder” software development create ample opportunity for these companies to be eclipsed by their competitors. A myriad of factors can contribute to this kind of development culture, but it often starts with treating software development as a cost center.

In the early…

As teams get more comfortable with refactoring, I often see them practicing what I call speculative refactoring. When they encounter code that is ugly, indecipherable, or too complicated, they decide to refactor it. The problem is, this code has nothing to do with what they are currently working on. As much as I like to encourage the motivation to improve, this is a trap that leads to taking on risk without any of the rewards to the business.

I recommend techniques like Opportunistic Refactoring and Preparatory Refactoring where the focus of refactoring is in support of adding the feature or…

The company I work for was interested in agile software development so we adopted Scrum a while ago.

Really? Working on an XP team was easily the most rewarding experience of my career so far. It changed the focus of the rest of my career. How do you like it?

Uhm…Scrum is just a tool for micromanagement. Now I get hassled by a Product Owner, a Scrum Master, AND my manager.

That sounds awful. Tell me more about it. Are you releasing after every sprint?

No, we work on big projects. Some may take up to a year to complete…

It’s really quite simple to prevent innovation and ruin productivity on software development teams. Companies that send a clear message that initiative and experimentation are punishable and move the decision making away from the people building the software, create organizations where innovation and effectiveness are impossible.

In most companies struggling with these issues leaders say they want the organization to innovate. They very well might, however there is often frustration around why they can’t grow their organization and be as effective as companies like Netflix, Etsy, and Amazon. They don’t recognize how fundamentally different these companies are, both in the…

Anthony Sciamanna

Software Engineer and Technical Agile Coach at Industrial Logic. Passionate about XP, Lean, Modern Agile, and helping software organizations improve.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store