The Logic Barrier
Brad was brought in as a new hire to work on improvements for a big-name ERP system. His supposed role would be that of the "input guy" for a new I/O module where engineers would enter some numbers, they would be crunched, and it would output a wireframe design of what they needed to build. While he got started, the development manager Cindy assured him they'd have an "output guy" soon enough.
A month passed while Brad was making good progress. One Monday, Cindy walked up to his desk with a tall, dark-haired gentleman in tow. "Brad, this is Dmitry, your 'output guy'."
"Hello Bard. I am Dmitry. Please to see you," he introduced himself with a firm handshake and large grin.
After Dmitry got settled in, Cindy came back to Brad and told him in a hushed tone, "He just got here from Russia. He might be a little hard to understand, but boy can he code! You might need to give him a little guidance since your part of the application comes first, but I'm sure it will work out great!"
So began several arduous weeks of Brad working on his input interface about 15 minutes a day, while assisting Dmitry the rest of the time. They got far enough to prepare an end-to-end demo for Cindy. When she arrived, Brad put in the specifications for some plumbing parts he found online. They were passed to Dmitry's code and out came what looked like a reject from Rorschach's inkblot test.
"Oh no!" Dmitry cried. "I think I forget to check in part of code. Need a little more time," he requested with a grin and a nod.
"Brad!" Cindy shouted, crossing her arms. "You obviously aren't getting through to Dmitry. Before the next end-to-end test, I want you to test your own components first, then cross-test each other's. I expect better results next time!"
Brad ran through his own code exhaustively while Dmitry supposedly did the same. "Dmitry, I'm ready to exchange code when you are. Everything seems ok on my end."
"Oh yes! My code is good, yes. Add a few more DLL, more logging. Great now," Dmitry assured him.
Brad attempted to test Dmitry's code but couldn't even get it to run. He found several initial run blocks, proving Dmitry never even once ran his code because surely he would have noticed the myriad uninitialized collections and NullReferenceExceptions.
Brad explained the situation and offered assistance but Dmitry assured him "No, no. You sit, I code and fix it up." An hour passed before Brad got an email from Dmitry with a .zip attachment that said "Deploy new DLL. Code working." Brad did just that only to find the code NOT working.
With day turning to night on the Thursday before their Friday demo, Brad decided it would be more efficient to dig in and fix Dmitry's code himself. "Dmitry, just head home. I have some troubleshooting to do on my code," he lied. "I'll get it fixed up before the demo."
"Maybe you need the coding practice!" Dmitry grinned while putting on his jacket. "Goodest luck, tomorrow bring great success."
Brad committed the changes to Dmitry's code around midnight in what amounted to a complete re-write. Weary, he went home relieved that Cindy would be off his back for a while after the demo. That would give him time to figure out what to do about Dmitry.
The following afternoon, the demo to Cindy went off without a hitch now that it had been purged of most of Dmitry's code. Cindy was pleased with the results, "great job gentlemen! How about we go out to the pub to celebrate! I'm buying the first round."
Brad would have preferred to go home to collapse, but he couldn't pass up a free drink. The three of them engaged in awkward small talk over a round of beers. Dmitry offered to buy the next round when he switched to vodka. Cindy left after Round 2, leaving Brad and Dmitry who both seemed to have an unquenchable thirst.
Brad was growing to like Dmitry when he ordered yet another round, putting them on the verge of not being able to stand. Dmitry leaned over to him, bleary eyed and said, "let me tell you a little secret." In perfectly clear English but still with a heavy Russian accent, he shared, "I apologize. I do the broken English thing so people don't expect a lot out of me. It's really the whole logic part of the job that I struggle with. I have a hard time understanding computers. Sorry you had to spend so much time fixing my code."
The stunning revelation caused Brad to temporarily snap out of his stupor. When Dmitry went to the bathroom, he pulled out his phone to text Cindy, "We need to talk about Dmitry on Monday. Don't call me tomorrow, the phone ringing will hurt my head."
[Advertisement] Incrementally adopt DevOps best practices with BuildMaster, ProGet and Otter, creating a robust, secure, scalable, and reliable DevOps toolchain.