I Call Him Thorn - Part 2

A survivors account of working with an unscrupulous hack

  In part 1 I described my origins as well as Thorn's history and personality traits.  In this part I'll describe some specific events.

  The very first sign of trouble was the way Thorn would remain silent or avoid sharing his activities during daily standup.  For months he would say he was 'de-risking the technology' and that he was using JavaScript because it is what he was used to.  Note that our team leads had clearly expressed their preference for and commitment to C# and the Microsoft stack.  I remember this because I abandoned 15 years of Java experience and 8 years of Linux workstations to work at Acme.
  Some time later Thorn suddenly changed his story and demonstrated a prototype written in JavaScript using various cloud technologies.  I should explain that our team had embarked on writing a cloud service that required no user interface, and we were collectively experimenting with different technologies.  Thorn's prototype had a major UI component and he called it a 'minimum viable product' (MVP).  This was a pretty big insult as I had been doing experiments openly using C# and documenting them in the issue tracking system.  Thorn's MVP existed only in his experimental repository and entailed a great number of decisions that I and the other team members knew nothing about.  The repository was named 'codebase' (which effectively means 'the project with no name' and indicates a lack of foresight).
  The best part was the user interface had 'Copyright Thorn Smith' on the login page which suggests he was demonstrating this prototype to other companies and presenting Acme intellectual property as his own.  I had to take my hat off to Thorn.  Here he was learning cloud technology and writing software, for his own personal gain, in his preferred programming language, and all the time receiving a paycheck from Acme.  Oh, I forgot to mention, he also opted for a new Macbook Pro and iPhone when he started work whereas I asked for a (much more affordable) Windows desktop for maximum productivity (in this Windows-oriented shop) and BYO phone.
  At this point you may think Manager is not doing his job.  I was inclined to think the same however he was a very trusting manager and easily seduced by a flashy demo; exactly what Thorn had expected.  I gather the limits on time and budget restricted Managers choices too.
  After Thorn foisted JavaScript on the team, I was tasked with getting the prototype working on my computer.  To my dismay I found very shoddy coding and more than a little learning and tutorial code debris.  I could never present such poor code to my peers and lost most of my professional respect for Thorn.  In addition to 'going rogue', he had developed the prototype outside the corporate network which meant development could not be continued inside the company.  So I was now lumbered with dealing with corporate networking issues which Thorn conveniently skirted with 'I use a Mac' or, after being issued with an additional Windows PC, claimed to have virus scanning issues and was waiting for IT.
  Next, Thorn set about creating cloud infrastructure for use by the rest of the team and wrote out instructions on how to get the prototype running. As expected from a weak developer, there were no unit tests.  Further, Thorn seemed quite proud that he used a virtual machine (VM) running an IDE (for debugging purposes) and portrayed this as a model for the entire team. (Side note: Writing out code and stepping through it to confirm it works is an archaic way to develop.  Modern development entails writing automated tests that confirm code is working; a technique vitally important when using JavaScript)
  Some rather serious meetings and complaints later we started having bi-weekly design discussions to try and reign in Thorn.  Despite this, he still managed to start a rewrite and drastically simplify the architecture without running the ideas past the rest of the team.  Bear in mind that much of the cloud tech used in the first prototype was discarded without a shred of documentation on how it addressed a technical requirement, or might be used in the future.  Thorn wanted to be the kingpin of architecture and the withholding of knowledge had begun.  Also, the name of the new project, 'acme', has since caused significant confusion and smacks of Thorn's practice of having multiple jobs.
  My protests began to fall on deaf ears as Thorn gained support for JavaScript.  I decided not to cause more friction and implored him to write unit tests which, of course, he agreed to in the meeting but conveniently overlooked in practice.
  If you're having trouble believing this situation I should warn you the story becomes more dire.  See part 3 for more details on Thorn's antics.

Comments

Popular Posts