Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
    
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
    
@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
add comment

6 Answers 6

up vote 10 down vote accepted

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.

share|improve this answer
    
This is exactly what cross-functionality is not in agile methodologies like Scrum. –  Ladislav Mrnka Mar 20 '11 at 15:32
    
@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
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
    
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
add comment

i dont agree that that cross functional means everyone doing everything. It is more like people with different functional skills work togther in each and every team, a mix of developers, testers and UI experts in a team and another set of Dev/ testers/ UI experts means cross functional.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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