7 ms·
I have seen many outsourcing projects with my coachees and with founders, I've managed my own and cancelled several when I was called in to fix them. The key t
by KingOfCoders 4y ago
I have seen many outsourcing projects with my coachees and with founders, I've managed my own and cancelled several when I was called in to fix them.
The key to this kind of work is to understand:
The agency is not your buddy, they have very different goals than you have. Too often do I seen people who have nice chats with the agency over a coffee. They are not your friends.
You need to write the contract to align the incentives of the agency as much with yours as possible. For example: I see hourly billing, and bug fixing counting as billed hours. How has the agency an incentive to keep bugs low if it makes them more money? Agency has low retention, new people are slower, slower means more money for the agency. How has the agency an incentive to keep people on the project?
[Edit] You might think this is obvious, but I have seen unaligned incentives in mostly every outsourcing project I've looked into and was asked to fix. Tip: Do not take the developers they give you/have on the project. Interview all of them and reject the bad ones. As a new customer, they will not give you the best but those available (currently not on project/rejected by other clients)
- mtlynch 4y agoThanks for reading! I have a different philosophy when it comes to hiring in that I assume the people working with me are honest and they're motivated to do their jobs well. I'm paying for their time, and I assume they'll use their time effectively. If they can't use their time effectively, I terminate the hire, but I don't try to fix it with different policies. I agree that there are payment schemes that will cause even honest people to do poor work (e.g., if I paid someone per kLOC, they'd probably write more bloated code), but in general, I'm not worried about someone deliberately sandbagging a job if I'm paying them by the hour. Paying by the hour is not perfect, but no payment scheme is. With milestone-based billing, you get into disputes about what is or isn't in scope, and I don't want to waste time on that. It also incentivizes delivering the minimum quality work to meet the milestone and move on rather than focusing on high quality.
- bathtub365 4y agoAre you rethinking your philosophy after wasting $46,000? > you get into disputes about what is or isn't in scope, This is to your advantage as the one who is able to withhold payment when delivery isn't up to your standards, and you are protected contractually. With pure time & materials it's much harder to sue for non-delivery unless you can prove they didn't work the hours they billed for.
- freedomben 4y agoOP, I hope you aren't rethinking it. You'd certainly be justified in doing so, but I think it would be a mistake. There are most definitely people out there that fit your description: > I have a different philosophy when it comes to hiring in that I assume the people working with me are honest and they're motivated to do their jobs well. I'm paying for their time, and I assume they'll use their time effectively. If they can't use their time effectively, I terminate the hire, but I don't try to fix it with different policies. I've worked with many of them. I myself try to live that way as well, often costing myself non-trivial time and money to ensure that my client gets what I sold them. Of course there are people who are not, but I've seen multiple times a pessimistic approach becoming a self-fulfilling prophecy. Most people will reflect back your expectations. If you expect them to be dishonest, slothful, etc, then they will become that. Conversely showing trust/faith will often inspire a person to live up to the ideals. Between reflection and confirmation bias, lowering your expectation of people will lower your results. I've also seen it become a vicious positive feedback loop that ends in extreme distrust, paranoia, and misanthropic misery. Not worth it.
- ratww 4y agoI have also worked with several honest people who were motivated to do their best, in the most effective way. Actually almost everyone I ever worked with was like that. All the exceptions were agency/consulting people. Their job is bleeding people dry. Period.
- mtlynch 4y agoThanks! Yeah, I agree. This experience hasn't affected how much I try to defend myself from dishonest employees/contractors. I think the prevalence of dishonest/malicious people is so low and screening is so costly/ineffective that it's not worth it. >Of course there are people who are not, but I've seen multiple times a pessimistic approach becoming a self-fulfilling prophecy. Most people will reflect back your expectations. If you expect them to be dishonest, slothful, etc, then they will become that. Conversely showing trust/faith will often inspire a person to live up to the ideals. Between reflection and confirmation bias, lowering your expectation of people will lower your results. I've also seen it become a vicious positive feedback loop that ends in extreme distrust, paranoia, and misanthropic misery. Not worth it. Yes, 100% agree. When someone tells me, "I've put so many controls in place to make sure you can't do X," it's so adversarial that my first though is, "I'd really love to find a way to do X." But if they tell me, "I'm trusting you not to do X because that will cause Y negative consequence for me," then I'm inclined to honor that request because it doesn't feel like we're adversaries.
- fourseventy 4y agoYa but your philosophy cost you $47k for work that could have been done in 2 weeks by a competent developer...
- dieselgate 4y agoPhilosophy, costs, timelines, and justifications aside - I’m curious if, in your experience, many “competent” developers have this sort of design experience in their wheelhouse?
- mtlynch 4y agoI'm sure there's a dev who could have done the same work faster and cheaper, but they're extremely hard to find. Everyone wants to hire a frontend dev who can design and code. They'd either be outside my budget or they'll only take jobs from people with a personal recommendation. There's also the problem that until you hire them, you can't distinguish between a talented developer and someone just pretending to be one. I might go through 10 expensive developers over a year before I find one who's actually capable of delivering the project in two weeks. Do you have a recommendation for where I'd find someone who can do this job in two weeks to the same level of quality?
- soperj 4y agoAt least then you'd have that person for the future.
- deleted 4y ago[deleted]
- boesboes 4y agoYou didnt hire people. You hired a company. That abused your good faith. Also, 'If they can't use their time effectively, I terminate the hire', appearantly not? They clearly where not using their time, your money, effectively.
- mtlynch 4y agoI don't think the problem here was in using their time effectively. Or, at least, it wasn't the high-order bit. Looking at their task breakdown, there weren't outrageous items like "10 hours - change a button color." The times were a little higher than I'd expect for devs who do this all the time, but not egregiously so. I think I overspent on this project, but I attribute it more to poor communication and poor management than the devs working too slowly.
- TheOtherHobbes 4y agoI think you're being very generous. "You don't fit our usual workflow so no further work will be done unless you pay us a retainer like the big guys do" is simply not a good faith position to take half way into a project. They gave you just enough extra attention to hook you in at the start, then kept stringing you along for more cash, with a few token deductions to make it seem like it was all just very unfortunate. (Note: They would not have made those deductions if you hadn't called them on it.) Then when it was clear there was no more money on the table they finally did the work - which, conveniently, left you with a positive impression. They did not do the job you originally asked them to do. They did a job they decided they wanted to do - and charge for - because... why? They're not organised and professional enough to deliver what they were asked to? It's a classic case of actions speaking louder than words. Some questions to consider: 1. Would you have hired them if you knew they were going to cost nearly seven times more than your budget? 2. How much would a website redesign have cost if you'd asked for that in the first place? 3. Do you think that work would have been done in budget, or would it have exploded far beyond it too? 4. Would a different agency have acted in the same way and presented the same problems?
- O__________O 4y ago
- j4pe 4y agoAs a longtime freelancer and agency founder: misaligned incentives are not the same thing as dishonesty. Honestly pursuing your own incentives, and being open about what those incentives are, is really the only honest way to do business. Broadly speaking, it's not economically feasible for an agency to take contracts that pay $7k (or even $25k, for that matter - I've written about this here https://bonner.jp/posts/the-co-op-consultancy/ https://bonner.jp/posts/the-co-op-consultancy/). So if they can do you a favor, in their minds, by fixing your whole website instead of just three pages - and if you're willing to pay for it - then everybody wins. Right? That's the difference between a business relationship and being a friend: you may keep your mouth shut when a friend is being imposing, taking too much for granted, because you value the relationship. You would never remain silent in a business context when somebody is spending your money. It's business. They understand. On my jobs, I'm explicit about what I'm going to do and what I'm not going to do. If my client needs to scale, I'm going to talk them through options for caching and horizontal & vertical scaling. But if my client seems to be dragging their feet on customer development and making poor business decisions about which features to prioritize, well, that's not my role in this relationship. That said, I would never lead a client into a project backwards the way this agency did. Because I do value the relationship! In that I want you to come back, and pay me more money later. Not because we're friends. That's business honesty. This situation is definitely your fault - but only because you and your agency had different assumptions about the rules or norms of your relationship. Your agency poorly communicated their intentions, and you allowed that to happen out of a misplaced sense of friendly obligation. But hey, the new site does look great.
- tshaddox 4y ago> As a longtime freelancer and agency founder: misaligned incentives are not the same thing as dishonesty. Honestly pursuing your own incentives, and being open about what those incentives are, is really the only honest way to do business. I don’t know. It’s a blurry line at best. If an agency dev team is really noticing that bug fixes are billable hours and that’s causing them to relax their code quality standards since they’ll be paid for bug fixes anyway, how is that not dishonest? Perhaps it’s possible for them to not be aware that what they’re doing is in bad faith, in which case you might argue that they’re “being dishonest with themselves” instead of “being dishonest with the client,” but it seems like a distinction without a difference.
- CodeWriter23 4y agoYou're getting a little beat up here...I'm not piling on, I am actually interested, because I need to reinforce my skill in this area, do you have any learning to share about how to better assess the character/ethics of whom you are selecting? I do appreciate your honest assessment of your project. One of my investors is pushing me to build a team of outsourced workers; it seems suboptimal to me to say the least. I find the clues you share in retrospect to be helpful. Thanks.
- mgav 4y agoI think outsourced success depends heavily on choosing capable & honest people and your ability to carefully manage them (give a little rope, see how they do, and then decide whether or not to continue).
- mtlynch 4y agoThanks for reading! >do you have any learning to share about how to better assess the character/ethics of whom you are selecting? I don't try to assess character because I don't think you can effectively. And I know others disagree with me here, but I don't think the agency I hired was lacking in character or behaving dishonestly. At the end of the day, if I'm hiring someone for $100/hr, they need to produce output that's worth >$100/hr to me. I'm a developer, and I have a sense of how long things would take me. I hire other freelance developers, so I see how long tasks take them relative to their rate. So if someone is charging a high rate but delivering work very slowly, I'd let them go, regardless of whether that's their real speed or if they're padding their numbers. My typical strategy is to just hire and fire quickly. I don't do interviews, and I just hire someone for a small job (5-10 hours) and see how they do. If they do well, I give them a larger task and then keep going up after a few weeks. I wrote a bit more about my hiring process a different post: https://mtlynch.io/freelancer-guidelines/ https://mtlynch.io/freelancer-guidelines/
- CodeWriter23 4y agoThank you
- clairity 4y ago
- matt321 4y ago>> motivated to do their jobs well. Doing their jobs well for their own boss means getting as much cash from you as possible.
- shepardrtc 4y agoThe only goal of a company that has billable hours is to rack up billable hours. If that involves building an amazing piece of work, then that's fine. But if it can be done by blowing off the client and feeding them bullshit, then that's fine too. I watched consulting companies bilk literally millions of dollars out of a household name company by simply lying to people that didn't know any better. I really respect your philosophy of assuming people are honest. I used to be that way, too. But after working with contractors and consultants and people overall, I think most people will do what they're told, while others will actively game the system. I've found that if you're tough in the beginning and let them know that you're not to be gamed, then you won't have any issues. Business is business. In any case, "Isaac" was completely full of shit. He knew exactly what was up. He approved all those hours - especially the dev hours that were spent on nonsense bugs. I know I sound harsh, but I believe everyone can excel if you get past their bullshit and accept only their best.
- sgtnoodle 4y agoIn my last year of college, a couple friends and I ended up working on implementing a vehicle-to-infrastructure communications demo for the department of transportation. We were doing it for a grade in a special projects class, but we were working with a consulting company that was being paid by the DOT to implement the demo. Toward the beginning of the project, the consulting company folk were very concerned about giving college students any non-trivial amount of scope, and were talking about how they would hedge all their bets by implementing everything themselves and only use our stuff if it panned out. The demo itself consisted of about a dozen different scenarios. The scenarios were all basically some form or another of geofencing, and it made sense to make a simple framework to get 90% of the way, then specialize for each scenario. The consulting company didn't see it that way, and instead wanted to treat each scenario as a separate unit of work. Fast forward to the end of the semester, and my friends and I demoed our framework for the professor, and a Motorola radio rep. It all worked and we got A's. It was like 400 lines of python. A couple weeks before the DOT demo, we started seriously trying to integrate with the consulting company's stuff, and it was laughably bad. The consulting company knew they dropped the ball, but figured the three of us could just scramble to finish it all on top of our framework. The Motorola rep chimed in and pointed out that we already got our A's, and that the consulting company was getting paid $500k. They ended up paying us something like $20K, and it only took us a few hours to implement all the scenarios on top of our framework. The demo went well, and we ended up directly helping the DOT demo it a few more times over that summer.
- belter 4y agoHave two TinyPilot's...Great product, well supported :-) Sorry to hear about the Website redesign issues. Taking into account the initial budget you were targeting for, it looks like a scenario that required Gerry Weinberg, "Orange Juice Test" before anything else. https://www.intercom.com/blog/the-orange-juice-test/ https://www.intercom.com/blog/the-orange-juice-test/
- treis 4y agoHas anyone approached you about an acquisition? At 50k+ MRR and those margins on hardware you really shouldn't be losing money. Imagine there's a small (or big) hardware company with in house employees to do what you're outsourcing at a much lower cost.
- jrumbut 4y agoI agree with you. I have written plenty of contracts and statements of work, and it's so important to get those right and make sure there's a true meeting of the minds and that they strike the right prject-specific balance between detail and flexibility, but there's no substitute for both sides being a little bit reasonable. It's just not a business where a project can succeed despite an adversarial partner. Both sides need to grow together.
- giancarlostoro 4y ago> Tip: Do not take the developers they give you/have on the project. Interview all of them and reject the bad ones. This is really good advise and probably will save many people months of headaches. You wouldn't just hire someone random HR throws your way, why do that with an agency you've never worked with before?
- Aeolun 4y ago> why do that with an agency you've never worked with before? I don’t see how this works? You ask agency for a developer for your project, you get a developer for the project. Will you just withold payment if they don’t use developers you like?
- giancarlostoro 4y agoNothing worse than being on a project where everyone is hostile to one another.
- nemothekid 4y agoI can imagine one thing: a project that is overbudget and past deadlines.
- TheRealPomax 4y agoNo, you go "I'm sorry but we're paying you for quality work and the dev you assigned us is clearly a junior dev. If you do not have the capacity to do this job then we would have preferred you simply stated this up front" and then you don't "withhold payment", you make it a contract condition and you terminate the contract and find someone else. It has nothing to do with developers you _like_, but with developers who are going to deliver what has to be delivered in the timeframe set out in the contract. If an interview shows they're not going to be able to, then the company did not provide you with developer to do the work, they provided you with someone who can't do the work.
- giancarlostoro 4y ago
- commandlinefan 4y ago> they have very different goals than you have I've been seeing stories like this about out of control software projects as long as I've been working as a developer (so since about 1992). The conclusion is always that the root cause is either malice or incompetence - but it's awfully suspicious that software is conspicuously alone in attracting this much incompetent malice. Of course, we hear stories like this about general contractors, but they're the exception rather than the rule - for the most part, when somebody hires somebody else to build a house, they get a house and it costs mostly what they were quoted up front and takes mostly as long as they were told it was going to take. While I guess nobody would take time to write about a software project that went exactly as predicted, my experience is that those are the exception rather than the rule, and the cases where a software project was accurately quoted in advance are relatively trivial projects. I can understand why the people who are writing the checks want software projects to be predictable, but in 30 years of practice, I've never figured out a way to accurately predict them, nor have I met anybody else who could. I've met a lot of people who accuse me (and software developers in general) of malicious incompetence for not being able to foretell projects in advance, I have yet to meet one who rolls up their sleeves and says, "here, let me show you how to estimate this stuff accurately" except in very abstract terms like "first write down every task you're going to do, then write down how long each task is going to take, and then add up those numbers and voila! Estimate complete!"
- interactivecode 4y agoHeck no building a house or renovating anything is always way more expensive than the initial offered price. Hence the rate for fixed price building of houses is so much more than regular pricing. Somehow build always take way longer and so many if not all contractors leave problematic results.
- mlyle 4y ago> for the most part, when somebody hires somebody else to build a house, they get a house and it costs mostly what they were quoted up front and takes mostly as long as they were told it was going to take. ! Every single time I've hired a general-- I've had to fight scope creep; fight to get them to actually complete work; fight to get the actual quoted materials; fight to fix problematic subcontractor work; fight to avoid price increases. You can get close to original scope and original pricing, but for me it's always involved the implied threat of litigation. Note this is the only sector of business life where I've had to be this confrontational. (Work with individual trades has been not bad at all, but this has tended to be tightly scoped projects with relatively simple dependencies). > software project was accurately quoted in advance are relatively trivial projects. Even simple software projects tend to have much deeper interdependencies between work items, and bigger nonlinear combination of work impacts, than other domains. If someone changes something small on the fly in a normal construction project, and a pipe is in a slightly different place-- it's usually no big deal. It may involve a little bit of rework.
- treis 4y ago>The agency is not your buddy I was a consultant for a while and this is true. We usually had one or two empty suits per project that survived by getting buddy buddy with the clients. It was kind of a symbiotic relationship with the superstar devs. The superstars did nearly all the work and the buddy buddy devs helped keep the clients happy. But ultimately you're paying a lot of money for someone to be your buddy.
- ren_engineer 4y agooutsourcing is usually done so leadership has somebody to blame if their idea fails. Same reason companies like McKinsey exist, usually some exec just uses them as the way to actually implement what they want without directly fighting via internal company politics. If it succeeds, they take credit. If it fails, blame the contractors/consultants
- roguas 4y agoAnd what is the solution? Essentially at the end of the day you want to design: effective labour as service. If only it was this simple we would have it already. Not saying you should not put important clauses into contract to perhaps later have some backing in court, but... Essentially, I think it's good to not treat business parties as friends. However, I would put a lot of attention into this relationship to increase common/shared understanding. For as long as we think we have common understanding and somehow at the end of the day I makes me very unhappy -> I might give it a one more try and do another session of explaining, but finally I will just switch if it happens to often.
- deleted 4y ago[deleted]
- jacobsenscott 4y agoGood consulting companies that are able to think long term realize that good employees doing good work, getting good reviews, and getting recommendations are the key to a sustainable business. Getting fired is expensive. A consultancy that checks all those boxes is going to be expensive though. Maybe more expensive than just hiring your own.
- jrumbut 4y agoSpeaking loosely, I would say that there are two kinds of people: those that optimize within a framework of rules and those that optimize the framework so they can relax inside it. My experience is a lot of web agency people are the second kind. They have a cozy business where a happy client is worth more than a bilked one. They can be (occasionally) generous on the margins because the overall structure is good for them. I would never look at someone coming to me with a $7k contract thinking "maybe I could stretch this out to several months and $40k." It's not worth the heart burn. I've only ever seen that scenario when a client couldn't be talked out of scope creep. Unfortunately this agency was the other type. They're bad for the whole industry because trust is such an important factor and it's a challenge for clients to know who is happy to make a bunch of money for an honest hour's work versus who wants to cheat the already generous system.
- deaddodo 4y ago> For example: I see hourly billing, and bug fixing counting as billed hours. How has the agency an incentive to keep bugs low if it makes them more money? More importantly, why is a bug on code they haven't even delivered yet considered your responsibility. This is not billable hours, this should be included in the original feature hours. If he were requesting a new feature and calling that a bug, sure. But it sounds like they were the one's introducing new features against his protests. Slightly tangentially, this is why I refuse to do work with companies that strictly bill hourly. Give me a project estimate with strictly defined scope. Split the deliverables up into three-five milestones (so either party can cut and run if things are not going to plan) with partial payments on milestone completion. Hourly billing comes after for support contracts and supplementals.
- winternett 4y agoWith how templates, design, and code work on the Internet now looking at a portfolio does little to reassure people of capability. I run a web design company myself, and the best customers to work with are ones that are decisive rather than needing to be sold an idea for design. Also great are customers that realize that design can be changed later or that precedent in functionality, message, and content rank foremost above site design. With any web dev project it's best to plan what can be done in short phases rather than in huge project launches. We learned from the chaos in Healthcare.Gov (not our project of course) that huge product launches overwhelm teams, face huge delays, and also can result in chaotic deployments. Great leaders that are decisive, studious, considerate, accountable, and calculatedly adventurous are the best customers and I enjoy working with them, also written agreements/contracts are essential to being on time and on budget. In "WebAgency's" defense though, their illustrations do better depict the use of your product, despite perhaps the images not being very flattering. One of the biggest hurdles to overcome on our end as a web design company is marketing, as compared to other companies (larger agencies that do web design). They spend a lot on marketing, and thus that is what makes them even more expensive to hire. These large companies also retain developers and split them across projects, so accountability and focus are at times not as good as what a dedicated development team and project manager could provide. The #1 tell for the risk involved in dealing with a design project is the complexity of the proposed solution. It doesn't not seem that this project was meant to be that complex.... I was shocked by the $45k price tag. It's at least a good thing that I guess the company looks quite profitable. I might be charging my customers way too little on the other hand though... :P
- christkv 4y agoI’m dealing with this right now where it’s clear one of the engineers is burned out and needs to be cycled off the project for awhile.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]