Software team structure software engineering


















The CTO of a growing startup recently asked my opinion on how to structure their large engineering team. They are scaling up quickly and looking for ways to improve efficiency. He had been thinking of switching from horizontal functional to vertical product teams.

One concern was the potential impact of this change on their mobile app development process. Their mobile releases tend to need a coordinated effort from mobile engineers. Today their mobile team sits and works together to manage this. Splitting them up into separate product-centric teams could be problematic.

But their current functional team structure makes coordination on products challenging. Their mobile team is dependent on many other functional teams to build any feature or product. They need to coordinate with product, design, backend and API teams to ship any feature.

Each team with its own priorities, which need negotiating to line up interests. Team structure is a common challenge for growing tech organizations. It not only affects communication and productivity but can also impact team morale.

The core question is whether one should organize people around functions e. There are pros and cons for each. Let me start by making the case for each. Functional teams are probably the most common form of team in the growth stages of a tech org. As teams expand, people tend to group up by specialization. Designers, Engineers and PMs sit with others of similar roles and skills. Within engineering, the same thing happens.

Mobile, web frontend and backend engineers etc end up grouping together based on function. This seems to happen naturally for a variety of reasons. Functional teams are also great for sharing knowledge and learning.

People develop their skills by working with peers who have similar expertise and interests. In my experience functional teams do tend to be more efficient. They focus on a single problem space and avoid a lot of context-switching overhead. While there have been many benefits, increased engineering throughput has had the biggest impact on the organization. Our technical design and proof-of-concept phases provide the time needed to understand and ideate on complex technical challenges and scope definition.

In turn, the resulting implementation tasks are well defined and straightforward. By the time team members start coding, surprises are minimized and engineers can focus on what we do best: writing clear, idiomatic and performant code.

Developers have made a recent shift from function-specific roles to expertise-based need fulfillment. We emphasize flexibility and continuous improvement, empowering every teammate to take ownership. We embrace collaboration and automation to limit toil and wasted work. A new idea at Kustomer can come from anywhere: customers, prospects or our own team. Software engineers, product managers and designers work together to prioritize projects, understand requirements, scope and architect work.

They break large projects down into smaller, independently releasable chunks. Engineers work in two-week sprints to develop features, automated tests and documentation. Every pull request automatically triggers tests in continuous integration, where engineers solicit a review from teammates. Once code is merged to the master branch, we automatically deploy that code to our staging environment.

When needed, QA engineers help run additional tests. Engineers finally release their own code to production using our custom Slack bot, often multiple times a day. The core themes and values of our SDLC stem from our earliest days as a company. We always strive to maintain flexibility while encouraging ownership. These skuads are organized by product area. They are empowered to act as mini startups with dedicated product managers, designers, engineering managers, front-end engineers, back-end engineers, site reliability engineers and test engineers, who all sit together.

Skuads become experts in their product areas and own related bug fixes and tech debt. This enables everyone, regardless of role, to make informed decisions and have substantial impact and influence in their domain.

As an engineer, there will always be new problems to solve. At Cockroach Labs, we release a section of our database software every six months. To do this, we map out our major initiatives and big features based on our company objectives and feedback collected from our users.

Then we do a mini-release every month of the cycle to test new changes and get customer input. New problems to solve crop up all the time, so we always maintain a healthy degree of flexibility. That way we can respond quickly to new information throughout a cycle. Though six months may seem like a long time, in the database world, this is a rapid pace of change for mission-critical software.

We decided to run our releases at this cadence so that we can provide value to our customers faster but avoid making it difficult for them to keep up to date with the latest version. There are a handful of factors to consider when evaluating methodologies like Agile and Scrum, such as the needs of the business and its stakeholders, the size and structure of the engineering team and the size and complexity of its software. And the use of the same methodology can vary from company to company.

Director of Engineering Dick Fickling. Fickling said the focus on quality at the consumer-facing banking app pushes his team to release software updates weekly. However, they mix in Kanban, which Canals said gives the engineering team a greater ability to plan and test. The StackCommerce team even created a game to help them objectively gauge the effort required to work through upcoming backlogs following sprints.

Developers at the two companies have taken popular practices and made them their own based on their specific needs and workflows. Dave Inc. The leader said frequent updates improve the user experience while giving new developers the opportunity to drive tangible impact on the platform early in their careers.

Our software development life cycle starts with the structure of our team. We have several squads who cover different parts of our product. Each squad has a product manager, quality assurance engineer, designer and between two and six engineers. The executive team works with product managers to set quarterly goals for the organization. Then, the PM prioritizes the work that makes it into each two-week sprint using the Scrum methodology.

While we follow the typical Scrum technique, we also put our own spin on it. Instead, we focus on quality assurance and data to guide our work and prioritization throughout the organization.

Our focus on QA has allowed the development team to have an Agile-focused approach. We release weekly in the app stores, which is rare among software companies. Quality assurance goes through a full regression and test process every week. We decided on this structure very early on and have continuously evolved it to be in line with the needs of the business. As a fintech app solving pressing financial challenges for our users, our approach needs to be very nimble and allow for rapid iteration and innovation.

Shipping mobile updates every week allows us to not only test and iterate quickly to better serve our users, but it also keeps the team energized. We practice a form of Agile software development that utilizes aspects of both Scrum and Kanban. We work in sprints, typically two weeks in length, where pre-planned engineering requirements are worked on and completed, releasing incremental progress toward a specific goal.

The result of this exercise is a list of action items for the team to take into consideration during the next sprint cycle. We have experimented with various organizational structures focused on different parts of the business and customer experience. However, planning and prototyping have always been at the core of our software development process. The predictability and reliability this process provides allows us to focus more on writing and shipping great software and less on processes and procedures.

Our commitment to this Agile workflow has created a stable and reliable infrastructure that has benefited our business and customers for almost a decade. TrainingPeaks provides athletes with endurance training solutions. To provide a framework for meeting their engineering goals, Chief Engineer Todd Palmer and his team rely on Lean software development methodology.

They landed on Lean after grassroots efforts, trial and error and direct experience with customers and the market. We use a Lean software development process throughout our organization. Our goal is to deliver value from idea to customer using market-focused, mission-driven teams. Continuous integration, delivery and improvement are core concepts to not only deliver value to our customers, but also for us to improve and grow as an organization.

Everyone is capable of shipping their work to production and is responsible for working in small batches, building in quality, getting feedback and taking engineering seriously. Our path to Lean was started by grassroots engineering efforts, trial and error, learning from our failures, customers and the market. Andy Batta, engineering team lead, explained why his team at Pie Insurance uses Agile Scrum Practice to manage and plan work.

Give us some insight into your team's software development life cycle. At Pie, we use Agile Scrum with two-week sprints to manage and plan our work. Code changes undergo reviews in GitHub, which requires all unit tests to pass in addition to peer approval before changes are accepted and merged. Once merged, the change undergoes a suite of automated acceptance tests before eventual promotion to production.

Each engineering team, which includes an embedded software development engineer in test SDET , is responsible for quality, so changes to automated acceptance tests are also the responsibility of the engineering team. We started this approach very early on at Pie and have made refinements over the last two years.

The decision to use Agile Scrum and GitHub allowed us to rapidly grow the engineering organization. Most engineers joining our team have experience with GitHub, Agile Scrum, or both, which enables new engineers to quickly make valuable contributions to the team. The focus on quality throughout engineering reduces the time from initial development to production deployment by catching issues earlier in our development life cycle.

Not only does Agile remove ambiguity, but his team can also operate at a higher speed. After each demo and retrospective, they evaluate their results so they can improve.

By following the 12 Agile principles and the Agile manifesto, Xactly is able to deliver high-quality customer valued products in a rapid and efficient manner. The self-organizing scrum team follows practices such as paired programming, API first development, automated testing, continuous integration and automated deployment.

We do regular backlog grooming, sprint planning and standups. It has helped us remove ambiguity early in the cycle and has allowed us to operate at a higher speed. Continuous integration, automated deployment and automated testing reduce time-to-market for any features. The Agile process has also enabled us to practice a DevOps philosophy, which has improved our operational efficiency.

But if you still have questions, we are here to help! Relevant has been assembling dedicated teams for more than 8 years, and we are ready to start building your agile team that will lead your project to success.

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information. Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

Andrew Burak. Table of Contents. Tags: agile dedicated team software development. My company has helped hundreds of companies scale engineering teams and build software products from scratch. Let's connect. Related articles. Contact us to build the right product with the right team. Please leave this field empty. Attach file By sending a message you agree with your information being stored by us in relation to dealing with your enquiry.

Please have a look at our Privacy Policy. Top-rated software development company. Our core services: Team extension. End-to-end development. Do you want a price estimate for your project?



0コメント

  • 1000 / 1000