Dividing teams into silos is probably the most logical way to structure an organization. Your product managers report to your VP of product management, your developers report to your director of development, and your engineers report to your chief technology officer.

Seems straightforward, right?

There’s not necessarily anything wrong with this reporting structure, but these silos have a way of changing the mentality of an organization. One team doesn’t always share information with another team, and this can impact efficiency and accountability, which affects productivity — not to mention employee morale and organizational culture.

Silos Make for Supply Chains

With this siloed, stuck-in-the-past mindset, management starts to view the organization as more of a supply chain for software. You have your procurement group (otherwise known as product) responsible for defining requirements, your factory for creating goods (or design), and your delivery team for bringing those goods to the end customer (which would be engineering). Just like a traditional manufacturing supply chain, this model extends the total execution time of your product.

What’s more, siloed teams can be fairly task-oriented. The motivation is to get your own tasks completed, not to make a world-class final product. As a result, you may find “damaged” goods halfway through production that need to be sent back to the beginning — adding even more time to the process.

This pattern is all too common in the software industry. Products are either late to market or completely underwhelming to stakeholders.

That’s why it’s so important to establish cross-functional teams. Cross-functional teams improve software development by:

1. Lowering development hurdles. When a team lacks access to critical information, domain expertise, and decision makers, you force it to wait and rely on others to complete tasks. This inevitably leads to project delays.

But by reducing external dependencies, that team can now tackle challenges, react to issues, and solve problems on its own. It becomes an autonomous unit, able to better lower the hurdles in its path. In other words, a full-stack team is much faster than a siloed one.

2. Improving product quality. A siloed team often lacks the authority and accountability to make changes as necessary. Its members also tend to share similar backgrounds and many of the same skills, so they may not always see the forest for the trees.

Going cross-functional with departments brings the responsibilities from each silo into one team, and its members can work and innovate from the bottom up. You move the whole team closer to the end result, which can improve the quality of your product.

3. Shifting from output to outcome. If software development fails to meet the expectations of key stakeholders, they’ll start asking for more updates, reports, and meetings about the progress of your products. This can actually set the tone for your organization; value is placed on output as opposed to outcome.

With a cross-functional team, its members deliver value directly and take ownership over specific business goals. They’re outcome-oriented from the start.

One of the longstanding concerns of software projects is the ability to move fast. The same can be said for quality. Cross-functional teams address the concerns of both timeliness and quality by shifting the focus from output to outcome. Teams no longer fixate on the task but on the product itself, which is critical for reaching your company’s goals.