Companies turn to software outsourcing in order to reduce dev costs, access new talent pools and drive innovation. However, most customers do not expect to see a Project Manager’s man-hours on their estimates and label them as “rushed” and even “bloated”. What is project management’s role in software development and do you actually need to hire a PM? Get the answers here!
Project Management and its role in software development
PMBOK, the Holy Bible of Project Managers, describes project management as the application of skills, knowledge and tools enabling managers to project activities and meet customer requirements. A software Project Manager’s key responsibilities, therefore, include the planning, initiation, continuous monitoring and closure of project activities.
According to a recent Standish Group report, over 31% of all software projects get cancelled[1] before completion. 189% and 222% of projects exceed budget and run over time, respectively. Only 61% of software solutions contain all the features outlined by initial requirements specifications.
As you see from the chart above, poor communication and planning are the key factors that keep software projects away from success. Here’s why.
There are three types of software outsourcing:
- Onshore. You hire software developers (either freelancers or software engineers employed with a company) from your own country. Although there’s no talking about significant cost reduction here (US-based developers charge anything between $ 70 and $ 200 per man-hour), you get an opportunity to sign a contract complying with the laws of your country and conduct frequent face-to-face meetings with your team;
- Nearshore. You address a software development company that resides in a neighboring country or a country where your native language is widely used. By going onshore, you can cut software dev expenses by roughly 30%, occasionally meet your team in person and work with people who have a similar mindset, values and work ethic;
- Offshore. You employ software engineers overseas in order to reduce software development costs (that’s what 59% of US/EU enterprises do). Despite obvious financial benefits (software vendors from Eastern Europe, for example, charge $ 30-35 per man-hour), classic outsourcing has several pitfalls including cultural misfit, communication issues and legal concerns.
In case you partner with a nearshore/offshore vendor, having an experienced PM on your team is the only way to mitigate outsourcing risks and ensure smooth project execution. According to Geert Hofstede’s Cultural Dimensions theory, an employee’s performance is largely determined by his cultural environment. Nations with a higher Power Distance Index and strong collectivism values display the so-called Mum effect (reluctance to transmit bad news) and seldom make their own decisions. This often results in prolonged deadlines and cost overruns.
As one of our customers said (before he addressed R-Style Lab, of course!), “getting an hourly rate of 1/3 the cost of others is great except if it takes 4 times as long to get to the final version of quality project that is needed”.
Thus, a Project Manager is a person who stays in line with your requirements and makes sure a software development project is delivered on time and within the agreed budget – regardless of time, language and cultural differences.
Insight into a Project Manager’s responsibilities
A typical software outsourcing journey starts with preparing a comprehensive requirements specification[2] – that is, a document that covers functional and non-functional requirements for your future app/website/innovative software solution.
- A Project Manager steps up during the requirements analysis process and determines project success factors;
- A PM then monitors project scope and deliverables (the milestones set for each iteration like UI design, beta or end product);
- PMs keep in touch with the development team, account manager and customer and provide the parties with the relevant and timely information. The goals are typically achieved with the help of multiple project management and communication tools (including Redmine, Jira, Basecamp, email and video chat).
Most software outsourcing companies offer three types of pricing models (Fixed Price, Time & Material and Dedicated Team).
Let’s make it clear straight away: even if you choose the DDT approach (you employ software developers full time and can therefore trust certain PM tasks to an experienced team lead), large teams (5+ people) often require professional management.
What about Fixed Price and T&M?
Once you sign a FP contract, a Project Manager (employed by your vendor or by you directly) will distribute the workload between the team members taking into account their experience, strengths and weaknesses. Also, he monitors the scope, tracks change requests in order to avoid feature creep and renegotiates the budget once a change makes it to the final feature set.
Although T&M projects do not have clear requirements (Time & Material projects typically involve research, so the scope evolves over time), you’ll need a Project Manager to assure budget and deadline adherence.
What makes a good Project Manager?
- Technical background. Even though the tech part is always handled by a system architect and Business Analyst, a Project Manager should have a basic understanding of software functionality and technologies applied by the dev team;
- Excellent communication skills. From a customer’s perspective, a PM is the only link to a dev team (and its members do not always speak English fluently – in case we talk about offshore outsourcing). That’s why a customer should get acquainted with his PM before signing a contract;
- Agood PM always devotes equal time and attention to every project;
- PMs seize every opportunity (and make use of all the tools we’ve mentioned above!) to obtain information from the dev team/customer and keep the project going;
- Contracts aside, a PM should be able to compromise and connect to developers and customers on an emotional level.
Android apps, business website or connected solutions development – you can outsource literally anything. Provided you choose the right vendor and pricing model, your endeavor is doomed to success. Don’t forget about project management though; remember the key reason why outsourcing fails?
[1]https://www.projectsmart.co.uk/white-papers/chaos-report.pdf
[2]http://r-stylelab.com/company/blog/web-development/how-to-write-software-project-requirements