How do you handle a developer that doesn't play by the rules?

Software development teams are fickle groups. It seems everyone has their own pet peeves that set them off, and a group that is cohesive and functioning well can quickly turn into one that shows little output for the time spent working.

In order to create and nurture a software development team takes leadership that understands all of the idiosyncrasies of their team members, and ensure that no one member derails the rest of the team. While some may use this as a way to discriminate against entire groups of people, if done properly, should only be utilized to maintain harmony after all hiring and performance decisions have been made.

For example, a team may have established that unless otherwise arranged with management, all developers should be present for the daily scrum at 9:00 AM and are expected to work 40 hours per work week even though they are salaried exempt employees. Lets say that all of the team members except for Joe show up around 8:30 AM, take a 1 hour lunch, and leave between 5:30 PM and 6:00 PM. Joe regularly shows up at 9:35 AM, takes a 1 hour lunch, and leaves around 4:00 PM daily.

In this scenario, the organization’s leadership has to determine whether Joe’s work habits are causing issues within the development team or not. For some teams, if Joe is producing as much output or more than the other members of the team while working fewer hours, it is understood that Joe is so good that he gets a bit of a pass on some rules.

However, if Joe is not the superstar performer, the question gets tricker. Many times it seems that this pattern erodes the morale of the other developers on the team that put in more effort than Joe and produce better results than Joe. When the morale of the team begins to decline, organization leadership has to determine whether to attempt to correct Joe’s habits or to attempt to replace Joe with another developer that is willing to adhere to the 9:00 AM start time and 40 hour work week that the organization has determined is the way they will conduct business.

Once you get to that first decision point and decide to attempt to work with Joe to adjust his behavior to adhere to the rules of the organization, the waiting begins. Over the next several work days afterwards, everyone on the team pays special attention to Joe’s behaviors to see whether or not he shows up on time and stays later into the day. If he never makes a change, then it should be obvious it is time for Joe to move to an organization that better accommodates his normal work schedule. However, if Joe adjusts his behaviors slightly for a while, and then relapses for a period of time, you are back to the decision point again.

At this point, it has already been determined that Joe’s behavior has negatively impacted the work output of the rest of the team, and Joe is not a superstar performer that is able to make up for the work output deficiency. This is the time to ask yourself how many times you are willing to go through this cycle with Joe before enough is enough. Will it be 1 time, 3, or 5? What precedent does this set with the rest of your development team, and when they see your reaction to Joe, will they start taking the same liberties with the rules that Joe did, since he has repeatedly failed to adhere to the organization’s rules, but still has a place on the team? Do you decide that Joe’s way of working is actually better and decide to change the rules so that Joe’s way is the standard?

How do you want to handle things when members of your team challenge the rules? Adhere to the rules, or change the rules?

comments powered by Disqus

Related Posts

JavaScript Can Have An Interesting Interpretation of Order

There is an interesting little quirk with the way in which JavaScript decides which function it should execute next. You see, while the JavaScript engine has a single thread of execution, it creates the illusion of multiple simultaneous processes running at once by utilizing a queue of functions to execute. This means that every time you make a call to a function in your JavaScript, there is no absolute guarantee that it will be the next piece of code run, as there may have been other events triggered that beat your custom function onto the execution queue.

Read More

Never Explicitly Trust Software Because It Is Open-Source

One of the major ideas behind open source projects is that allowing anyone that wants to view the source code of a project to be able to do so should make bugs and security weaknesses easy to find. While this did not work so well with OpenSSL and its various bugs that have been exposed recently, I do have an example where it worked extremely well. Magento is an eCommerce platform that has two separate editions.

Read More

Avoid 'Persistent storage maximum size reached' in Firefox

One of the nice tools out there for tracking down issues that your website’s visitors are having is TrackJS. We started noticing the other day that we were getting overwhelmed by errors with the text Persistent storage maximum size reached for our Magento site. When we looked further into the issue, it quickly became obvious that all of the errors originated from a single user that was running Firefox. It quickly became obvious that there was a single user that had exhausted their localStorage resources on their browser, but why was it only one user?

Read More