The Post-It boy for better management

I’ve been a software developer for over 30 years. In that time, I’ve met some good bosses, I’ve met some bad bosses. This is a story about one of them. My intent is to make this a series, sort of a “Boss-Stream of Consciousness” if you will. I’ll talk about the ones I’ve liked and the ones I’ve loathed and some of the ones in between. Names and places may or may not be changed, depending on the passage of time, my feelings about said boss and frankly, my mood.

Canadian educator Laurence J. Peter defined a management concept called The Peter Principle which basically says “ In a hierarchy every employee tends to rise to his level of incompetence.” This was my boss Raj.

When I came to 4D Enterprises, my orientation told me how Raj single-handedly built all of the software upon which the company was built. I was informed that Raj was not only the author of book on technology that nobody used anymore with reviews lavishing praise like “slapdash” and “some value” but also wrote many articles on a website notorious for blinding its readers. I was pumped!

After showing me to my office and moving the source code from his hard drive to a hastily deployed TFS server, Raj shared with me the cardinal rule of software development. I’m guessing that he considered this the secret of his success and the foundation upon which all good software was written, given the importance he placed on this mission-critical software. That software is…

Bad dev, bad dev! Whatcha gonna do?

I was informed that under no circumstance was I to deviate from StyleCop. StyleCop is Mother, StyleCop is Father. We live for the StyleCop. We die for the StyleCop. I initially doubted his devotion to StyleCop, to my detriment. Making everything conform to StyleCop was my first responsibility. That was his command. So I spent literally weeks conforming every line of code of every package he’d committed to TFS with StyleCop. He even went overseas while I was diligently beating his code into submission. He returned and bestowed on me the the glorious commendation, “You didn’t do anything.”

I’m sure it was my fault. I should have known to do what he wanted in the future rather than what he was telling me in the present. He was the great Raj and I was the pleb. Surely he knew best. Even if he didn’t, he was the boss. But undoubtedly he did. I knew the author of any book that “has some value” could not steer me wrong!

I was then given actual tasks to complete. I would write what was expected making sure to pay homage and obeisance to the many-horned god of StyleCop. I became intimately familiar with the following:

  • SA1600: ElementsMustBeDocumented and all of it’s friends. If it could possibly be documented, I was going to document it!
  • Curly brackets in code are heaven-sent and can never be left out. Ever. Never Ever. Like Taylor Swift getting back with her ex, Never Ever Ever.
  • Blank lines are da debil! You can never have blank lines. See above about Taylor’s ex for more information. It doesn’t matter if it makes it actually readable, blank lines apparently make you have dirty, dirty thoughts or something and must be avoided at all costs.
  • Naming conventions are crucial. And inflexible. And not Hungarian because we said so.
  • Microsoft themselves don’t adhere to many, many of these rules. Good thing I have StyleCop to tell me where Microsoft screwed up when generating the code I need!
  • It’s a good thing that StyleCop is all I had to use, right? Right? Wrong! I also had,

    Code Analysis

    That’s right, Boy and Girls! When my code got the A-OK from StyleCop, Code Analysis had it’s way! Every. Single. Rule. And if they conflicted with StyleCop…well, StyleCop is holy, remember?

    Thanks to this unholy union of StyleCop and Code Analysis, I had to write code that couldn’t use the latest features of C# and/or .Net because rules hadn’t been written for them yet. I tried discussing these with Raj, but was met with a response similar to telling the Pope that Jesus was a girl. It was sacrilege and it was not to be spoken again. I suggested setting “company standards” which was what Microsoft actually suggested. He looked at me like I wanted to create my own programming language. (In retrospect, it would have been faster and I wouldn’t have StyleCop to deal with)

    New Digs

    It was about this time that we “loaded up the truck and moved to Beverly…” or about 2 miles away in this case. As I was the only software engineer in the company who didn’t have a title like “Grand Architect and High Puba” Raj was very excited to tell me about the working space that he’d designed for me and the other 7 developers. You know, that he was going to hire. Someday. In the Future. Even though it had been pretty much him and up to one other for the last 12 years. Furthermore, we had the whole end of the building that would be just ours. And by ours, I mean mine.

    When the time came, you can imagine how eager I was to get away from my stuffy office and it’s annoying door that kept me from enjoying the passing conversations of my coworkers. I mean, who would want and office like this…

    When you can have THIS…

    But at least Raj would be there as well and I could bask in his wisdom. Oh wait. He still got to have an office. I was the only one in this wonderful new space of which he was so proud.

    There will be post-its

    It was then that development really kicked in. There was a workflow that took shape and went something like this. I would complete the task and check it in to TFS when I went home. The next day or the day after we would have the same conversation:

    Me: Why did you change the code after I checked it in? It was working when I left. Was there something I missed or was there a new requirement?
    Raj: You did it wrong.
    Me: It works fine, it passes StyleCop and Code Analysis. It's tight, follows best practices and meets every requirement.
    Raj: That's not how you should do it. You should do it like me.

    As I alluded to above, this was not a single conversation. I’m not exaggerating when I say that he would change my code every single time I checked it in. But he was the boss and I do what I’m told. Even if he pretends that he didn’t tell me later (which is why I kept notes).

    Raj was the boss, as I said. And because he was the “Grand High Puba and Architect” the existence and future of the entire company rested squarely on his shoulders. So let me introduce to you his project management style:

    I’m not exaggerating in the least. There are only 3 differences between the above picture and Raj’s project management.

  • He used nothing but the littlest yellow post-it notes.
  • They were all in very precise rows and columns.
  • There were many, many more notes. They covered a good portion of one wall and also a portion of another.
  • One time when I completed all the tasks I had I went to his office and tried to discuss my frustrations. I told him that I was having difficulty seeing how the parts I’m writing fit into the whole. I said that I would understand things better if I knew the architectural direction and knew what my upcoming tasks were expected to be. Raj said, “If you have a question or want to know something just ask.” I asked if there was a roadmap I could take a look at or some kind of master task list. He said, “Just do the tasks I give you,” and pulled one of the tiny post it notes off the wall, gave me a 2 minute explanation of what I should do and sent me on my way.

    The next 3 or 4 times I needed more work, I sent an email hoping he would just reply back with instructions or hopefully attach some kind of document or email where this was planned. Without fail Raj would reply telling me to come to his office and he would give me another post it and a 2 minute verbal explanation.

    …And I feel fine.

    It was around that time that I started putting out feelers for another job. This wasn’t working for me and the stress was taking its toll.

    I wasn’t terribly surprised when one day at 5:00 I got called into Raj’s office and the owner let me go. There’s was a small attempt to discuss what they felt went wrong but when Raj said, “you didn’t do anything when I went overseas. You didn’t do anything at all. What were you doing?” I just stared at him dumbfounded. I wanted to stand up and scream at him, “I did what you told me to do! I kept notes! So stop saying I didn’t! It’s not my fault that the only notes you keep are the ones that you stick on a wall.” But of course, I didn’t.

    It wouldn’t have done any good to show them my notes, I know that. Businesses will always defend their managers. It’s the way things are. And notes can certainly be forged or just contain false information. I’m not a fighter. I don’t care for conflict and honestly, I don’t want to work for someone who doesn’t want me. Moreover, I don’t want to work for someone who is either dishonest enough to lie or incompetent enough to not even realize what tasks were given or to see your own shortcomings.

    It wasn’t the end of the world as I knew it and I felt fine.


    Getting fired is an undignified process in the best of situations. Incompetent technical people can only make it worse. When I was let go, I naturally needed to take my stuff with me. Since my “desk” was located at the opposite end of the building from the main doors, I parked by one of the side doors that day, like I always did along with Raj. In the time I signed my exit-interview form (I don’t go stomping out usually) and took the first of two boxes to my car, Fuller, the aforementioned incompetent tech, already locked me out of the building. This was 5:05 in the afternoon and there were literally 4 people left in the building. If he was concerned about security, why didn’t he just follow me around and watch me like anyone else would for a terminated employee? And if he was so concerned why did he let me take my stuff unattended so he could lock me out? There was literally nothing preventing me from throwing hardware in a box and walking it out before he’d locked the door.

    So I was forced to bang on the door with my ring for about 4 minutes until he happened to hear me. All the other doors would be locked too so there was no sense in walking around front. Eventually Fuller came and opened the door. I asked him, “Why couldn’t you wait just 2 minutes till I got the rest of my stuff?” he just looked and me and grunted something and gave a half shrug. I expected the next word out of his mouth to be “Hodor” but he just walked off. I got the rest of my stuff (alone) and then walked through the building to my car (again, alone). As I said, incompetent. And this isn’t the only reason why.

    There’s one more little postscript to this story. About 3 weeks later I got a call from the local police department. It was a detective. His tone was oddly sympathetic, sighing a lot as he told me what happened and asked his questions.

    Mr. Estep, I hate to bother you *sigh* but I have to ask you some questions. I apologize. A few nights ago on [date], 4D Enterprises was broken into and some computer equipment was taken. *sigh* And your name was given as a possible suspect.

    I wasn’t sure whether to be shocked, amused or angry. It turns out that I was all 3. I was shocked because one of the things they bragged about when they moved into this mostly empty building was the security system they had put in. They told us it had everything, perimeter sensors, motion detectors and even cameras around the exterior.

    I was amused because I knew Fuller’s inflated opinion of himself. He acted like he was a wizard at hardware and the original BOFH. Simply put, he was arrogant. And if they were blaming me, it meant that the security system didn’t quite work out as advertised.

    I was angry because in my whole life, I’d never had the police accuse me of stealing. And it was an indignity I had to suffer because of (at least) one man’s incompetence. In retrospect, I had to wonder who was watching the watchman?

    I denied even having been in that part of town since I was let go and then I asked the police why 4D Enterprises were trying to blame me and did he look at the security video.

    *sigh* Well, either it wasn’t working or it doesn’t exist. I asked and they just said “there is no video.” I’m sorry to bother you.

    I gave them 60 hours a week and more. I did everything I was asked and received nothing but derision and lies from Raj. Ok, I got paid too. There is that. And I learned what the Peter Principle truly is.

    Some pages turned, some bridges burned, but there were lessons learned

    Something I’ve always tried to do following a job (I do a lot of contracts) is a post-mortem, the same thing you do following business ventures, software projects and death. I like to list out what I’ve learned.

    The good

  • Raj is actually a really great programmer. His ability can actually be intimidating at first because what he knows, he knows well. It makes disagreeing with him something you’re more careful about because you don’t want him coming back demonstrating you’re wrong. He challenged me often and for that I’m grateful.
  • The CEO of 4D is really a great guy. He is genuine and he knows his market and his business very well. He’s built a good company with good people. While he has some obvious flaws (see below) I learned how he treated people can build cohesion and loyalty. He’s one of the most well-liked CEO’s I’ve ever known.
  • The ordeal with StyleCop forced me to think about my programming style and the goals of code analysis in general. I was also exposed heavily to Microsoft UI guidelines, something I didn’t address here but caused similar conflict to the StyleCop farce.

  • The bad

  • Rigidity to certain standards and practices without a rationale behind it is as harmful as no standards at all. It causes conflict in the organization as well as confusion as to what is most important.
  • Open workspaces suck. There’s no ifs, ands or buts. They suck. Collaboration is nice and collaboration is necessary. But you know what is even more necessary? Focus. Programmers need to focus.Why would you put someone in a place with distractions if you don’t want them to be distracted? Distractions come in many forms. Open workspaces actually promote the two biggest kind, aural and visual. I’ll probably blog on that at some other point.
  • I’ll never take a job that has a pay period longer than semi-monthly again. I was paid monthly and it made managing my finances much more difficult. Yes, it requires more discipline. Clearly I don’t have that discipline.
  • I need to consider the cost of benefits before settling on desired salary. Not just the cost of premiums but how much I’ll have to pay out of pocket because your new employer doesn’t have high benefit plans so the people who don’t have children could save money (yes, that was directly stated in a meeting).
  • Don’t claim your company is “like a family” and then put the new guy all by himself at the end of the building where he literally will encounter nobody else and then wonder why he never quite assimilated. After 6 months there were still people who didn’t know who I was other than “the new guy working for Raj”.

  • The ugly

  • I was right to take notes. I need to do a better job of it though.
  • I need to stand up for myself more. I let Raj walk all over me. It would have led to my exit sooner but I should have pushed back harder on what I knew.
  • Some people are just lousy managers. I suspect Raj has never actually managed people and it’s obvious he’s never properly managed a project. He is the Peter Principle personified.
  • The CEO delegates but he doesn’t recognize when someone isn’t suited for a job. It’s one thing to be hands off and let your subordinates manage, but it’s like he doesn’t realize that he has to manage people as well. Just because you call them “Grand Chief Architect and High Lama” doesn’t mean they still don’t need management. Raj had a superior but he didn’t have a boss. I can’t imagine why any CEO would tolerate the tasks and plans for their flagship product to be post-it notes on a wall. What if it was the fire alarm that had failed instead of the burglar alarm? Moreover, what if something happened to Raj and the building in a short period of time? That’s not responsible leadership.
  • Promotions shouldn’t be given as rewards for longevity without regard to suitability. Raj is an unbelievable programmer and probably a great architect too. But the bottom line is he is a lousy manager and a reckless project manager. He should be part of a team, not in charge of it.
  • Project management is a discipline not a side duty or job. Correctly done, it’s time consuming and not something you can do with post-it notes. I already knew that but my time there reinforced it. It’s not simply a skill that you magically acquire because you’ve been in charge of projects before. It blows my mind how many people think that nobody needs training to be an effective project manager.
  • When someone lies to you about something that matters and you can prove it, call them on it.
  • If the person lying to you is your boss, start looking for new work immediately. Like a spouse that cheats, the trust is gone and you don’t want to work for someone dishonest anyway.

  • The names of the company and individuals have been changed in whole, in part or not all. The names aren’t important. They are tangential to the story and to my experience. While the names may or may not be changed, the experiences are real and each and every one happened as I have stated them.

    If you want to figure out who this is, don’t. It’s really not that important. But if you do it anyway and you happen to be one of the people in this story, I don’t want to hear it. I wish you no ill but I’m also not going to debate history. It’s not about you. This blog is my catharsis. It’s putting down in black and white my experiences so I don’t have to think about it anymore.

    The next post in this series will be about a great boss I had a long time ago who taught me a lot about IT and also about office politics.

    No comments:

    Post a Comment