24
10 Points to Consider for Finding an Outsourced Dev Team – Part 2 Points 6-10 Successful Outsourcing

10 Points to Consider for Finding an Outsourced Dev Team Part 2

Embed Size (px)

Citation preview

Page 1: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

10 Points to Consider for Finding an Outsourced Dev Team – Part 2

Points 6-10

Successful Outsourcing

Page 2: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

Continuing…• This presentation is a continuation. You can find Part 1 here. • Let’s say this one more time...

• We’re a vendor of outsourced, software development services• We have a vested interest. • But – the 10 points in this presentation come from 3rd party interviews of

current and past customers. These are points the points that made them pick a partner for their projects, large and small.

• Take it as you will.• These are the points that made their outsourcing relationships successful

from their point of view• What should you look for when selecting a partner for your

outsourced software development project? • The second five of 1o points are in this presentation – part 2 of 2.

Page 3: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

6. Quality of Work – Right the First Time• Like other points, you

can’t personally judge a vendor’s quality of work before you contract them, so…• This is one of the areas

you need have on your list when you talk to references that are offered by prospective vendors

Page 4: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

6. Quality of Work – Right the First Time• Quality is a perception – subjective and contextual

• The perception can be colored by process & communication• If the a team does not have a strong grasp of development processes

and open communication with the client team, it is almost impossible for them to be successful

• Successful quality is much more than bug-free code• It critical to develop the right functionality, the first time• Redoing perfectly good code, because it doesn’t satisfy needs is a

loss for both the project and the vendor, but it happens all the time• Every time a bit of code/functionality is delayed while work continues

it becomes a risk• It may also delay dependencies, or worse, it can create unexpected

consequences in completed functionality

Page 5: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

6. Quality of Work – Right the First Time• So, when considering the quality of work, there are three

critical aspects to review:1. Code Quality

• Is the code clean, documented and extensible?• Modern applications should be modular, free of stale code (dead end work

that were not used, tests or unsuccessful), documented within the code (not separately – maintenance nightmare), use accepted coding standards & practices, have strong automated test coverage, continuous integration and frequent push to source control repositories. • Why?? – Because it should ALWAYS be assumed that no code is “done” – even

after final acceptance. • If code within the application cannot be easily located, isolated, and

documented so it can be extended or changed by another developer, at a later time – it will quickly become legacy or worse – a cost sink that sucks up time and cost every time it is touched.

Page 6: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

6. Quality of Work – Right the First Time

2. Process• A development team that has well-

organized, repeatable development processes and high internal efficiency will almost invariably have better quality of work

• If the team isn’t transparent and you can’t figure out how they are getting their work done, it is likely there are problems you aren’t aware of and productivity is low

• In a team using agile as a methodology, process should not be heavy or create unnecessary overhead

• Simple, iterative processes and individual responsibility should ensure just enough organization – but nothing that will impede productivity

Page 7: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

6. Quality of Work – Right the First Time

3. Inter-team communication• Communication is the glue

that assure good process and coding quality don’t lead to effort being spent on good code for the wrong problem• Quality is NOT just bug-free,

maintainable code. • It is efficient, maintainable

code that provides clear, useable functionality in the context of the user

Page 8: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

6. Quality of Work – Right the First Time• There is almost no way to ensure a successful outcome

without direct communication between individual developers, the development team, the product owner/team, and stakeholders• Stacks of detailed requirements, existing process diagrams,

and lengthy user descriptions are destined to fail• The project team must be able to work together and discover

together the functionality required and how to satisfy the need• Part of their contextual communication will be elements such

as mockups, walk-throughs, demos and reviews that assure proposed solutions meet expectations and not lead them down dead ends.

Page 9: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

6. Quality of Work – Right the First Time• A proposed vendor who cannot

answer how they will address their quality of work within these three domains – Is A Risk. • If they expect you to provide

answers, it will take them a long time to reach full productivity, even if the project is successful

• If they come with answers, but cannot be flexible and creative within their framework, your team will spend a lot of extra cycles trying to work within their rules and structure.

Page 10: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

7. Team Spirit• A pro basketball team cannot win tournaments if it goes

through its routines mechanically – with no joy or spirit• Likewise – a dev team that doesn’t have positive energy and

drive in the way it works, won’t be engaging to work with or a respected part of the team• Energy is infective• It drives every member of the project team to want to be better and

reach team goals• Team spirit needs to be fostered and encouraged from the start

of the project and encouraged to grow • It needs to hold through the inevitable problems every project will face

Page 11: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

7. Team Spirit• Vendors should provide proposals that will help the

whole project team to integrate and work as one unit from the start• You can’t afford to allow separations and silos take root• Project kickoffs with time for the whole team to be together,

in one place and also spend some off-site together are very important in building positive energy and spirit• When teams are separated by geography, using the kickoff

as an opportunity to start off together gives team members a sense of who they are working with and that they are a critical part of the team

Page 12: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

7. Team Spirit• Team spirit is part of

building a sense of responsibility and ownership in project outcomes• Helps to ensure trustful

communication and sharing in team wins and losses

• Having an outsourced team that has positive drive & spirit, that wants to what is necessary to reach a win for the entire team is an invaluable asset.

Page 13: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

8. Empowered, Committed Developers• Agile is considered an industry standard methodology• But there are many implementations that are “agile in name only” –

using the name, but in practice, unable to take advantage of its positive attributes

• Being fully agile means• Individual developers have to be able to take an active, responsible

role in the process of software development• When they take responsibility for a user story, they must be committed to meet

their estimated effort and fully understand the context and outcomes of the functionality from a user and stakeholder point of view.

• It is the level of empowerment and responsibility that differentiates agile• Developers are able to communicate directly with stakeholders to confirm and

strengthen their understanding before they start development

Page 14: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

8. Empowered, Committed Developers• If developers are properly

empowered• There should be no intermediaries.

They should be able to make direct, personal contact with the product owner and stakeholders

• They should be able to start the process of inquiry so they are personally satisfied that they understand what they need to develop

• Personal interaction will not be required for every function (especially later in the project as they understand context better) - but being empowered means each developer is personally committed to achieving a successful outcome for their work

Page 15: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

8. Empowered, Committed Developers• Vendors who can provide agile teams and individuals for the

environment have invested in developing processes, training, culture, and communication skills• This is not a per-project, limited investment. Their developers are

expected to know what is expected of them and act accordingly• If you are expected to develop extensive, detailed

documentation of functionality or proposals outline a project organization with a hierarchy of project managers and supervisors but give you little confidence that developers are empowered..• You need to question if your outsourced team will actually be agile

or just going through the motions…

Page 16: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

9. Location, Location, Location• In an age of ubiquitous

broadband internet, secure audio and video – is location still important? • In a word – Yes.

• The process of software development requires a unified team• Able & committed to

working together to achieve project goals

Page 17: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

9. Location, Location, Location• In the best case, you could always have your teams in

the same place – in-house and outsourced collocated• Where team members can see each other and work side-by-

side throughout the work day• But reality is…• You many not have the free space available at your location

or near by• Extra space may not be easy to come by in busy urban

areas – especially for relatively short periods (less than a year)• Finding qualified, local resources, when you need them isn’t

cheap or easy• Adding to a local team means training, team adjustment,

committment

Page 18: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

9. Location, Location, Location• Simply going for the cheapest available skilled

resources is not necessarily a good strategy either• The least expensive resources are usually in parts of the

world with opposite working hours because of time zone differences• When will they be available for a video call? Who will be flexible,

what impact will it have?• You can trade emails, use intermediaries but communication fidelity

is lost. Time is wasted. Answers take time because you have to get down to the right information

• If a face-to-face meeting is required, it can literally take weeks to set up and complete because of arrangements, travel and visa issues

Page 19: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

9. Location, Location, Location• An alternative is to use “nearshore” – resources in the same

continental geography• Time zone differences are the same as they would be if the team was

located a few states away - a time zone or two• Your team and the outsourced team can work in the same time period

and take advantage of technology to collaborate• Higher team availability and relative cost advantages

• Regardless of where your team is located• The requirement for real-time interaction between team members is

real• Doing without real-time collaboration has a cost in both productivity and quality

• Consider the impact of location on project operations strongly

Page 20: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

10. Communication• Outside of technical considerations and time zone

issues• If you are considering a team in another country or

geography the communication problem comes down to language and culture

• If English is not your outsourced team’s native language they may be able to read and write well but• They may not be comfortable in conference calls when they

need to understand and communicate ideas in spoken English• Finding the right words in a conversation takes different

skills and experience• There is a level of peer pressure, cultural distance and

personal embarrassment that can prevent team members from participating fully

Page 21: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

10. Communication• Communication issues can become

serious when it results in lowered productivity and misunderstood requirements• It becomes critical when progress and

problems are not communicated promptly and issues get out of hand

• You can reduce risk by using nearshore vendors in locations that share common elements of culture, understand and have studied your language formally as a second language. • Vendors that offer team members with

experience working across digital communication channels in real-time

Page 22: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

10. Communication• Vendors that are dedicated

to providing nearshore resources provide their team members with• Regular training and

reinforcement for their communication skills• Training and exercises that

help them integrate into collaborative environments more quickly• Opportunities to improve their

skills and personal growth

Page 23: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

In Conclusion• Finding a vendor that will work with you as a partner

will take time and thought on your part• You need to have a clear picture of what you need for

success• The ten points in these two presentations are a

guideline based on 3rd party interviews of our past clients• But, they are not specific to your situation, your project• Use them as a guide, use them to help you look for a vendor

who is prepared to answer questions about how they will solve these issues for you. It is a good conversation to have for both sides of the table

Page 24: 10 Points to Consider for Finding an Outsourced Dev Team   Part 2

We’re Scio• Scio is a provider of nearshore, outsourced software

development services. • As a service provider, we focus on providing teams that are

trained, tested, and experienced in agile development and the team environment required for success

• If you would like to know more about how our services could work for you – Contact Us.