How to Effectively Manage a Virtual Team of Software Developers using Spotlight
Are you planning on managing a team of virtual software developers, or are you already managing a team of virtual developers? I ask because if you are already managing a virtual workforce, then you’ve honed in on a key competitive advantage. In my 15+ years of creating software in various roles from developer to VP to business owner, I have always sought better, faster and more efficient ways to develop quality applications. Today, you have a whopping competitive advantage right in front of your face: the ability to find and hire talent from around the world, and with incredible ease.
There are two key advantages to working with a virtual workforce. First and foremost, you remove the shackles of geo-‐location restraints. Instead of confining your search for that perfect PHP or .NET developer within 50 radius miles of your office, you open your search to an entire planet. Software development is a discipline of many, many specialties. Often, your project requires a good half-‐dozen specialized skills, like database, user design, SaaS, etc. Opening your search to the whole world increases your odds of finding the right talent, and very often talent with multiple skills that match your needs perfectly.
That brings us to the second advantage of working with a virtual workforce: cost. Chances are very good that the talent you source will be located in a country whose cost of living is less than the United States; hence you pay less for equivalent talent. But there‘s more to this story. As you open the geo-‐boundaries of your search, you increase the odds of finding developers adept in multiple disciplines. That means you may find a database guru who’s also great at UI design… two for the price of one!
Sounds great, huh? So here’s comes the dark cloud. According to a study by the Aberdeen Group, about 50% -‐ 90% of all software development projects executed by virtual teams fail. That’s staggering. That means only 10% -‐ 50% of software development projects executed by virtual teams succeed. Learning and improving from very early failures, my career success rate of starting and delivering software projects utilizing virtual teams is 95%; way above the mean success rate. It’s the primary reason why my software development services company has grown so rapidly. How do I do it? How do I consistently beat the odds? I beat the odds with a methodical process. That’s what the rest of this paper discusses. And the good news is, the process can be taught and followed with precision using Spotlight.
Planning your Project Would you build a house without a blueprint? Would you drive around in a new town without a map? I certainly hope you answered ‘no’ to both. Yet, so many entrepreneurs and developers code without a plan. “We wing it”, “We’re lean”, “It just writes itself”, and the list of excuses go on and on. Budget overrun, buggy code and worst of all, an app that does not meet business goals, are the usual consequences for not planning. But in my 15+ years of doing this, I can tell you that a good plan is essential.
(Quick tangent: You’re plan will change. Your plan will probably change a lot from the first revision. This is called a “pivot” in software development terms. It’s a perfectly natural course of development that leads to ultimate success. But you cannot pivot to success if you do not already have a clear idea of where you are going.)
Planning starts with you, and then passes to the the developers. The first step is to visually and textually describe your app in detail. The best way to visually describe your app is to create “wire-‐frames”. Wire-‐frames are a sketched version of each screen in your app and how each screen connects to other screens. It is the user experience (UX) and workflow of your app. For example, a wire-‐frame for a login screen may show the text fields where a user enters their username and password, as well as a login button. There are many great tools to create wire-‐frames. Two really good ones are http://www.balsamiq.com/ and https://moqups.com/#!/.
The best way to textually describe your product is with “use cases”. Use cases are plain text that accompanies wire-‐frames. They describe what each control, button, link, combo-‐box, etc. do on a screen. Use cases describe the permutations a user can experience when interacting with a screen. For example, referring to the login wireframe, a use case may describe what happens when a user presses ‘login’. For instance, what screen is the user taken to next when he presses ‘login’? Or what happens when a user enters an invalid username or password. The various user experiences are described in use cases.
Figure 1: An example of a wire-‐frame.
(On a side note, it’s a good idea to run your wire-‐frames and use cases by a few third party eyes. If it makes sense to them, you’re on the right track. If they have constructive feedback, that’s even better!)
Now that the wire-‐frames and use cases are ready, it’s time to plan the project. This is typically performed by a minimum of a senior level developer, and optimally with a project manager to help with scoping. Project planning is a process of slicing the project in segments, or “sprints” as they are sometimes referred to in software development. A project is comprised of several sprints, and each sprint is comprised of granular tasks assigned to various members of the team. For example, Sprint One
may be the Database Sprint, which has 10 tasks assigned to several developers that will build the database.
Figure 2: Using Sprints to manage projects in Spotlight
Figure 3: Sprints consists of tasks assigned to developers
A typical sprint will run anywhere from 1-‐3 weeks. Properly planning the correct number of sprints in a project and in the correct order will lay the entire foundation of the project’s execution and delivery. It’s vital that you ensure that the necessary time is spent on this phase, which usually runs about 1-‐2 weeks, depending on the size of your project. It is time very well spent, and I personally would never do a project without this phase. With the sprints in place, you now have a timeline for your project. The tasks assigned ensure everyone knows their marching order. This creates a sense of accountability within the team to perform to the mandate laid out in the sprints. Now it’s time to execute.
Building your Dream Managing a virtual team of developers is an art built upon a process. The art form is something you will enhance and perfect over time based on your own management style and flair. Naturally, I cannot teach the art of management, that’s your own unique approach, but I can teach a proven process to manage virtual developers. This is a process that I have perfected over many years of successfully managing virtual employees from the United States, Latin America, India, the Middle East and the Ukraine. It’s a
process that, if followed with strict adherence, will greatly improved your chances of success when managing a team of virtual employees, whether they are developers, testers, or any other discipline.
First, start each day with a 15-‐minute meeting. In the software development world, these meetings are called “daily scrums” or “stand-‐ups”. The purpose of these meetings is communication and accountability. Each person in the scrum quickly states what they accomplished yesterday, what their goals are for the day, and cite any impediments to their goals. These daily scrums should run 15 minutes. It is an overview meeting to get the entire team synched for the day. Any sideline conversations should be conducted after the daily scrum with the interested parties. Keep the daily scrum short and focused.
Who should attend the daily scrum? Most development teams confine the daily scrums to key developers. I, on the other hand, involve the entire team. I involve developers as well as testers, designers and project managers. My rationale is that if everyone in the team knows what everyone else is working on, then a true synergetic atmosphere is built. If QA knows what’s coming down the pike from a developer, they can be better prepared. If a designer listens in on a new feature discussion, they may lend valuable UX insight early on in the development process. In my experience, the quality of a product is directly related to the more involved and intertwined the various members of a team are.
Now that the team is synched and producing, it’s important that the team continues communicating throughout the day. If the team were all sitting together in a brick and mortar office, this would naturally happen as the project manager makes his or her rounds, or the developers chat by the water cooler, at lunch or elsewhere. But this is less natural for a virtual team so a process is needed. I have found that regular status updates facilitate communication thought out the day. A status update is an email sent to the entire team that states a few key attributes to the team:
1. What are you working on now? 2. What is your progress? 3. Are there any issues?
These status update emails should be sent 3-‐5 times per day, or as tasks, progress or statuses change. They should also include availability. In other words, team members must inform other team members what time they will be online until, or what time they will be returning back to work.
Spotlight facilitates the status updates by assigning Status Cards© to each of your team’s members and organizing your entire team in a complete overview. Status updates are displayed on the Status Cards. This eliminates the need for emails, which are often lost and disorganized, and provides a bird’s-‐eye snapshot of what your entire team is working on in a single glance.
Figure 4: Status Cards keep you on top of your developers.
Figure 5: Flip Status cards over to dive deep into a developer's work day
Figure 6: Status cards are simple to update and take far less time than creating and sending an email
A steady stream of status updates keeps the team talking in a manner that simulates the office experience. It takes a bit of getting used to, but once employed as a habit, communication and collaboration skyrocket as the team members become accountable to each other. Now to wrap the work day up.
A daily reflection on the day’s activities and a mental preparedness for the next day is a practice I personally employ to stay sharp. Once again, this happens almost automatically in the office as developers wrap up their day and cite to their manager and each other what they’ll be working on the next day. It’s not so natural in the world of virtual employees so once again a process is employed. A daily progress report sent from each team member to their immediate supervisor sets the stage for a productive next day. The daily progress report should be a simple form which answers 3 questions:
1. What did I accomplish today? 2. What I will accomplish tomorrow. 3. Any impediments to my goals.
Similar to the morning scrum, this daily progress report is a tight and efficient way to wrap up a day’s work. Team members can mentally prepare their next day’s activities, as well as team leads, superiors and managers. The daily progress report may be the single most important way to create a synergy of communication and accountability.
Spotlight embraces the daily progress report by designating reports from team members, team leads and even from project managers to clients. Reports can even be automatically emailed to any recipient, regardless if they are a Spotlight member. It is such an import and integral part of managing virtual developers, that Spotlight lets you optionally require daily progress reports from team members in order to let them continue using the system on a daily basis.
Figure 7: Daily progress reports are an integral way to manage virtual developers
The trinity of (1) the daily morning scrums, (2) 3-‐5x status updates throughout the day, and (3) the daily progress reports at the end of a work day forms the foundation for a process of communication that will yield amazing results. As you can see, it forms a sense of group accountability, where the team is all working together synergistically. Your own personal flair will shape the process, but the basics should remain intact.
The benefits of employing a virtual team provide a necessary competitive advantage in today’s world of software development. It enables you to find the perfect talent at the perfect price. But managing a virtual team is a process different than managing an onsite team. Managed properly with a proven process that produces positive results will reap the rewards of a virtual team. Take the care to find and hire the right talent. Expend the time and effort to plan your project. Exercise the diligence to see the trinity of processes of virtual team management is followed each day. These are your keys to successfully manage a virtual team and unlock their potential.
Try Spotlight free for 30 days and see how you can improve your project success rate! Sign up at http://www.spotlightppm.com/pricing.html.
Questions or comments? Visit http://www.spotlightppm.com and contact us.
Top Related