Posted on 3 Comments

Pros and cons of dedicated teams

One concept that’s been getting a lot of play in recent years is the idea of dedicated teams. In the context of software development and support activities, the concept boils down to this:

  1. Any single team is assigned to just one development initiative or to the support of just one set of technical assets at a time; and
  2. Any individual is assigned to just one team at a time.

With this model, you might dedicate Team A to ongoing enhancement and production support of the company’s call center systems. Team A does not do any work to support other business operations or other technical assets, such as contributing to the development of a loan underwriting system, or providing production support for the company’s enterprise service bus. In addition, if Stephan is a member of Team A, he is a full-time member of Team A. He is not assigned 75% to Team A, 15% to Team B, and 10% to Team C.

The dedicated team model is an alternative to a matrixed model of personnel assignment (or “resource allocation,” if you can tolerate speaking of humans as “resources”). With a matrixed model, teams are formed specifically to carry out particular initiatives (typically when the discrete project delivery mode is used), and disbanded at the conclusion of each initiative. Individuals may be assigned to more than one of these temporary teams at the same time, and expected to split their time among multiple initiatives.

Managers who are accustomed to thinking in terms of maximizing individual resource utilization often have difficulty understanding the potential advantages of the dedicated team model. I thought it might be helpful to summarize some of those advantages:

  • Avoiding artificial dependencies between projects
  • Reducing induced administrative overhead
  • Reducing context-switching overhead
  • Increasing domain knowledge
  • Increasing team cohesion
  • Improved visibility and clarity on progress

There are also potential disadvantages to be aware of, such as:

  • Stagnation of technical skill sets
  • Boredom and its associated morale problems
  • Reduced opportunities to learn about other areas of the company’s business, with the risk of developing a narrow perspective on the work
  • Missed value from deep specialists

Continue reading Pros and cons of dedicated teams

Posted on 1 Comment

It’s a question of its context

I read an article in Harvard Business Review today entitled “I won’t hire people who use poor grammar,” by Kyle Wiens. Wiens assesses job candidates, in part, on the basis of their use of English grammar. He goes so far as to administer a written grammar test to all applicants.

Amusingly enough, the website generated a URL by truncating the title to “i_wont_hire_people_who_use_poo.” I’m pretty sure I wouldn’t, either, unless using poo happened to be part of the job description. “Seeking howler monkeys for stock floor trading positions. Throw your résumé against the wall and see if it sticks.”

Um, okay, where was I? Oh, yeah. Is Wiens’ approach excessive? Ah…wait a second. Should that be, Weins’s? Does it depend on whether you’re in the US or UK? Does it depend on which form your fourth-grade teacher thought was “the rule?” <sigh/> I guess my chances of passing Wiens’ grammar test are low. Oh, wait…is it okay to use faux XML in a narrative? I’m so confused!

Anyway, comments on the article run the gamut from strong approval to strong disapproval. I find myself both agreeing and disagreeing with Wiens.

Let’s start with the points of disagreement. That’s usually more fun.
Continue reading It’s a question of its context

Posted on 7 Comments

Why should we do code katas?

I participated in a coding dojo recently in which some of the comments I heard caused me to think about the purpose of practicing code katas. It seems that many programmers, including some pretty advanced ones, don’t quite get the point.

We were reading about some code katas online so that we could choose one to do for the dojo. We came across a description of the Bowling Kata written by Robert C. “Uncle Bob” Martin. A couple of the guys quickly dismissed it when they saw Uncle Bob’s name. “He’s too prescriptive,” said one. “I don’t want to be told how to approach the problem,” said another. They looked for a write-up of the Bowling Kata that didn’t try to guide us in how to approach the problem.

They found one and we used it. All evening we kept running into silly little issues and speed bumps, such that we really didn’t get a lot of value from the whole exercise. We went down tool-related side paths, broke our development environment a couple of times, forgot what we were trying to accomplish, and started over multiple times. It never felt as if there was any goal or even a general direction. Despite the fact the group included some very fine professional programmers, I have to say it was not the best coding dojo I’ve ever been in.

Obviously, due to the sort of democratic and participatory event a coding dojo is, I have to accept a share of the blame for that. I actively chose not to make suggestions to bring the activity onto some sort of intentional course, because I wanted to see where it might go. In the end it went nowhere, but the experience led me to sit down and reconsider the reasons we do these things, and how we can get value from doing them.

The key point is that there are reasons for Uncle Bob’s approach to katas. Rather than getting to the point directly, I’m going to begin with a couple of rambling digressions, as per my usual style. Continue reading Why should we do code katas?

Posted on 13 Comments

The commoditization of “agile”

Sales consultant Phil Styrlund had an insight about the way markets have evolved in the Internet age that I think is relevant to information systems consulting in general and to "agile" and "lean" services in particular: Everything is a commodity. Anyone can obtain any goods or services they want by ordering them online.

It used to be that companies offering a product or service could distinguish themselves from others offering similar products or services by highlighting the special features of their product or by bringing unique capabilities to the table. Today, customers just don’t want to hear that. They have access to all the information available about your product or service. They already know. There’s nothing you could say about your product or about yourself that would make you any different, in the eyes of customers, from all the others in the market who are trying to sell the same things. You are a commodity.

Continue reading The commoditization of “agile”

Posted on 1 Comment

The fall and rise of shadow IT

Years ago, as far back as the mid-1980s if memory serves, IT managers were worried about a phenomenon they called “shadow IT.” The term refers to cases when business managers implement their own departmental IT solutions in response to poor support from their internal IT departments. The phenomenon raised alarms in the minds of IT management. They were losing “control.” Others were treading on “their” territory. Lions and tigers and bears! Oh, my!

I was reminded of this when I saw an announcement of an upcoming webcast entitled, “What’s a CIO to do About the Rise of Shadow IT?” This suggests that many IT managers still don’t get it. So-called “shadow” IT is not a “problem.” It is not an intrusion on anyone’s sacred territory. It is an indicator that something about the status quo is causing people’s needs to go unmet.

The question should not be, “How dare they try to take over our territory?” The question should be, “What are people trying to tell us about their needs?”

Continue reading The fall and rise of shadow IT

Posted on 2 Comments

BBUF: Big Budget Up Front

The packaging of ideas represented by “agile” includes elements pertaining to organizational culture and elements pertaining to processes and practices. Although many of us would like to see organizations adopt useful elements in both areas holistically, in my experience it is not the case that the two are welded together. Instead, cultural aspects and mechanical aspects affect work flow and outcomes differently and independently.

In most organizations that have adopted “agile” methods, people have embraced a subset of the mechanical elements of “agile” development, but they have no understanding of the cultural aspects and, in many cases, no interest. Yet, I think it’s fair to say they are “using” or “doing” agile development. It’s definitely possible to employ some of the mechanical aspects of “agile” development in the context of an otherwise-traditional organizational structure and culture. It’s happening all over the world right now. Because of this reality, I often use the word “agile” to refer only to the mechanical aspects. I sometimes run afoul of agile practitioners because of this.

When I suggest that the use of “agile” methods does not automatically mean we are doing adaptive development, some agile practitioners protest. Continue reading BBUF: Big Budget Up Front