Software Development Outsourcing: Our Story
ascendixtech.com
ascendixtech.com
They were doing great work for us but eventually, there was a business event where they left.
-------
"Business event" aka budget cuts? Benefit cuts? Change in leadership? Bad leadership?
People in the US often do not leave if things stay the status quo, managed well, and are given appropriate accolades for their performance. Absurd way to deflect blame and justify cutting fair wages
They are probably routing for the Russo-Ukrainian War to continue as long as possible. Makes for more "favorable" conditions too. The worst event for them would be if Ukraine joined the EU, with all that pesky labor protection laws.
This introduces possible outcomes like failed states, and counter measures like authoritarian strongmen to maintain modicums of stability. This can then lead to greater, unintended geopolitical consequences. And it all stems from a bunch of businesses trying to shave a few dollars off of wages...
I said something like "Yuck, who needs healthcare and basic life standards" and he sincerely replied "Exactly!"
Business is full of people like this. If it's not full blown sociopathy then it's definitely a grievous lack of awareness, turning humans into an inhumane abstraction.
Civilians are getting the brunt of it on both sides. Don't think for a second that Ukrainian forces avoid hitting civilian targets in some display of galantry. It's a brotherly war and nobody wants it.
Company: "We've been checking offshore software development rates and will be cutting your compensation to $25/hour to be competitive".
Developers: "Nope".
If it's something so significant that most of your staff leave, then don't try to imply the blame is with the staff.
Imagine how much it cost them to build up and tear down development teams six times. Not just in real costs of contracts and such, but also the logistical costs of training the new teams, building the relationships, finding faults, correcting errors, determining alternatives, knowledge transfers, etc... Not to mention opportunity costs of all the time spent.
Effective outsourcing is paying AWS/GCP or Heroku for whatever they can provide. Not trying to turn an expensive employee into a cheap one.
The article speaks against my experience and working alongside some talented people in Argentina, China, India and surprised they didn't list it - The Philippines.
The hourly rates also don't seem likely for what "they're" paying them, but more what the end client is. I don't see $35/hr common in China for a BPO/offshore provider, see that as what is being billed to the end customer.
And at that point, $35, 45, 60/hr dev rates for Dynamics CRM and Salesforce, might as well employ locally. You're not saving much, if at all. Geez.
But the cherry on top:
"A funny fact about offshoring to Ukraine is that we, as Americans, wake up when the sun is up. But when I came to the office, no one was there. They are not getting there until 11 AM – 11:30 AM.
(Editor comment: it is not always the case, in fact, the majority of Ukrainian developers prefer starting their day at 9 AM – 11 AM)"
Lol, what is this. What. It's simply hilarious this is even there at all.
I've worked with some phenomenal talent in Kiev. I've also had people who would over-engineer the simplest solution in comical ways, that had to be let go. Not unlike engineers everywhere.
His solution ended up using as many new features as possible, seemingly for the sake of using the new features, but beyond that, it was incomprehensibly complex. Most importantly, it didn't work. It felt like he used the project as an excuse to try new tech and pad his resume.
The entire project was a giant mess of technologies, to the point it looked like every dev who was on it used it to try out some random technology for personal curiosity. I mean... it used multiple RDBMSs, multiple programming languages, multiple formats for transporting information over the network. The set-up/build process was so complicated and fragile. It was insane, this project could have been done for probably 1/4th of the cost of less.
Project management - it's extraordinarily necessary when you have devs who think they are at work to personally entertain themselves rather than build the best product.
"You would think that since we are so close to them, there would be less of a language barrier"
Because we all know if you get close enough to a person, they'll start speaking english.
"One of the main challenges that we had with China is that we are on the other side of the globe. You could hardly be more opposite on the clock."
Shocker that a guy who had apparently never even looked at a map wasn't great at running an outsourcing operation.
As an American I definitely do not get up when the sun is up. And, in fact, most of the people I know in America do not.
12pm to 10pm is a perfectly fine workday with lots of overlap for communication
We even had politics interrupt development once (on the daily conference call, he said "We're having a revolution outside my window. I have to go.")
It seems like their approach is more to finish the task as quickly as possible, with little care to the quality. Obviously this works for a lot of products, but if you're looking for a high quality, maintainable, or safety critical product then I've found India isn't the best place to go for that.
If you're looking for a product to get out the door asap and don't care about the quality of the code and/or UX, then India may be fine.
The first time you come across this it's a bit of a culture shock as I think most in the US are more used to having a back and forth exchange.
I probably lose 1/4 of my time to unclear specs and things that PMs assume I would know. Why they think I know anything about the industry is another question.
No one in their right mind would put an engineer on a factory line because said engineer built the machine. Yet people are completely ok handing off tasks to developers and asking them to do the mechanical part of the job.
In both cases you're only extracting half the value from that person that you could be.
That back and forth with your PM isn't wasted time, it's you digging in to better understand, and in doing so are given the opportunity to identify and make suggestions due to the expertise you have that the PM doesn't. I'll go one further. Your company should endeavor to put you face to face with the "customer" making the request if it's practically possible for exactly the same reason, and your PM shouldn't be involved at all outside of setting the priority for the work itself. This is of course ideal circumstances and there are always reasons why the reality can't match exactly, but in general this is what you should be endeavoring to do.
Strongly prefer the current system over that :)
A "bunch" is not a valid item count.
They are going to be dissatisfied by whatever colour "red" is chosen. Or with the sequence of steps to get to a goal in a paginated step flow if not ironed out first.
If something is going to expire, they need to specify the time along with the date and whether it is attached to the user's timezone or UTC.
They are going to say Firebase when they mean Mixpanel because they might have Googled something and badly misunderstood it.
You are trying to do a structured activity based on the thoughts of someone who often isn't.
Given the choice between writing code that gets tossed or a tedious and repetitive conversation where I am endlessly asking "can you be more specific?", I choose writing code. Someone else can have that conversation.
Often people aren't sure themselves what they want until they see it, or they get new/better ideas after seeing it in motion (or decide they don't like it). Good software dev is like boiling water. It's tumultuous with a smattering of chaos, but in general drives towards the goal.
It also allows you, as a developer, to take more ownership of the software as a solution. At the end of the day you're helping solve someone's problems. For me that's satisfying, even if it's a small problem.
And it's been my experience when you do that well, people love you for it.
And to be clear, I put customer in quotes for a reason. Sometimes the problem you're solving is that batch job needs to be realtime, or that one query is slow as the data got too large, ad nauseum. It's not always non-technical people.
What I never want is a PM to just tell me to make a query faster without being able to discuss with the people it affects what their use case is so I can start optimizing for the specifics rather than just in general (although sometimes that's the right approach).
I wouldn't normally comment about the grammar in an article... but who wrote this?
>25 is the lowest average developer age.
Huh? What does that even mean?
I think they outsourced writing this article, too. ;)
If you're a US based manager, this is great. You suddenly become that much more valuable to your employer, even though the customer will lose out. Plus, you don't have to deal with that smart chick down the hall who knows how to code and makes you look really dumb and lazy in meetings getting more glory with the bosses.
The more bureaucratic the org and removed from customers the success criteria are, the more likely it'll get outsourced.
Even a developer in the EU could cost half that of silicon valley, and I don't think many people here would consider they're paid unfairly.
Is there another Europe I missed?
Thinking anything otherwise is ridiculous nonsense.
This specifically reminds me of when a company I worked for fired my two developers by making it so they couldn't clock in. They didn't have the respect to tell them to their faces or to tell me who they reported to!
Yet they seem surprised when I quit the same day.
outsourced web services?
Canada is not mentioned in the article but should be, as well as Nigeria, Ghana, and the like.
I recommend figure out first how to be productive and secure with local work from home, then how to remain productive with multi-timezone distributed teams, and only then consider near- and off- shoring but in a dedicated not staff-aug model.
In my experience, wages of experienced developers don't vary so much geographically, because outsourcing is a global market. Dev/agency in Ukraine, Germany, China or Argentina know what kind of rates they can get based on the skillset involved.
These rates are much lower than in superstar cities, that's basic supply and demand and CoL calculation.
But companies chasing extra low rates will end up with subpar team and these are the clients and agencies that give outsourcing a bad name - be it India, Nigeria or Slovenia.
That's not to say rates are flat. Specialized shops/devs, people involved with prominent open source projects and those that invest in deeper relationships with the clients (and delivering higher/noncomiditized value) can charge a premium, while body shops on UpWork will bid lower amounts.
Outsourcing, like many other things in busines can be great IF you know what you're doing.
What we found to be most effective is clear cut punishments for poor code quality.
We have a itemized list of issues that if we find, the contract would be penalized in points.
Items like OWASP Top 10 count as '10 points' and items like abusing null types are 3 points.
If the contractors exceed more than 15 points of issues in a month we get reimbursed a percentage of the contract. If they exceed (contractMonths * 20 points) worth of issues then the contract is cancelled. Having the 'eject button' is something we've recently added and not had to use yet, thankfully.
Combining this with interviewing the contractors before the work begins has helped reduce defects and having to refactor the code that is build by them.
Overall contractors are a massive time sink, our benchmarks indicate you will need 3 FTEs per 8 contractors to coordinate everything and review the work that has been completed. The quality is usually not the same no matter how much you try.
I don't envy them though.
it's made worse by the fact that a founding team member left the project, so now he is wanting to hire yet another contractor so we don't "fall behind."
i've done my part to explain the mythical man month to him but it's fallen on deaf ears. you'd think the founding engineer of the company would be considered the expert in software project management, but apparently having an MBA trumps that.
He doesn’t really see you as a co-founder is why. To him you are just Lego too. You should reevaluate your relationship with him and with the company.
money shot quote right at the end
> However, we believe our Ascendix story will help you simplify, accelerate offshoring, and become a valuable learning experience and effective guide for your company.
> So, if you are looking for reliable outsourcing software development companies with solid expertise and large experience in building high-quality digital solutions, feel free to contact us and we will be glad to provide you with a free estimate of your project development requirements.
They tried to replace a team of 8 US personnel who supported a main workflow application. The vendor wanted to replace us with 19 resources. I think they finally settled for 12. Also, a few of those resources had to be on-shore to do the PRD support because of restrictions in the financial and PII data. The resources continuously cycle through those contract jobs so they don't retain very much expert knowledge on the system.
At least I got a different job at the same company. It's too bad they threw away my expertise and I basically had to start my career all over again (it was obscure/rare tech).
Like everywhere else in the world there is a shortage of high quality professionals in Ukraine. And specially now that more and more companies are outsourcing their work over there.
My team has had abysmal programmers & testers come in (who we simply had removed from the team as a result) all the way up to fantasticly professional and capable people. It might take some time, and may cost you above the going rate, but there are certainly gems to be found over there.
The main problem has been the culture. In our experience there is a lot of rigid hierarchy over there, that in the first few years kept team members from speaking their minds. Junior developers would never speak their minds, and blindly do what their seniors would tell them to do. And similarly, the seniors would never take any input from anyone who wasn't either a senior, pm/po or architect.
And lets not get into the sexism that is deeply rooted in Ukrainian society and culture.
This is all very different from what we are used to here in northen Europe, as each team member is expected to speak their mind completely (put professionally ofc) so as to leave no stone unturned. Once a decision has been made this way, the team can move onto something actionable as a unified front without unmentioned trepidation arrising later on (or such is the thinking at least).
It has taken us three years of moving people in and out of the teams, figuring out the best composition of what people to have together and where. And even bringing outside contractors in to replace people within the contracting firm we use.
So it is no silver bullet, but it can be done. I do wonder though if all that time and effort, with the cost incurred, would have been better spent simply hiring locally and building the best team we could here.
What the hell does "business event" mean?
I also foresee a few more "business events" in the future for companies that try to drag all their devs back into open office layouts.
But as someone who's not typically privy to this sort of reasoning, it's a fairly good read and I appreciate them for posting it.