SoftwareHut is an Agile development software house. We firmly believe that agile development approach is the primary factor in our success. We try to evolve this well-established methodology within our projects and adjust its main guidelines to our clients’ needs and projects’ goals.

We also regularly work on optimising our processes and structures to catch up with a demanding complexity of new systems to be built. Following this path, we discovered in the recent time that features teams based structure is one of the best Agile team structure for our software development projects.

In the past, we used to organise our teams around the layers of architectures until one particular web development project happened. The project which showed us some disadvantages of the way we assembled our teams. It turned out that our architecture-focused teams responsible for presentation layer couldn’t get a good grasp – either of our JavaScript developers nor the structure as a whole.

Transition to feature teams

We quickly understood that our approach isn’t optimal for every project we led. Sometimes it can be associated with such drawbacks as time-waste caused by hands-off and reduced communication, implicated by misunderstandings between specialists gathered around different layers.

Experimentally, we gathered some of our developers from various specialisation areas to create one team. Then we found out that communication between front-end and back-end specialists rose substantially. Furthermore, issues were resolved much more quickly and easily.

It motivated us to transit our engineering culture to feature teamwork. Of course, we’re aware of the fact that one methodology perfect for the particular project, may not be ideal for the other one. However, we try to implement feature team approach as a natural amplification of our Agile development culture to the most of our projects. We believe that feature teamwork brings our clients measurable benefits and creates the most favourable environment for IT pros.

Benefits of feature teams

Below are the most significant reasons, why we structure our teams around features:

  1. Scaling up Agile Development

    Teams oriented along technology layers face challenges with integration, hands-off and communication misconceptions. Feature teams based development is a natural consequence of our agile development approach.

    According to Agile methodology, a product should be delivered in small, frequent deliverables of working and well-tested software. Feature teams are gathered around customer-centric features and include the full scope of software development roles – developer, architect, analyst, tester, etc. They are given complete requirements, keep all dependencies within the team and can deliver a full customer feature.

  2. End-to-end delivery of working features

    In the feature team model, each sprint ends up with building new end-to-end functionality. A team must go through all levels of the technology stack, so there is no place for sprints without explicit product increment (as per Agile methodology). Moreover, feature teams are self-managing units, which don’t require a project manager, because their goal enforces them to self-coordination and cooperation within the team to ensure end-to-end completion.

  3. Better code quality

    Shared responsibility for delivering working end functionality creates pressure on the team to keep the code clean and increases competitiveness between the teams working on the same project. Additionally, the whole-team responsibility of the end-to-end feature empowers product usability by a focus on customer and market value.

  4. The power of a balanced multidisciplinary team

    Feature teams work on a complete customer-centric feature across all components, architecture layers and disciplines like designing, analysing, programming, testing, etc. A team is built by multi-skilled people. That means that they can switch between different functions and their roles are not limited to only one software development competency. For example, a developer can deal either with programming, as well as with analysing, or even testing if needed.

    Team members hold their primary roles but are open to learning new functions. That is how the power of learning-oriented structure reveals and influences the quality of the whole process. Feature teams are supposed to be long-lived groups, which work together even for years. Combining that with a learning-focused approach, gives an opportunity to create a bunch of top notches IT pros with cross-functional competencies and excellent communication skills. Moreover, such team structure stimulates higher performance and better quality.

  5. Highly effective communication

    Feature teamwork is based on small, co-located teams that can easily communicate daily, ensuring a clear developing process and open communication. Such work environment empowers teamwork and builds team rapport. Another dimension of co-location is enhancing learning processes on the individual and group level by partnering experts in a variety of specialisations.

  6. Minimising the wastes of handover, waiting and underutilised people

    In traditional component software, development model work is handed from one team to another, and that’s time-consuming and generates risks to the project. There is always a danger that the developed functionality is not good enough for the next team to work on. Conversely, feature structured development reduces significantly waste of handover. It means less waiting and faster results.

  7. Accelerating time-to-market

    Feature team development requires clear structure, and that reflects in practice by separation of application modules and assigning them to separated multi-skilled teams. Parallel work of many teams on different application modules accelerates the whole software development process.

    Another factor that increases feature teams’ pace of work is a local decision-making process. Decisions made locally within a team instead of a decision taken by project managers or steering committees optimise time, reduce waiting and being held back by dependencies. Thus the whole team is much more productive.

  8. Innovation culture

    Feature teamwork drives innovation. Small, cross-functional groups are highly specialised in their part of the job. Team members feel secure and confident with each other because they work together for a long time and have good communication flow. People aren’t afraid to offer and test new solutions. In addition to that, decisions are made locally, so there are no obstacles in the creation process. This work environment shapes the culture of innovation.

  9. Autonomy and responsibility drive motivation

    Feature team members derive profound benefits from shared accountability and team autonomy, also on an individual level. They feel higher motivation and job satisfaction because they can work on the end-to-end feature and as a consequence, they have complete control of ultimate results of their work. They make a decision independently, what gives them uninterrupted workflow within their group and leads to higher team productivity.

Fresh software development tips delivered straight to your inbox

Subscribe to our monthly newsletter with useful information about building valuable software products.
Don't worry, we value your privacy and won't spam you with any bussines enquiries!

lukasz_muszynski

Project Manager

Project Manager specialised in Scrum. Experienced in delivering advanced systems such as Supply Chain Management. He has expertise in the delivery of projects for Banks, E-commerce and Startups. Member of Agilestok - local agile enthusiasts group.