14 Tips To Manage a Remote Dev Team

Managing a team of developers can be a difficult undertaking when you’re working remotely. And effectively overseeing team members working solo in different time zones all over the world, as many tech companies now do, is even more complex than having just one or two off-site freelancers. That’s why I asked fourteen members from Young Entrepreneur Council (YEC) the following question:

We work with a big team of developers, all remote. What is one tip you have for helping me better delegate/assign/monitor the workflow? (Looking for strategies more so than tools.)

Their best answers are below:

1. Adopt a Known Development Management Process and Stick to It

Tim MaliyilWe have about 25 remote developers all over the globe, and we stick to the scrum agile management process for keeping everyone honest and productive. While the extreme scrum evangelists push the “scrum board,” that is hard to do when people are remote — especially for the stakeholders/management.

We use the Atlassian Jira tool to help monitor the work and progress. – Tim Maliyil, AlertBoot

2. Use Video Conferencing

Jonathan LongWhile team management tools are extremely helpful and effective, nothing gets everyone on the same page more than a video conference. Utilize your standard team/project management software, but kick off each project with a video conference to get everyone on the same page before starting. Have another one mid-project to make sure all team members are on track and then end the project with a video conference.

With proper planning, it isn’t too difficult to hold three video conferences per project. – Jonathan Long, Market Domination Media

3. Record ScreenFlow Instructional Videos

Rob FultonA lot of time I’m working with remote graphic designers and other workers who are in different time zones, and I’m unable to be available to them to guide them through instructions. Sometimes the written word just doesn’t cut it with getting your point across, so I’ve gotten into the habit of recording instructional videos through the ScreenFlow app and uploading them to YouTube as unlisted videos.

If they have any questions, I’ll hear from them when they start to work and can most likely answer them easily through text or email, because the bulk of my instruction has already been covered in the video. – Rob Fulton, Audio Luminaries

4. Implement EOD Video Updates

Jared BrownWe’re a 100 percent remote company, so it’s essential for us to have virtual communication practices that also save time. In addition to setting out the work I want our developers to do and using our own time-tracking tools, I have our developers send in a two or three minute Screencast video update of what they did at the end of the day.

I can easily check for understanding and give them guidance if they need it, and it’s much faster than spending time in virtual meetings. For the developers, they get the added benefit of summing up their wins for me, which increases their sense of accomplishment in their roles. It’s a win-win for everybody. – Jared Brown, Hubstaff

5. Rally Around the Customer

Faraz KhanTechnology projects are hard to coordinate. You need a rallying point that everyone on your team can use to help them make the best decisions on their own, and what better rallying point than the customer? Take time to really agree on the customer’s needs and then your team will have a common goal to achieve, which will help keep your team on the same page. – Faraz Khan, Go Direct Lead Generation

6. Set 30/60/90-Day Expectations

Alec McnayrWe have more 100 people in our agency, all working remotely, and we’ve found that setting clear expectations over time encourages people to take control of their own work and deadlines, especially in 30-day increments.

Alec McNayr, McBeard Media

7. Prioritize Lean Development

Roger BryanThe main reason many companies struggle with large outsourced development teams is because they ask them to do too much at once. This issue is compounded by the fact that there is a lack of delivery and review processes to ensure proper function and integration of new systems. Work on one thing at time, complete it, test it, perfect it, deliver it to market, then add the next. If all else fails read The Lean Startup and you’ll get better insight into making this work. That book was a game changer for our team of six full-time developers. – Roger Bryan, Enfusen Digital Marketing

8. Build Personal Relationships

Dave NevogtYour remote developers will be more productive if they’re interested in the outcome of their work with you. Build relationships with them, genuinely ask how they’re doing and let them know how important their work is to you. Extra points if you remember birthdays or important holidays in their country of residence if they’re located abroad.

You’ll also get to know their strengths, weaknesses and work preferences better this way, which will make you a much more effective delegator. You’ll be able to assign work that plays to their abilities and lets them shine, which will also increase their productivity. Just because they’re remote doesn’t mean normal office soft skills don’t apply. – Dave Nevogt, Hubstaff.com

9. Create Macro and Micro Goals

Andrew SaladinoRally your developers around a common goal and break the goal into smaller milestones that can be worked on at the same time. Prioritize each milestone that achieves the goal quickly and shift resources when roadblocks begin to add up.

Assigning work in this structure gives your developers a sense of ownership and individual accountability for whether things go well or not. It also provides flexibility in reaching milestones as resources are given based on priority. As milestones are completed, you will have a better sense as to how realistic a launch date truly is. – Andrew Saladino, Kitchen Cabinet Kings

10. Encourage Open Communication

Miles JenningsWith remote workers, staying in close contact and keeping an open flow of communication is key. Without having real conversations with remote developers frequently, not only do projects have the risk of running off-track, but employees will potentially not be as motivated as they truly could be.

With open communication, remote workers can feel that they are integral members of the company and know that their work and opinions are valued. Even just a short “check-up” meeting over Skype once every couple of days will help employees feel much more involved, which will in turn lead to great work being created. – Miles Jennings, Recruiter.com

11. Know How to Use Your Tools

Heather McGoughOur team values the benefit of being able to work remotely. In order to stay connected, we do half-hour, full-team meetings every Monday. Individuals give updates and share what they’re doing to move the needle. Teams use Asana for meeting agendas and Slack to communicate questions. They note important pieces of information and monitor things like press mentions.

One thing that is particularly important to me is using Slack in a way that is respectful to my colleagues. I advise using settings that only notify you when someone mentions you or key words you’ve selected directly. Otherwise, you may be constantly interrupted. This is especially helpful for part-time team members who may have other clients. – Heather McGough, Lean Startup Co.

12. Be a Guiding Light

Adam RoozenMicro-managing isn’t possible in this scenario, and many remote developers don’t feel engaged when they are macro-managed. Replace management with leadership, and trust them to manage themselves. Set clear goals to establish initial alignment, then focus on providing inspiration.

Let them find their own way to the goal, but the same time, don’t leave them to go through the journey alone. Asking thought-provoking questions and challenging their line of thinking will set them on the right path without having to hold their hand. – Adam Roozen, Echidna, Inc.

13. Outline Your Workflow and Keep Up the Communication

Hesam MeshkatWorking with offsite developers or freelancers could become problematic and time consuming if you don’t outline your process from the get-go. It is extremely important to properly outline each person/team’s responsibilities and make sure everyone is up to speed.

If a workflow is properly implemented, you could attend to all matters in a more orderly fashion while avoiding lost time and redundancy. Using a portal like Basecamp will help keep all of your communication in one place and allow everyone to be on the same page with responsibilities, tasks and deadlines. – Hesam Meshkat, Guzu

14. Be Clear On the “What”, But Not the “How”

Sathvik TantryEvery good product manager will provide detailed specifications on what is actually needed in the product. Then, they will give the engineering team the freedom to figure out the best technical implementation. Many product managers will provide overly technical specifications without any details on exactly how the product should work and who the target user is.

A good way to measure your effectiveness is the number of times that clarification is required from the engineering team after the initial product spec is sent. A good spec will require almost no back and forth, while a poor spec will require many revisions and iterations. – Sathvik Tantry, FormSwift

Author: Scott Gerber
Courtesy: thenextweb.com

Tips For Effective Outsourcing

These days many companies who face a need for software development go with outsourcing. The main advantages of outsourcing are: cost effectiveness, fast and high quality results, sharing development risks. There could be more advantages but these most commonly recalled for an average software development project.

There are several types of outsourcing. It can be onshore, nearshore or offshore. We talk about onshore outsourcing when a client and a developing company are from the same location (meaning the same country). Nearshore outsourcing arises when a developing company locates in the country close to the country of a client company. And offshore outsourcing means that a developer and a client locate on different continents.

Each type of outsourcing brings more or less advantages, as well as more or less risks. For example offshore software development outsourcing is considered to be the most risky, however one of the most popular types. Offshore developers are usually the most cost compatitive and highly qualified.

To reduce risks of offshore outsourcing you may use several models. For example you can hire several outsourcing developers to allocate development risks. Or you can go with “Outsource-Inhouse” development model where you outsource part of tasks to an offshore company while part of tasks is the responsibility of your own development team.

But before even take the risks of outsourcing it is recommended to make a good consideration of weather you really ready for this. See the tips which will help you when making a decision about outsourcing:

1) Know exactly what your project is. Have a clear idea of what you are expecting as a result. Think of the scope of resources, technologies and skills needed to fulfill the project. If this is a finished project which does not require a further development in near future and you don’t have enough resources you’d probably outsource.

2) Communicate your prospective developer. Find out if a developer has enough skills, knowledge and resources. Ask him to make a project evaluation. During the interviews with a developing company you also need to find out if you are good with time-zones, communication skills, development methods and approaches. If you think that your partner is trustworthy enough, can communicate well, makes an impression that he knows what is he talking about you’d probably go for outsourcing.

3) Be precise with scope, quality and prices. While initially contacting with your prospective developer make sure you provide the most accurate information about your project. This will ensure the better quality and price estimation. If schedule, budget and quality guarantees are close to your expectations you probably want to go with outsourcing.

4) Evaluate risks. The most commonly known risks which associate with outsourcing are: competence risks, confidentiality, operation risks, failure to deliver the final product, cost risks. You need to evaluate your risk not only when making decision if to go with onsite development or outsource, but also if to outsource onshore, nearshore of offshore. But keep in mind, there could be probably no way to avoid some risks but to reduce them. So if your risk portfolio is balanced – you are ready for outsourcing.

Outsource or not outsource: offshore software development

Software is everyware, sorry, is everywhere. Everything you can put your eye on is somehow connected with software. Every product or business process needs a software solution. No wonder software development market is growing day after day, hour after hour.

And software development is now not only the privilege of a highly developed economy but a worldwide industry. It  involves people and businesses from practically every country. Moreover, it is a current trend for mature businesses to have their software development departments offshore or outsource its software development to specialized companies overseas.

Advantages

Offshore software outsourcing has proved to be an effective model. The formula of success is very simple: high quality services at reasonable prices.

But let’s list all the advantages of offshore software outsourcing comparing to inhouse or local market software development:

outsourcing advantages

  • Time saving. You don’t have to waste time and efforts to hire your software developers and provide a needed training for them. You also don’t waste time waiting until your developers become a real team. While outsourcing developers already have a well trained and loaded to work crew.
  • High technical skills and training. It is an already established market of offshore software development with a rather high competition. Most high-skilled developers are concentrated in big and proven outsource software development companies. High competition makes them providing high level of skills and expertise. More likely that you will find the best developers on the market if hiring offshore software developers.
  • Effectiveness and fast results. Outsource software developers deal with many customers, many projects and many technologies. So they can provide a qualified analysis of your project and suggest a better solution or even share an original idea of its implementation. And any outsource company will be interested to finish your project as faster as possible, because swiftness is one of the factors of its profitability.
  • Quality control and confidentiality. Since quality and confidentiality are the major risks in offshore software development process, offshore outsourcing companies dedicate much attention to these aspects. They know about customers’ concern and provide the best quality and confidentiality control methods. Additional quality control factor – reputation. All outsource companies are interested in a long-term cooperation or at least in a positive feedback and recommendations.
  • Sharing the risks. Software development process involves some risks. Outsource software developers are specialists in this area and posses a better risk-management approaches. They will share the burden of risk in software development and suchwise optimize your major business risk portfolio.
  • Cost saving. You save on costs of development since labor rates offshore often are highly competitive. You save on recruitment, retention, company overhead costs as they are not involved when it comes to outsourcing. Add here training expenses, hardware and facilities costs. Outsource developers already have all needed equipment and resources. Besides you don’t have to compensate idles and outages if you have your inhouse team.

Disadvantages

software development outsourcingIt would be fair to mention about disadvantage of offshore software development, since you all know that it is quite a challenge to invest money into a “dark horse”. Yes, you will be at greater risk if you are trying to hire the cheapest company on the market. When choosing an outsourcing company even offshore you should keep in mind that you are going to hire a dedicated team of professionals who value their time and expertise. Quality, effectiveness and expertise are the major benefits which come with outsource software developers.

Another concern is if offshore software developers are motivated enough. We can easily imagine the situation when you set a task to a software developer and go back to your main business. And now when a dead-line comes nothing is ready. That’s a stereotype: since it is a specialized software development company you can leave it to chance.  A client and a developer are a part of the same team. If a client stays out of the process, the result may not be exactly what he was expecting. Refer to agile software development methodology to learn more.

Communication skills, confidentiality control, legal issues are also considered to be sensitive disadvantages.  However the major risk of losing control over the project or confidential data lose are often arise when informal agreements with a developer take place. An official contract and nondisclosure agreement can be at least a legal guarantee for a client. During initial negotiations you will assess communication skills of your developers and discuss all delicate moments of the cooperation process at least to hear the methods and approaches offered by a prospective developer.

Conclusion

When considering if to go with offshore software development we may surely conclude that the last word will always be for the customer. But if you are still not sure having read all mentioned advantages and disadvantages, just look at what market says. And it shows a steady trend of growing economy involved in offshore software development. It’s not a notion, it is a reality of today’s digitalized and  informationalized society.

Offshore Outsourcing Risk Management

When you are looking for the way how to cut costs for your software development project but still keep its quality, most likely you will think of offshore outsourcing. You will quickly find all the advantages of such a model. But less frequently one can talk about some risks accompanying this initiative.

Let’s see what risks a customer can face when it comes to offshore software development outsourcing and how to manage those risks. But first of all we need to point out that there is no business without risks and in most cases we talk about reducing risks but not about completely avoiding them.

 

1. Competence risks

outsourcing competence risksThe very first question arises when you look for outsourcing is “who do I hire”. And when you start searching you see a good bunch of outsourcing companies providing their services. But first you should probably pay closer attention not to what they say about themselves but to what others say about their work. Look what clients they have already worked with, contact them and ask for the opinion. You may probably want to start with a small project as a touchstone. But don’t forget that software developers also see you for the first time and have their own set of risks. Make sure you both understand your goals and objectives. Try to be as clear as possible about what your project is and listen to their assessment and evaluation. You may consult with a third-party to make sure your outsource developers know what are talking about.

 

2. Communication risks

outsourcing communication risksFrom the first contact you will have an idea if developers understand you correctly at least on conversational level. Make sure that you both understand that you will communicate a lot since this you both want the project to be a success. The more you communicate the more exact result you receive. Discuss various methods of communications: email, phone, chat, video conference. Work out a communication schedule (especially useful if you are in different time zones). Discuss the way of keeping track of development progress so you could carry out your independent control.

You should always know your project manager to refer with any question or explanation. But don’t mind to directly communicate with developers. This will give them the feeling that the project is under control. At the same time this will give you a better idea about how it is going on and train yourself to make clear queries and instructions.

 

3. Performance risks

outsourcing performance risksThis risk may be combined from risks of competence and communication. If you reduce those risks performance risk will automatically be minimized. But anyways we need to highlight this once again: in many cases performance risk or a risk of project failure or delay is a bilateral fault. To reduce such a risk you need to negotiate with your vendor the project development schedule, deadlines, progress updates, development process methodology. Do it on the very first stage when discussing the project!

And never sacrifice the quality of the project in the name of an early completion. Set reasonable dates.

 

4. Knowledge/data transfer risks

outsourcing datatransfer riskIf you posses a security sensitive data or knowledge first of all make sure you do not share unreasonable amount of it. Make available to your developers only minimum necessary information. Always exchange confidential information directly with your outsourcing partner.

Before the onset of the project discuss the question of confidential information transfer and storage. A separate non-disclosure agreement or inbuilt contract clause will be a good way to protect your commercial secrets, unique knowledge or brand-new product information.

Don’t hesitate to make copies of all files, spreadsheets, documents, source code which is involved in the development process. It is wise to be safe in case of an occasional data loss.

Also make sure that you own copyright of the product or a piece of software. Just note in the contract that all legal titles of all works is transferred to you after the project is finished, paid or any other occasion.

 

5. Cost risks

risks-costsOne of the main reasons for a customer to refer to offshore outsourcing is cost advantages. And the main disappointment occurs when the final calculation brings a different than expected cost. To avoid such a situation you need to ensure that your partner development company offers a transparent costs calculation and doesn’t imply any hidden amounts. Set a clear calculation and payment scheme which could insure your both interests. It would be probably wise to agree of the final payment only upon the project completion or product delivery.

Be aware that in most cases you do not provide the final fixed cost in your outsourcing contract. You can only negotiate a method of calculation and total cost assumption.

 

Conclusion

We came across the most common risks which usually occur in case of offshore outsourcing of software development. Yet there could be many risks which were not mentioned since many of them have an individual character and can be described only on a case by case basis.

Like it was already said before both parties bare the risks. A development service provider as well as a client run their own businesses and are interested in the most favorable outcome. That’s why success of a project is a shared responsibility of customer and contractor. To minimize most risks they need to negotiate them and find the solution on how to reduce them.

Don’t put the risk factor on the scales when it comes to decide if you want to outsource. Every business project can be evaluated not by the number of risks it has but by the risk management methods implemented by the parties involved.

Your offshore outsourcing project will never fail if you implement a proper control, comprehensive coordination and close cooperation with your partner. You are in the same boat and both of you are interested in a productive business experience with a long-term perspective.

“Outsource – Inhouse” Software Development Model

Very often in order to reduce the risk of a project failure client company hire not just one team of developers but several teams. This way it secures itself in case one team will opt-out or won’t be able to cope with the requirements or simply go out of business.

Such an approach looks rather reasonable, especially if you are running a big project or if this is a subcontract. However customer faces several challenges when more than one outsource developer participates in the project: poor project management, insufficient communication, coordination gaps.

It is recommended to spend more time for searching and hire a single but more reliable developer. This will help to avoid a confusion of putting all those ends together from several performers. You will probably pay a bit higher than average rate but you will get confidence and reliability in return.

Still this is not the only way you can ensure your development process. You may consider crossbred model: Inhouse-Outsource. This model is advisable for complex, complicated, long-term projects. This model will allow reducing costs of keeping a big inhouse team still ensuring that you have your own specialists to pick your project up on any stage or take care of the most confidential parts.

Here is how major tasks can be allocated between inhouse and outsource teams.

Tasks for outsource developers

  • Main development process and delivering final product to an inhouse team.
  • Routine development assignments or specific parts of the project according to the specialization, expertise and experience.
  • Synchronizing a development process from a different time-zone to provide a continuity of the project.
  • Outsource team may share workflow with inhouse team when it is needed to meet the intermediate schedule or finish up delivery in time.

Tasks for inhouse team

  • Project management and quality control, responsibility to meet dead-lines and final product delivery.
  • Communication with the outsource developers and ensuring that they understand main project goals and requirements.
  • Taking care of a confident information, data sharing and monitoring compliance with intellectual property rights.
  • Initial testing and implementation of the product.
  • Updating outsource team on any changes or additional requirements.

Conclusion

The main advantage of this model is that a customer can efficiently allocate resources between inhouse and outsource developers. He also ensures risks of project failure in case if outsource developer will suddenly opt-out. He will still have specialists who know the ropes. After all, this is a more cost effective model (also see other advantages) comparing to the one where a customer takes all expenses and keeps an excessive inhouse development team.

Agile methods of software development

Probably everyone who is engaged in software development knows what “agile” is. If to put it simple, agile is a number of methods or approaches of managing a development process and team work. Agile implies following a set of software development values fixed in agile manifesto. Based on these values several methods were worked out. Namely: DSDM (Dynamic Systems Development Method), Scrum, XP (Extreme Programming) and others.

Main principles of agile

Each method has its set of principles. However many principles are shared so we can list most common of them to figure out what the core idea of agile methodology is.

1. Client must be actively involved.
2. Team’s opinion is also an argument.
3. Requirements may change but schedule never.
4. Better deliver small parts but constantly.
5. Best practice is delivering before deadlines.
6. Test, test, test.
7. Don’t move to another feature until current one is not complete.
8. Collaboration and cooperation between both parties is vital.

Agile is very popular if not to say more. It is considered to be more advanced than for example Waterfall software development approach being more flexible and less formalized. But it is not a cure-all solution anyway. Agile has its drawbacks and weak-points which also have to be considered when you choose your software development methodology.

Disadvantages of agile

Client’s involvement, close collaboration and cooperation. These are the fundamental principles of agile which ensure that result will be exactly as it was expected. However, this principles fail when a client has not sufficient time and not always available upon the first request. Also these principles affect the pace and swiftness of the development process.

New requirements emerged and modified. This what makes agile being a very flexible method of software development. However this is how never-ending projects appear with constant improvements and enhancements. And this, in its turn, leads to a more unpredictability in business planning. Moreover both parties are at risk. A developer can’t effectively schedule his upcoming projects and a client can face an unexpectedly excessive budget.

Constant testing. This insures quality and saves from unpleasant surprises during the final testing. At the same time this increases the cost of development significantly since it involves more resources (man/hours).

Deliver by parts, don’t move forward until the current feature is done. This principle of course is meant to ensure quality. But if you look closer to the real order of things you will understand that this approach can be excessive. Developer has to contact his client as soon as another line of project is ready; client has to test it up and express his opinion. Reliable? Yes. Time-consuming and requires constant control? Of course! Besides, put developers shoes on. It’s mentally quite tediously to follow each delivery iteration. Since we talk about agile as a flexible method, let’s be fair to all parties and don’t forget about another principle: team’s opinion is also an argument.

Early delivery. Well, both developers and clients are interested in fast delivery. But let’s face it: rushing almost always means lack of quality. So, it is not recommended to make fast delivery a number one priority.

Conclusion

It is hard be a 100% agile. Every project, every client and every developer team has something new to add to the development process. Agile is not a Codex but a collection of smart ideas based on experience and knowledge. Agile values are good for initial discussion about terms and conditions of the project. But it’s never too late to add something new, something advanced to this methods to make them work even better. So the best method of development project management will be the one discussed and agreed by all parties. And may agile be with you.