The general meaning of "cross-functional team" is a team which combines specialists in different fields that are required to reach the goal.

But it looks like in Agile cross-functionality means not only combining different specialists, but making them mix. Henrik Kniberg defines cross-functional team this way: "Cross-functional just means that the team as a whole has all skills needed to build the product, and that each team member is willing to do more than just their own thing."

But where is the line drawn? Is it normal to ask developers to become testers for an iteration if it is required?

  • It is common that each developer is testing his code. For example Scrum team should not have specializations - everybody should be able to write and test code. The reason is that at the beginning of the iteration (sprint) there is nothing to test so the pure tester has nothing to do. – Ladislav Mrnka Mar 20 '11 at 15:34
  • 2
    @LadislavMrnka Cross-functional does not mean you shouldn't still have specialists! – Michael Oct 7 '11 at 2:46
  • @Michael: Yes you can have specialists but they should be cross functional = they should be able to do other tasks as well. – Ladislav Mrnka Oct 7 '11 at 9:46
  • Being a specialist doesn't mean to know one thing at the expense of all others. – JeffO Oct 27 '12 at 17:51
  • 3
    Why is it so often I see talk of "programmers should be able to test" but never "testers should be able to program"? – Steve Folly Apr 10 '15 at 8:20

My take is that a cross-functional team is a team that includes people from the different functions of a company: engineering, IT, technical writing, marketing, finance, legal, sales, HR, operations, quality, and executive.

In larger companies, these "functions" are put into silos (lines of management), but to get things done you generally need the time of someone from all of them.

If you are doing TDD or something like it, yes, it is perfectly normal.

However, in general the responsibility for signing off on developer work should not be in the hands of those same developers.

|improve this answer|||||
  • 2
    This is exactly what cross-functionality is not in agile methodologies like Scrum. – Ladislav Mrnka Mar 20 '11 at 15:32
  • 1
    @Ladislav Mrnka: It wasn't clear from the question that this was Agile-specific. In Agile methodologies, I still think it stands. In any methodology, you sometimes need to do something outside your area of expertise ("function") to get the job done. C'est la vie, c'est la guerre! – Peter K. Mar 20 '11 at 16:46
  • Why "the responsibility for signing off on developer work should not be in the hands of those same developers"? Not if you want to decrease cycle time. – Todd Owen Mar 11 '18 at 23:57
  • @ToddOwen And decrease software quality. – Peter K. Mar 12 '18 at 0:30
  • @Downvoter: Any comment on why you don't agree? :-) – Peter K. Aug 10 '18 at 15:38

A cross-functional team is one where functional experts from different domains come together to define what to build and to assess if what is being built is useful. In an agile environment, these assessments will happen often.

However, the domain experts will determine how to do their particular part of a project. Software developers will develop software. Testers will test. Operations people will run the software, and so on.

Having the opinions of development, testing, and operations is extremely useful in defining a good product, and that is where lies the value of cross-functional teams.

|improve this answer|||||
  • I don't think the team defines what to build, but how to build it. The product owner decides on what. Also I think team members should not limit their activities to a domain they are specialist in. The idea is to do the tasks that need to be done to realize the team goal, create a production quality product. – Kwebble Apr 21 '15 at 17:47

A good cross-functional team has and needs people who are 'a jack of all trades' but also a master of some. Usually one or two.

For instance, on the ones I've worked on. I specialize in C++ and a couple web languages, but I know about a million. I'm fluent with video editing and 3D media and that sort of thing on the side plus business and project management. So on this rather small team taking on large projects, I'd do some hardcore coding most of the day and spend part of it doing grunt work on the site and getting different media ready.

Not many projects use all my skills but to rely on multiple, I think that is 'cross-functionality'. Some times it is a really good, efficient design, other times not so much.

Thank God for when I don't have to be a developer / network admin.. that is no fun. These small business in my area..are insane. Who trusts their network to programmers, sheesh. Last thing you want is to see me try to 'debug' your routing table :P

|improve this answer|||||

A "cross-functional team" to my mind is more of a bunch of generalists that come together to get the job done. The edge is in the versatility of handling different kinds of tasks as there isn't the bottleneck that would happen in a group of specialists where some people can only take on some tasks.

Yes, it is normal for developers to become testers if it is required to get the work done for an iteration.

Cross-functional can fall into that territory where it is a buzzword that can have various meanings depending on the company. Some may take it to be the highest level, where a developer could be anything from a gopher to a temporary CEO and others may view it much more specialized so that it is different kinds of developers used. A developer may have to be a business analyst, system administrator or tester some of the time. I remember a few years ago now where I had just started a job and another developer and I were testing a release as one of our first tasks as there was a shortage of testers at that time to properly test the release.

|improve this answer|||||
  • 1
    I don't think developers being testers fits the cross-functional definition. That seems more like a jack-of-all-trades type scenario where developers also test, take sales calls, go out and buy coffee to restock the office, etc, which may be typical in a startup. A cross-functional scenario seems more like a situation where, for instance, you might be a developer, and I might be in marketing, but we're working together as a team to build and market the product. – jmort253 Mar 19 '11 at 17:45

A cross-functional team is not just about areas of expertise but attitude towards getting things done. The members step up and take on the tasks at hand. You don't hear, "That's not my job."

Constraints on a project are not always technical. Sometimes you don't have the luxury to hire an expert at every task and only require everyone to work in their prefered area.

You never want to pull devs away from coding, but in some teams it can't be helped. Normal is relative.

|improve this answer|||||

Not the answer you're looking for? Browse other questions tagged or ask your own question.