Remember when tech organizations assumed a top-down approach, with isolated teams who reported to managers, and those managers created their own processes and coordinated large projects in silos with set-in-stone ideas, and people worked without knowing what anyone else was doing?
Maybe you also remember half-day meetings and seat-assigned gray cubicles, where you pretended to concentrate whenever someone walked by, with managers in actual business attire (real shoes!) making decisions behind closed doors. Maybe you remember a steady flow of miscommunication, done mostly via many reply-all emails.
If none of this rings a bell, GREAT! Because this is not the winning portrait of a modern, agile software development team and team workspace. Also, congratulations on missing all that stuff.
The majority of today’s modern software development teams are distributed, working on complex projects that require cross-team collaboration to get things done.
So, as a manager, how do you facilitate this?
To start, you set up your cross-functional teams and you keep them functional.
Highly dynamic and agile cross-functional teams, or CFTs (acronyms: still a classic feature of business), allow various experts from all areas of the software development spectrum to come together and spearhead a single project.
Let’s pretend you’re working on a new podcast mobile app. You’ll need to assemble a CFT involving coders to compile for multiple operating systems, UI/UX designers, sound specialists, audio publishing experts, marketing specialists, and the list goes on.
The success of this mobile app will also depend on swiftly incorporating customer/tester feedback, quality assurance, and keeping systems up-to-date. This list also goes on.
These different people with different skill sets working on different parts of the podcast are going to work - you guessed it - differently. And in ways that other teams may not understand.
This can present problems for managers, and ill-managed teams usually have two things in common: a lack of transparency and lack of flexibility. This kind of team may miss deadlines, clash over design choices, and miscommunicate throughout the software development lifecycle.
To avoid this, let’s remember some important tenets to keep your cross-functional team functional.
A cross-functional team is simply a group of individuals who want to be, and should be, valued over process and tools. While it’s important to follow established processes, it’s even more critical to look at a team in terms of human strengths and weaknesses, and arrange your workflows accordingly. A good manager will ensure that friction between team members is minimized by developing flexible, cooperative frameworks to easily share workloads and ideas.
The point is great software, not exhaustive documentation. A very common time sink across all kinds of workspaces is the constant, near-obsessive compulsion to document every decision or step made across the project journey. While documentation is important to ensure accountability, it needs to be streamlined and given less priority than the actual development of strategies, code, design, and whatever else the project needs to continue developing.
Collaborate with your customers. Good projects need outside opinions, and that’s where the end-user comes in. Whether during a testing phase or post launch, a software project can benefit greatly from being inclusive and transparent with customer opinions, allowing them to collaborate and share ideas with CTFs. Due to the CTF’s inherently multidisciplinary nature, you’ll find that this results in unique and fresh solutions to existing problem areas that were previously in blind spots.
Don’t be afraid to change the plan. One of the most important differences between agile methodologies and more retro project management styles is that agile teams are not afraid to stay uncommitted to plans. Sometimes, unexpected issues flare up. A good CFT has the level-headedness and flexibility to revisit old project steps and rework them — even if they weren’t part of the original blueprint.
Remember “break rooms” where you would stand around making small talk, generally breathing on everything? And now you can take a break anywhere? Anyway, in the world of remote, asynchronous work and distributed teams, as well as tech evolving exponentially every few years, the need for agile practices is greater than ever before. Here are five ways you can help make your CFT an agile one.
Scrum is an example of software development methodology that focuses on breaking up task management into fixed-length iterations. You probably already know what these are called, but we’re going to say it anyway just in case: these are called ‘sprints’.
To plan a sprint, you will first need to divide your workload and team into two. The first will be your ‘product backlog’ — a list of prioritized features that your ‘product owner’ is responsible for sourcing and creating.
The next will be a ‘sprint backlog,’ which takes issues from the product backlog until the sprint is finished. A ‘scrum master’ is responsible for choosing which issues get prioritized and in what order the team tackles them.
Before you begin the next sprint, you will need to hold a ‘sprint planning’ meeting. Here, you will take stock of your project situation with your team and plan what you will aim for in your next sprint.
Scrum is useful primarily because it focuses on dividing responsibility well, giving members realistic and predetermined timeframes for work, and through sprint planning, keeping expectations clear and visible on the horizon.
While daily meetings tend to get overblown and often leave team members feeling stressed and unproductive, there’s a simple workaround — daily standup mini-meetings.
This concept also happens to be drawn from Scrum and adds a simple 15-minute time restriction to daily meetings. While this can be shifted around depending on your team’s project plans and current situation, there are three questions at the heart of every standup meeting:
Simple, straight, and to the point. This will ensure that your team remains informed about not just their own 24-hour chunk of time but everyone else’s too. You can even use process modeling techniques such as flowcharts to make minutes of the meeting for quick and easy reference across teams.
Just by focusing on this quick session at the start of a workday, you can discover non-obvious solutions to team issues, detect problems early on, and allow different parts of a CFT to help each other out.
Software projects are notorious for the sheer number of variables that they come with. From task delegation to artificial intelligence systems and even handling how to deal with a team member’s sick leave, it’s very easy as a manager to get overwhelmed and stretched thin between the several different issues that crop up.
While a good manager is heavily involved in their team’s day-to-day work, a great one trusts the system and their team as well.
A CFT, by its very structure, works as an organism all by itself. A project manager should know when to step back, take in the big picture, and allow their team members to govern their own day-to-day issues — this keeps them focused on long-term success and gives team members their much-valued autonomy.
As software projects are in some way analogous to constantly evolving machines, it becomes important for team members to have a ‘project bible’ of sorts, where they can obtain information without having to interrupt others.
By making this an open-source, cross-organizational effort, you allow team members to collectively contribute information and resources to others, building an environment of shared learning and teaching.
By the end of a sprint, your designers would have been able to learn much more about the coding point of view, and vice-versa — always a good thing to inculcate within a CFT.
For agile cross-functional collaboration, modern timeframes and communication dictate that you’ll need a robust, versatile, and easy-to-use digital project management tool for your backlogs.
There is certainly no lack of choice. The main challenge here is to find out which tool works best for your team to help you scale agile processes. To do this, you’ll want to:
Once you’ve shortlisted a few, feel free to try out their trial periods in a test environment so you can understand how easy the system is to navigate when confronted with multiple moving parts.
LaunchDarkly is a feature flag management platform that focuses on improving the way companies plan and manage updates to their software. Conversely, Shortcut is an agile project management tool that aims to make LaunchDarkly’s team workflow more streamlined, transparent, and easy to handle.
Read the full story of how these two agility-focused companies work together to make teams more efficient and flexible. If you’re looking to accomplish the same with your team, get started with a free trial of Shortcut and see what you think. Your software team will thank you.
After all, an inflexible project management tool that makes people angry belongs with timecards, corded desk phones, and wall-mount pencil sharpeners.
Okay, the pencil sharpeners are actually kind of fun, but everything else should stay in the past.