The Dangers of Outsourcing Software Development
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 118 | |
Author | ||
License | CC Attribution - NonCommercial - ShareAlike 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/44798 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
EuroPython 201973 / 118
2
7
8
15
20
30
33
36
39
40
45
49
51
55
57
58
63
64
66
68
69
71
74
77
78
80
82
96
98
105
107
108
110
113
115
00:00
Euler anglesSoftwarePoint cloudGoogolBroadcast programmingContext awarenessBitInformation technology consultingTheoryTraffic reportingGame controllerBit rateMereologyPrincipal idealDivisorProjective planeSpeichermodellObservational studyNatural numberOffice suiteMultiplication signStrategy gameProcess (computing)Metric systemDigital rights managementStatisticsCASE <Informatik>Expert systemSoftwareClient (computing)Product (business)Software developerPhysical systemField (computer science)Presentation of a groupSimilarity (geometry)Latent heatCausalityTransportation theory (mathematics)Lecture/ConferenceComputer animationEngineering drawing
06:13
Decision theoryVideo GenieNumbering schemeNoise (electronics)Public domainInteractive televisionDivisorFigurate numberDifferent (Kate Ryan album)Game theory
08:05
InformationDifferent (Kate Ryan album)VotingPrincipal idealDigital rights managementClient (computing)Principal idealAsymmetryInteractive televisionType theoryInformationGroup actionDivergenceSelectivity (electronic)Vector potentialProcess (computing)Hazard (2005 film)Maxima and minimaResultantDigital rights managementGoodness of fitDifferent (Kate Ryan album)Metropolitan area networkComputer animation
10:46
Computer fileFingerprintDifferent (Kate Ryan album)Product (business)Dimensional analysisLatent heatGoodness of fitCodeSource code
11:43
Information technology consultingPrincipal idealWritingInformationSoftware bugHacker (term)InformationGame theoryWebsiteInformation technology consultingMultiplication signNumberCartesian coordinate systemClient (computing)Decision theoryProjective planeSoftwareProcess (computing)Software developerSinc functionFigurate numberSoftware testingMeasurementNumbering schemePrincipal idealProduct (business)Beta functionMathematicsMetric systemPay televisionBitPublic domainStaff (military)Term (mathematics)Design by contractOrder (biology)Software maintenanceCircleComputer programBounded variationMereologyVector potentialPublic key certificateTheoryResultantPosition operatorHierarchyDifferent (Kate Ryan album)AsymmetryLatent heatExclusive orAddress spaceExpandierender GraphForm (programming)Stack (abstract data type)Computer animation
19:11
InformationMaxima and minimaBasis <Mathematik>Game theoryOpen sourceTheoryDigital rights managementProjective planePosition operatorMereologyCodeInformation technology consultingShared memoryPhysical systemInteractive televisionPoint (geometry)Repository (publishing)Client (computing)Film editingWechselseitige InformationPrincipal idealProcess (computing)SoftwareDifferent (Kate Ryan album)Musical ensembleTask (computing)Euler anglesInformationProper mapSocial classMultiplication signStandard deviationVector potentialContext awarenessMetric system1 (number)ArmFormal languageHazard (2005 film)NumberRewritingMetropolitan area networkMaxima and minimaMeeting/Interview
26:39
Principal idealStrategy gameMultiplication signAreaInformationInformation technology consultingGoodness of fitProjective planeTerm (mathematics)Real numberAsymmetryProduct (business)Maxima and minimaWindows RegistrySoftwareDigital rights managementPublic domainMereologySimilarity (geometry)CASE <Informatik>Mechanism designClient (computing)Data structureWebsiteExpert systemMetric systemBitLatent heatComputer animationLecture/Conference
Transcript: English(auto-generated)
00:07
Thank you all for coming This is a spicy title isn't it? At least the first one looks very exciting I don't know how we feel about the second one, but we'll find out if that's interesting, too
00:21
So my name is Sebastian all I have a teeny tiny company that does consulting gigs I do hardware design I Like to play around with micro Python and until recently I also was a senior consultant at a medium to large size
00:41
consulting company in Norway So the agenda for today is to explain what the principal agent theory problem is Look at it in the context of software consulting We're gonna have a look at some sneaky things that a consulting company might do
01:03
And we're gonna have a look at mitigation strategies what we can do about it, so let's start at the beginning What is the consultant do I'm sure you've seen one of those maybe at the office we like to wear shirts
01:23
at least I wear a shirt at the interview and Maybe sometimes for the first day at work, and then I relax a little bit, and I start wearing my t-shirts again So consultants are called in to gain some Some external submit objective advice
01:43
That you can't get in-house Recommendations a consultant might also be an expert at a field Where you're missing that competence in-house? But a consultant can also be a person that helps you out temporarily at a project that you have and you need extra
02:02
hands It can even be that part of your project or even the entire project itself might be Handled by a consulting company, so these are the four main parts of being a consultant and
02:24
It's booming It grows every year Technology and IT consulting can comprises 20% of the global consulting market Recruiting is very high especially in Norway for consulting companies, and they pay well
02:44
It's exciting to be a consultant because you can Get to see many different technologies you get to see how things are in many different companies, and you learn fast some businesses they like the idea of having a consultant because
03:00
Then you can just get someone in for a specific purpose and when they finish with their job They leave so you don't have to deal so much about Retaining people laying people off when there's no need for them So it's easier to get rid of us but
03:23
IT projects do not always fare well So there was a study in 2015 from a Norwegian University called success and failure in public IT projects and It had some damning statistics So what they did that it was that they found five metrics
03:42
That they used one is use value of the deliverable technical quality of the product Cost control in the project time management and lastly efficiency in the project execution and
04:00
They found out that only 8% of these projects succeeded on all these success factors Around 50% Were unsatisfactory and at least one of these factors and also the largest projects seem to be over represented in In the cases where there are failures
04:24
To bring up one example we had was there was a project in Oslo our capital to To have a unified electronic ticketing system for our public transportation So if there are any Django developers here
04:41
They would maybe say this I think it'll take three weeks It took ten years and it cost around 67 million euros and it was a complete failure What the report also interestingly found was that they found no significant difference between private and public IT projects
05:02
They all had very similar failure rates So what causes this what makes bad project Why do we overspend and why do we underachieve? Why do we delay?
05:25
Is it the client? Does the client not give good enough specifications? Is it the contractor? Do they do not deliver high quality? Usually it's a bit of both Usually it's one usually it's the other
05:40
Usually sometimes it's external factors that you cannot foresee Maybe a key person or some key personnel drops out of the project and you lose important experience But for the purpose of this presentation, we're gonna be focusing on the contractor the consulting company
06:01
But to get closer to the nature of this problem Let's consider a More simple example So your car breaks down or your car starts making a noise an annoying noise and then there's a dashboard light that comes up
06:23
One of those dangerous genie in a bottle lights and you're worried So what can you do you can do one of two things you can either decide I'm gonna learn about car repairs I'm gonna spend a couple of months Studying this and I'm gonna try to do it myself For me if I tried that it would still be my first attempt trying to fix a car so I would probably still fail
06:46
so what I would do is I would take it to a repair shop and The repair guy he comes he looks Pleasant he has a look at the problem gives me a diagnosis. It gives me a price But there are two important concepts that are at play here
07:04
in this interaction and one is that The repair guy knows much more than I do about the domain So the repair guy knows a lot about repairing cars But I don't so I don't have any good way to Figure out if he's actually telling you the truth or not. He's he's scamming me. Is he being reasonable?
07:26
Is he a good repairman? Is he even a car repairman at all? the second factor is There's a potential difference in Interest here. So my interest is to get the car repaired as fast as possible if you can work overtime. That's cool
07:44
If you can do it for free, that would be great If not, then the lowest possible price Whereas the repair car repair person he wants to get as high price as he can that would still make me happy to pay the price So there are slightly different incentives games here, so
08:04
turns out that economists and People in political science they define this type of interaction as a principal agent problem Principal agent problem occurs when you as a principal you want something done and you don't want to do it yourself
08:23
You want an agent to do it? Maybe the agent is much better at doing that than you are This is from Wikipedia Principal hires the agent the agent performs work for the principal. There is asymmetric information there that comes in from the top
08:41
So one is that I can't really know if he's a good repair car repairman I don't Know if what he's telling me is the truth, but I also don't really I can't really control him I can't really know if he's doing what he should be doing So that's asymmetric information
09:02
There's also the concept we talked about different interests. You see the self-interest thing that goes there So these two concepts combine to form a potential risk for the agent Doing things that are contrary to the principal's interest
09:23
so the agent might do things that the principal don't want him do not want him to do and the result We call adverse selection you might pick the wrong person for the job and also moral hazard moral hazard is that thing where
09:42
the agent is working contrary to your interest as a principal and This works on four fundamental assumptions one is that principal and agents are rational actors To the action of the agent affects the success outcome of the principal
10:00
the principal cannot fully control the agent and There's a divergence of interest to play and that causes the potential of adverse election and moral hazard This concept is relevant to many different things
10:21
It's it can be described an employer-employee relationship can be described in this way Shareholder management they might have different incentives Shareholder wants to maximize profit Management maybe wants to keep his job and they have a more stable outlook for his for the company. So
10:47
Asymmetric information Many of you might already be looking at this and thinking is this high quality code You might be able to determine that but if you're not a coder you're not going to be able to determine that
11:00
You have no way of knowing if this is high quality You can only ask Does it work maybe but is does it work? Is that a good enough? qualification for a good Execution or for a good product Definitely, it's not
11:20
The different interests you might want I wanted a house. I wanted it to be built according to specification I gave them dimensions and everything and this is what they gave me They minimize their own cost to to hand in a product that's according to the specifications now
11:47
What I'm gonna do in my research here I found a publication called principal agent theory and its application to analyze outsourcing of software development and
12:03
We're talking about like how does this principal agent problem apply to software consulting and it says I quote The problem is especially glaring for the software business due to missing metrics and measures for programmers productivity and software quality The missing concreteness of software makes it harder to control effort invested and results reached
12:26
so I would say definitely that software consulting is Has the potential of asymmetric information for sure and there's also diverging interest so Let's play a game I
12:43
Know there are some hackers in the audience. Maybe some pen testers So we're gonna have fun and figure out which exploits can we find if we're a nefarious agent? How can we maximize our own games? according to our interests So
13:01
What we can do we can do the bait-and-switch So you get the top guy in your company? Really good guy. He has awesome CV. He's very good at writing proposals. He kind of implicated that he's going to be part of the project You use The brand that you have you're a big company. Maybe
13:21
You're recognized and then when you get the contract you kind of change the terms all of a sudden this guy Awesome star guy. He's out of the project and replaced by ten junior Developers who are form or just recent graduates We slap some certification on these junior graduates
13:40
So they have some at least something on their CV and The junior devs they make more mistakes too. So that means that there's more work to be done There's more bugs to be fixed and that's also good for when the product is delivered and you want maintenance
14:01
so One thing to say about that is that resumes are personal or professional its personnel marketing Devices that people use and the potential for for puffery is is there?
14:21
The second one is called the land and expand So you do kind of a similar thing you get your top guy into the company only him and You have him do a great job at one or more projects and then you have him climb up the corporate hierarchy gain trust and
14:41
When you do that you you try to get build some goodwill and then you are in a position to start influencing the decision-making Processes, so now every time it comes up. Oh, we we might need to build a new website because our website is two years old And there's a new thing that we need to a new technology
15:01
Then this guy can say oh we have actually the star team We have the perfect team and before you know it you will find that consulting company is everywhere with also junior devs But it's a great way to get in and to increase the number of consultants with your clients and
15:24
Talent the guy who came in he get he might get some reward scheme back home and also You have more political allies because you have more people from your consulting company, and then there's the vendor lock-in
15:42
So when you're already in a company with a client And you're nefarious then you want to make it as costly as possible to replace you so in Our circles we have a saying that says to leave your code As if the next person is a vengeful psychopath that has also knows your address
16:08
But if you're nefarious you don't want to do that you want to create exclusivity you want There to me not so much documentation You want maybe to promote more novel tools and technologies?
16:22
Because that decreases the available pool that can replace you If you're really smart, then you're gonna want to sell some in-house software Into the clients so that means that when You're the only one who can help out with that software
16:40
No one else knows anything about this in-house tool and also It's probably it can be some old legacy software that you just sold So there's not a lot of maintenance on it so when your client Has a problem because the software doesn't run anymore. They're gonna have to Talk to you, and you'll say we can fix that bug for a price
17:07
So make it as costly as possible to replace you and then when you're there Then you can start to inflate the cost of your personnel Maybe you want to minimize effort so you can double staff Have them work
17:21
In a different with a different client as well If there are any changes that wants that needs to be made on the project you make a variation order like a change order So everything that needs to be done extra. You're gonna have to get paid for that You can also if there's a problem you can always blame any issues on the client constantly changing the specifications all the time
17:46
Since we're talking about nefarious actors here. Why don't we go one step further? We absorb the business and domain knowledge of the company we're going to want to recruit the top talent pay them a little bit better and If we're extra
18:01
Devious we'll sell it back to them at a premium There's one funny phenomenon that I heard about that's I'd like to tell you about it's called the CV driven development So that's when a consultant comes in and he wants to learn the coolest new shiny technology So he proposes that as a solution
18:22
Because then he gets to learn how to use how to use this new technology on your bill and you're left with maybe something beta stuff and Anyway, it was developed by someone who learned it the first time So it's not necessarily a good deal for you
18:43
Okay, so how what can we do to? mitigate these risks That the agents are doing to us So if you remember what I mentioned the two things the information asymmetry and the incentive difference so you want to decrease the information gap you don't want to be a
19:05
Project leader a technical leader that has no idea about the technological stack. I've seen that too many times that there's there's technical management in-house that kind of have outsourced too much to the consultants and
19:20
That's not a good position to be in You want to insist on full access to source repositories? to any metrics You want to own the source repositories preferably? The build system the task management system, it's good to have access to that stuff It's important to note that there's also difference between
19:41
Information that you gather and also understanding that information so information itself will not get you anywhere unless you understand what it means You might want to introduce a technical review by a third party nonpartisan party that can come in and at least then there's no skin in the game for them to
20:02
to cater to a bad solution So just keep someone on your side that knows enough to judge whether this is a good way forward or a bad way forward That also puts accountability to your to a person that's your employer
20:21
So you don't want accountability to be with the consulting company you want to be part of the project You can also try to align these incentives so that you get more of the same interests You want to maybe increase the number of interactions with a with a consulting company
20:43
So don't just give them the whole project at once Maybe just give them a project like a small part of the project see how they do That gives them an incentive to achieve a good solution for you Split the project into parts. Yeah
21:00
You can also do a performance based reward That's getting more popular now that the consulting company comes in and say we can just get a cut of whatever success that you have And we don't have to get paid if you don't succeed It's interesting But it also might end up costing you a lot if you have a lot of success and also it might not always be
21:21
Easy to to find a way to measure objectively the monetary success Okay minimize dependency Minimize that some cost that potential for some cost you want to make it easy to replace Avoid vendor lock-in at all costs. That's a very good tip
21:46
insist on using standard tools code guidelines proper documentation well-known technologies You might want to consider multiple contractors. So more than one maybe two contractors This is this is especially useful if you are dealing with more novel technology innovative technology or like
22:06
Niche languages because then you always have one extra supplier It also helps to enforce these code guidelines because then they will have to communicate with each other and share code
22:25
One thing to remember is that as consultants it's very easy for us to be yes, man can do people Yes, we can do it One of the reasons for that is that if we are too critical we might be dropped off the project and
22:41
It's much easier for us to just get by on Fixing things for you and doing what you tell us to do But if what you tell us if you as a client Tells us consultants to do something that we consultants might not agree with then it might be feel hard for us for some of us to take that discussion because
23:01
Things can very quickly turn political If there's a consulting company, that's nefarious and we come in If I were to say well, this solution is not very good There's still a person in-house that got this consulting company in in the first place and he might want not want to feel attacked in that way
23:21
Be aware of patchwork and band-aids for things instead of big rewrites That's something that might happen and in conclusion We went very quickly through a
23:42
Principal agent problem and how that might apply to software consulting and the software consulting industry We've seen what asymmetric information is and different interests and How it can create a risk of what's called moral hazard, which is the agent working
24:02
against your own interest We discussed some possible techniques that are available for a nefarious actor and how to mitigate them But I would like to leave you with Two important points three important points Remember that a consultant always works for two companies
24:22
they work for you as the client and they also work for their employer and most of us are very good at keeping a balanced attitude towards these two loyalties But it's always a thing to remember that we work for two companies The second one is has to do with accountability again, so if you imagine your project is the Titanic
24:46
Then us consultants. We are the first class first class passengers. That means we always We're the ones that get the lifeboats when the ship starts sinking because we can go to a different project at a different client and
25:02
The solution itself that's not working will stay with you. So you might find yourself with a violin in your arms and Play as the ship goes down but most importantly We are decent people
25:22
most of us are and This principal agent problem comes from economic theory. It comes from game theory It excludes sometimes It assumes that we're all acting in our best interests economic interest but it it is also the case that if you motivate people and if you don't micromanage them if you
25:47
Keep them motivated. They will do a good job for you. Most likely so that's always important to keep in mind I don't want you to find find that you now are very too skeptical and are showing it too much So just assume good intentions
26:03
Encourage mutual trust and Avoid micromanagement because your consultant might go the extra mile for you He might want to do it out of personal reasons and he will probably put in that extra effort that is required sometimes So in conclusion do not get tricked by the worst among us and nurture and support the best among us
26:25
Thank you very much Thank you very much Sebastian for this talk. We have time for questions
26:41
Sebastian thanks. Thanks for your talk. I like your car repair Metaphor, okay, so how would you? Project your mitigation structure as to strategies in the car repair scenario Which scenario did you say scenario that my car has a funky light in the dashboard? Oh, I need to go there
27:04
Yeah, I'm the principal the mechanic is the actor So what kind of medic how would you project your mitigation strategies and to that metaphor? Yeah, so what I would do then is that I would try to decrease the information gap
27:20
So part of that information asymmetry is that I don't know if he's a good repairman or if he's trustworthy so I could go to a review site and I would see does he had good reviews and that would help me to get information about other people's experience and I wish that there was something similar in terms of software consulting
27:44
I think that would be very helpful for everyone involved But it's it's very difficult because then you would need some objective metrics And I don't think it would be that easy to set up. I think most of the time More major corporations as clients they would have their internal registry
28:02
Where they logged their in experiences? more questions Thanks for a talk As a role as a consultant you talked about this information asymmetry and the agent and the
28:22
What was the P again Principal principal And you also told us that there exists some technical leaders in companies that are a little bit Far away from the tech experts they need to lead do you
28:40
encounter this this principle and agent problem within companies and how to deal with them when they are already existing and you Yeah join that If I encounter this in existing companies, what does it exist? Yes? Yeah, I would say it does exist. I have encountered situations where there is a very very bad situation and
29:07
Somehow it needs to be Dealt with so it might be a bad technical solution that is only going to be viable for the minimum viable product and It's not going to work for any real case scenario
29:20
The problem if if the in-house leadership lacks the technical know-how Specific to that domain is that if another Well-meaning consultant comes and says look at this. This is not going to be going to work Well, we need to do it this way and that way instead is what I propose then The the management has a tough situation because he can't really
29:44
Do any value judgment whether or not? That well-meaning person is correct So that makes it in turns it into almost like a trust issue. Who do I trust the most? And then sometimes the person who's been there for longer has gained more trust
30:01
so I definitely find that to be a That don't have software as their main revenue generating area Alright, we're out of time. Thanks again Sebastian for this nice talk. And if you have further questions come up to him
30:22
Thank you