Keeping pace with the ever-increasing complexity of software products alone is a challenging task. However, most companies are working on more than one sophisticated product at any given time, each of which may combine hardware, software and even service components. Large companies today are also relying on multiple geographically dispersed teams and departments that contribute to the several lifecycles (xLM) involved in the development of such products. All these factors together add to the daunting complexity of software development today.
In order to stay in control of all processes, the management of multiple development streams and several teams will have to be brought together in one platform. This helps align the everyday work of all teams with the strategic priorities defined by upper management.
Managing teamwork and scaling Agile
The several lifecycles involved in the creation of modern products can necessitate the use of different methodologies: Waterfall/V-model is still widely used for the engineering and manufacturing of hardware components, while software development increasingly relies on Agile. The part companies tend to worry about is scaling Agile, but connecting the lifecycles of hardware, software and service can also be tricky.
While some think that the Agile methodology scales just fine on its own, most teams choose to go with a framework that specifically aims to support the scaling of Agile. Check out our earlier blog post for more info on the various approaches of DAD, LeSS and SAFe®. It's important to note, however, that these only address the scaling of Agile, not the connecting of lifecycles.
Whether you decide on implementing one of these frameworks, or plan on scaling processes your own way, it's a good idea to borrow some ideas from these advanced frameworks. In the following, we'll draft up the team concept partly inspired by the Scaled Agile Framework that we have used to build codeBeamer ALM's advanced team management functionality, which also allows you to manage multiple lifecycles from a single platform. This concept should help you organize the efficient management of several development streams & multiple teams.
Scaling development in practice: a basic team concept
Let's start at the root of your new project: you're going to start out with an identified market demand. This demand helps you define what sort of product you are going to develop – what market need it will respond to, and how exactly it should work to best satisfy your future customers. After this is done, you'll plan the architecture of the product based on the demand, and derive your requirements from this "blueprint". This step can be viewed as corresponding to the Portfolio level in SAFe®.
Specifying a release structure
This is where things get really interesting. At this point, you will have the complete product architecture laid out in terms of hardware, software and service. You will create a release structure containing all product components, separately for hardware and software (and optionally, service). Relevant requirements and tasks will be simply added to this release structure, helping you oversee all the various development streams involved. In the Scaled Agile Framework, the Program Level has similar goals.
Assembling your teams
Due to the several complex processes involved in your product development, you will most likely need teams that combine various disciplines. Therefore, you'll assign a right blend of hardware, software and service-related team members to each team, and assign these teams to either entire releases, or certain components (requirements, tasks) so that they can work together efficiently.
In each team, multiple methodologies may be used, as codeBeamer supports Waterfall/V-Model, Agile, as well as any kind of Hybrid approach.
Combining lifecycles & staying in control
In codeBeamer ALM's Release Planner, aggregated data is available for all development streams, thus letting you overview all processes & how they progress towards their completion goals. In addition to a high-level overview, you'll also have access to granular data about each work item, so you can monitor & will always be in control of all development processes – if you're familiar with SAFe®, the Team Level may spring into mind.
Customizable Kanban boards help you and your team stay on top of tasks at all times, and a Team Resourcing Extraction visualization helps control the workload of each team member. Flexibly configurable statistics & reports are easily accessible.
codeBeamer's Team Concept is characterized by:
- the combination of different methodologies
- varying levels of granularity
- and multiple development streams.
Overall, codeBeamer helps you efficiently manage the parallel development processes of several complex products.