When outsourcing goes bad, part 4 of 16
They lie. They lie flagrantly. They lie all of the time, about everything.
As I mentioned, I had accepted a ticket on Jira. It was supposed to be reasonably simple, just 4 story points. It should have taken 2 or 3 days. I had now been working on it for several weeks. Deepika kept asking me about it. For most of 3 weeks I had been stalled getting all of the apps working on my machine. Now I was stalled because I knew nothing about how the apps were supposed to talk to each other. I needed an education about the actual system. I reached out to Stratton again, but he was about to go on vacation for a week, so he told me to contact a guy named Daniel.
Daniel was a great guy, incredibly friendly, very smart. At the age of 27 he was the youngest of the surviving 5 engineers. He had been saved perhaps because he was so dedicated to the project. We had spoken once before I was hired, and we'd had a great conversation, on both tech topics and also personal topics, and so it was good to catch up again.
We chatted via video.
Daniel: Hey, Lawrence, how is going? How are you doing?
Lawrence: Living the dream, Daniel, living the dream.
Daniel: That is the way, brother, that is the way.
Lawrence: You good?
Daniel: No. Not at all. I'm terrible.
Lawrence (laughing): What? You're joking?
Daniel: I mean... (shrugs, laughs, shrugs again)
Lawrence: Wait, are you serious or joking? I cannot tell.
Daniel: So, the thing is, I just got back from India. A bunch of of us. Lucy was there too. And it was bad.
Lawrence: Oh, so, you're being serious? Well, how bad was it?
He was smiling but he was also rubbing his chest in a funny way.
Lawrence: Are you okay? You look like you're having a heart attack.
Daniel: So, I'll be honest with you, I've always suffered from anxiety. Life long. And India made it worse.
Lawrence: Hey, at the risk of being overly personal, have you ever thought about seeing someone about that?
Daniel: I do see someone about that. And they've got me on anti-anxiety medication. But India... it was bad. Like, really bad.
Lawrence: Do you mean the folks at DevModeMax treated you badly?
Daniel: Not exactly. They were nice. But the city. We were in Delhi. The contrast between the wealthy and the poor. It is extreme. You know, a lot of people live in the streets there. And they shit in the streets. And there are sanitation crews that go around and gather up all of the shit, and they put it in a pile and they burn it, so the whole city smells like burning shit.
Lawrence: Ew.
Daniel: That was just the start. The begging. The children. The children with injuries who are begging. It was intense.
Lawrence: So you went to the bad parts of the city?
Daniel: The wealthy part of the city is surrounded by the poor parts. Surrounded on all sides. Anyway, there is a software developer named Kapor, he is one of our better programmers, and I've been trying to encourage him, so I went to his house to give him a gift.
Lawrence: That was very thoughtful of you.
Daniel: Yeah, but, I saw the way he lived. With his grandparents, his parents, his sisters, in this small house, and they don't make enough money so they have goats in the yards, and they milk the goats to make some extra money. That is some deep poverty they live in.
Lawrence: That sounds intense.
Daniel: And that was the happy part of the trip. The worst was at the end. I'd run these classes all week, for about 40 software developers. We are trying to train them so they can help us. And some of them are getting better. But some of them are not. And at the end of the week I had to give them evaluations. 40 evaluations in one day. And a lot of them, they would come see me, they were crying. They were already crying before they came in the room. No one told them what we would be talking about. Most of them assumed they were getting fired. And I had to be honest with them. Out of that 40, there are only 4 who are at an acceptable level. Maybe 20 or 25 who might make it. Maybe 10 or 15 who are not making any progress.
Lawrence: So did you fire some?
Daniel: Well, as I think you know, we don't have the power to fire anyone.
Lawrence: Oh, that's right. But did you recommend that some of them be removed from our project?
Daniel: I did. There are at least 10 that I want to see gone. I'd fire them if I could. I told this to DevModeMax. I was honest with them about how disappointed we are.
Lawrence: So, these 10 developers have been removed from the project?
Daniel: No. We have no power to remove them. I don't know if they will be removed.
Lawrence: That strikes me as crazy.
Daniel: Totally. It's totally crazy. But it's the way the contract was negotiated. Let me tell you a story. There was this guy named Sanjeev. This was late last year, in 2022. We were told he had 10 years experience as a software developer. But he didn't seem able to do much work. So I figured, okay, they are still learning our system. I'll do some pair programming with him and transfer knowledge that way. But when I started working with him, I realized he was not a software developer. He did not know what an if() statement was. He did not know what a while() loop was. He did not know any Linux commands, not even something basic like "ls." He had never written a line of code in his life. So, we have this internal service where we collect resumes. And DevModeMax sends a resume for each person. Not sure why, since we don't get included on hiring decisions, but they send us a resume for every one of their people. So I look at the resume for Sanjeev. And it shows that he has 10 years experience as a software developer. But, here is a trick, our system for tracking resumes has version control. And I could see his resume had been updated. So I went into the version control, and I got to see the first version of the resume that DevModeMax had sent us, way back in July of 2022. And in that first version, there was no mention of him being a software developer. Instead, it said he had 10 years experience as a QA person.
Lawrence: Daaaaaaaaaaaaa-yum. That’s just… damn. That is crazy. But also, that is borderline commercial fraud. DevModeMax is claiming to sell you one thing, but then they sell you something else.
Daniel: The thing is... They lie. They lie flagrantly. They lie all of the time, about everything. The leadership of DevModeMax will lie even when they don't have to.
Lawrence: Jesus Christ.
Daniel: Anyway, we wanted this guy fired. We told DevModeMax that we didn't want Sanjeev working with us anymore. But he is still on the team. DevModeMax keeps telling us that they are giving him training, and that he's going to get better. We can't get rid of him.
Lawrence: Are you kidding me?
Daniel: That is where we are right now.
Lawrence: Damn.
Daniel: Thank you for letting me rant.
Lawrence: That was educational.
Daniel: I just needed to share that with someone, so thanks.
Lawrence: I learned a lot. Thank you for sharing.
Daniel: So, I guess I should go now. But thanks for letting me get that off my chest. Wait, wait, wait. Didn't you actually call this meeting?
Lawrence: Yeah, I needed some help, but you look like you're in pain. You're still holding your chest like you're having a heart attack. We can talk some other time.
Daniel: No, no, no, sorry about that. I'm okay. What can I help you with?
So then Daniel and I worked together for the next 3 days and he walked me through the ways the apps talk to each other. He explained there were some undocumented calls, and there was too much chatter between the apps, and too many API calls that could have been consolidated.
Lawrence: You seem to be aware of the tech debt. You seem to be able to diagnose the architecture.
Daniel: Well, we have had a lot of time to think about this. We made some mistakes when we first started to adopt a microservices architecture. But by last year, we had diagnosed the mistakes and we came up with a plan to fix all of it. We had two really good programmers, Kwan and Allison, and they were working on it. But they got let go when most of the team was let go last August.
Lawrence: That is a shame.
Daniel: Yeah, I try not to complain about it, I'm not like Mack, but it sucks. We were in the middle of several important projects and they all got canceled when everyone was let go. I wish the leadership had given us some warning about the changes, but it was pretty sudden.
Lawrence: It's tough to do a good job when you get ambushed like that.
Daniel: Exactly.
Lawrence: Who is Mack?
Daniel: You haven't met him yet? He's our main devops guy. He's, uh, colorful. He's a loudmouth. You'll meet him soon. He totally, totally hates the changes, and he says so. He kind of says what the rest of us are thinking.
Lawrence: Won't he get in trouble? Has the leadership ever reprimanded him?
Daniel: He doesn't care. He's quitting as soon as our contract ends.
Lawrence: What contract?
Daniel: When they let go of the 25 engineers they offered 5 of us a lot of money if we agreed to stay one extra year. But Daniel has been clear he plans to leave in August, when the one year is up.
Lawrence: Interesting. Are you leaving?
Daniel: Uh... I'd rather not say. Maybe I'm still thinking about it.
Lawrence: Understood.
Read the whole series:
1. But what do these glib little bullet points mean?
2. When the CTO does not trust their own team
3. Everyone is under pressure, everyone is too busy to help
4. They lie. They lie flagrantly. They lie all of the time, about everything.
5. That place is a total sweatshop!
7. I am very, very proud of you. The work you are doing is amazing.
8. I blame you. You suck. You are the problem.
9. We just got $10,000 dollars!!!!
10. The Taj Mahal was built with blood
12. Where are my story points, Gujurat?
13. We are the best people to help him, so why doesn't he want our help?
14. Should a toilet be listed as an amenity?
15. I am simply telling you how things work in India
16. Too big to fail: when you've no option but to brazen it out