Archive for 'Business of Software'
A while back, I read a blog post on Big Bang Technology’s blog written by Max Cameron titled “Why We Don’t Work Overtime“. I will give a full disclaimer here at the outset, I probably work too many hours, so I have a little bit of skin in this game. Namely, I could be accused of only responding because my work choices were being invalidated by someone else. That certainly isn’t my impetus for this blog. I merely wanted to offer a different perspective to Max Cameron’s blog post.
Cameron is writing from the perspective of a Startup Company. He does make an exception to the overtime rule for the founders, but for his employees he says,
There are no heroes at our office. When the clock strikes five,
the team goes home. If they try to keep working, I tell them that
the game's over and they lost. They either put too much on their
plate, got taken off-task, or were wasting time. None of those
justify working past five, on a holiday, or over a weekend.
I certainly applaud his motiviations. He sticks to this rule even when clients ask for it, when they’d need it to win new business, etc. It is one of his company’s core values and they stick to it. Everyone realizes that when an employee (especially a salaried one) works overtime, he is “doing more than he agreed to” and is “taking away family time” and “upsetting the work/life balance”. However, what I find interesting are some of the reasons that their company takes that choice away from their employees.
One major reason that Cameron cites is that to persuade employees to work overtime, the noble concept of “sacrifice” is invoked. In his mind, soldiers, firefighters, and police officers sacrifice, and to try to align that concept with “expected overtime” is a dangerous habit to get in to.
He points out that the employees who work over are the “heroes” and those who don’t are “losers who let you down”. In his words, “Yearly reviews just got a whole lot easier”. Later he says, “How could I promote a loser when they’re surrounded by winners?”.
I want to deal with that point first. He is obviously being rhetorical and a little sarcastic with those last quotes, arguing his point to ad absurdum. However, I think there is a point to be investigated there. My current boss has taught me a lot about managing people and the value of making “the hard decision”. It sounds to me like Cameron is welching a little bit on managing employees. Sometimes, you have to make the hard choices. As my boss likes to say, “Who do we pay to do the hard stuff?”.
Imagine on one hand that you have an employee who works only 40 hours and is very productive, gets along well with others, is a leader, and so on. Now, imagine you have another employee who works a ton of overtime, but you know that it is because he isn’t very efficient. He has a good work ethic and to make up for his lack of efficiency (and “social time” during work hours), he tries to even it out with that overtime. Now, if you are a manager who can’t promote Mr. Productive Forty and explain to Mr. Compensating why he didn’t get the job, you aren’t much of a manager and should rethink your career path.
Let’s pretend there is another scenerio. This time, you have two very equal employees. One of them is a “5:01 Developer” (gone by 5:01 every day) and the other works over to make sure things get done on time, or to add special features off of the “nice to have” list that never gets prioritized ahead of “big projects”. In that case – all else being equal – why wouldn’t you promote the overtime guy?
These kinds of decisions are why you are the person writing the reviews.
A point that Cameron makes alongside this one is the concept of burnout. This is definitely a very real problem. However, I feel that he’s again arguing to take the “copout” path. He seems to be claiming that it is impossible or would require too much work to monitor and make sure that his employees aren’t burning out. There is a big difference between running a guy at 80+ hours a week for months at a time, working 1 or 2 60-70+ hour weeks before huge release, and regulary working 50 hours a week because that’s what you are comfortable working.
As I admitted earlier, I definitely work overtime. I am soon taking my first vacation week in years (only because the company stopped paying out for unused time – I have to “use it or lose it” and I’m too practical for that ). However, I’ve been going at this pace for about five years straight now, across 2 companies. I’m not close to burnout. You can’t manage people homogeneously, you have to manage to the individual. I’m more of a sports car, not a minivan, there is no danger of running the engine at a little bit higher speeds.
I’m not bragging. My point is that I’m different than other people and a team needs all kinds of people on it. The Apostle Paul actually writes to this point quite eloquently in the Bible in 1 Corinthians 12:14-21:
Even so the body is not made up of one part but of many.
Now if the foot should say, "Because I am not a hand,
I do not belong to the body," it would not for that reason
stop being part of the body. And if the ear should say,
"Because I am not an eye, I do not belong to the body," it
would not for that reason stop being part of the body.
If the whole body were an eye, where would the sense of hearing be?
If the whole body were an ear, where would the sense of smell be?
But in fact God has placed the parts in the body, every one of
them, just as he wanted them to be. If they were all one part,
where would the body be? As it is, there are many parts, but one body.
The eye cannot say to the hand, "I don't need you!" And the head
cannot say to the feet, "I don't need you!"
There are things I do well and things that I don’t do well, and I realize that I don’t always see them clearly. The way that that is remedied is that my team is made up of all sorts of people. The person building the team knows what he has, and fills the gaps appropriately. The fact that I can easily work 50 hours a week or more without burning out is just a tool that my company has at its disposal, just as all of the other skills of employees are at their disposal.
One point that I just could not grasp in Cameron’s blog post was the fact that he is willing to let his clients down because of this overtime policy. Even if the work completed because of overtime would win their clients more business or help solve a serious problem that they are having, overtime is still off limits.
I see nothing wrong with working over to win new business, for you or for one of your clients. Your client has likely worked with others who cannot deliver these things and you make yourself indispensible to him as someone who can deliver them. But again, there is the potential for abuse, but that relies on your client service managers or account representitives to “do the hard stuff” of recognizing and stopping abuse before it gets anywhere.
As I was discussing this topic with a good friend of mine, he pointed out to me that one problem he had with overtime was that it “excused” or “covered up” poor planning. For instance, if a project was projected to have 15 features and be delivered in 2 months, but was estimated poorly, that can be a problem. Proper Agile philosophy is to have the business either extend the date based on the metrics from the iterations, or cut features. Another approach is for it to still spend the hours, but spend them in 60, 70, or 80 hour weeks to meet the deadline. That’s a “death march” and no one really wants that.
However, sometimes it is politically expedient to deliver the project by working the overtime. Not everyone works at a company that can afford to turn down external clients or at a consultancy that can easily refuse work. A good deal of software development is done as part of an “in-house” shop that develops software for “an enterprise”. There are 100 ways that you can curry favor by seemingly doing the impossible and those who don’t see the value in that don’t have a very mature view of the “real world”.
However, the issue then comes if you don’t learn a lesson about your estimating and back yourself into those kinds of corners on project after project. Again, I fall back on “Who do we get to do the hard stuff?” If your Project Managers can’t control these projects from the outset, you probably have the wrong people in there.
This has definitely been one of my longer rants and I know that a lot of people will disagree with me. Feel free to leave a comment below, or blog your own responses. If you do a reaction blog, please link it in the comments so that I can read the discourse and the other readers may benefit, as well.
I got the paperback version of Contented Cows Give Better Milk 8 or 9 years ago when I was working for a large financial institution. It was popular at the time to buy these by the crate and give them to anyone who was responsible for people. So, I did like any responsible employee… and finally got around to reading it this week. Better late than never, right? I want to warn you that this post is going to run a little long because I’m going to include several quotes from the book after I share some general thoughts and before I conclude.
I’m not much of a “business book” guy. In my experience, too often these books are “educationally low fat” and more about stuff that just about everyone already knows. Even this book draws some conclusions that I had already reached, however I know that I’ve worked for many employers that still don’t “get it”. In my opinion, this books deserves the reputation it gained and I think if more employers followed its guidelines, the average worker would be considerably better off. It covers topics like employee hiring and retention, productivity, corporate reputation, and enabling employees to do something great. Let me let the authors speak for themselves. (My thoughts or interjections are in bold italic)
â€œContrary to popular belief, there really is an ample supply of conscientious, hardworking, capable, honest people.â€Â â€œYou can (and must) find others like them.Â You’ve got to expend a little effort doing it because ‘eagles don’t flock,’ but they are out there.â€ – p.37
(I love this quote, especially the notion that “eagles don’t flock”)
â€œWe have an earnings problem, so we’re going to work out way out of it by ‘dumbing down’ the organization with less skilled, less competent people! Now the only problem will be to find dumb customers to purchase our goods and services and even dumber investors to buy our stock!â€ – p.154
In talking about an organization’s fading training program for air traffic controllers…
â€œAt some point this practice was amended in favor of a train-to-proficiency approach, and the end result is now that nobody ever gets sent home or, as our friend Alex Nicholas calls it, de-selected.Â Instead, you wind up with a situation where people who would have washed out under the old system are still in training and on the job years later, and every day must have their work carefully overseen by an experienced controller.Â A competent employee ends up babysitting an inept one, making them both, at best, marginally productive; and both are making the same money!â€ – pp. 160-161
How many of you have l i v e d this?
â€œWhy is it that no one ever ‘flunks’ a corporate training program?â€ – p.165
On Corporate Policies
“If you believe that most people who come to work for you are lazy, stupid, untrustworthy, inept, and just downright contrary, that assumption can’t help but show up in the way you run your business.Â You’ll have all kinds of rules and regulations designed for numbskulls who couldn’t pour milk out of a boot with the directions printed on the heel.Â You’ll no doubt have a supervisor for every six or seven folks, and will inevitably attract just the kind of people who will live down to your assumptions.” – p.35
Talking about how companies make mistakes and how policies can ruin a company:
â€œWe do it through policies that are just plain dumb; systems that treat intelligent people like they’re complete morons; and cultures which ensue that no mistake goes unpunished.â€ – p.168
â€œIn their private lives outside of work, your employees are heads of families, civic leaders, army reserve officers, mortgage holders, and a host of other things.Â Day in and day out they somehow manage to feed themselves and their families, pay their bills on time, stay out of jail, and behave normally by most reasonable standards.Â In short, they tend to be rather competent individuals with a clear picture of the difference between right and wrong.Â Why then, when at work, must they face a continual barrage of not-so-subtle signs of our mistrust in them as individuals?â€ – p.183
â€œIf you’re unwilling to give credence to the employer/employee covenant by taking this important step, then by all means save your time, money, and breath.Â Go out and hire dummies whenever your company has a job vacancy, pay them as little as possible, and don’t even think about training them–just hire a supervisor to stand guard over every two to three people.â€ – p.192
Wow… I know some places where this is basically the policy!
â€œThere was no correlation between the reviews and terminations.â€Â Only three out of 986 people let go for poor performance received poor ratings on their prior review.Â â€œIncredibly, roughly two-thirds of these same people had also received merit increases in the six months preceding their termination!â€ – p.101Â
“Organizations which don’t measure up tend to be viewed as an employer of last resort; nobody with any brains, ability, or motivation wants to work there!Â When this occurs, only two things can happen.Â Either the organization is forced to pay market-premium wages and salaries in an attempt to secure better applicants, or it must accept the lower quality applicants, or do both” – p. 25
“We submit that inordinately high wages, salaries, and unwarranted benefits not only aren’t the answer, they are often a large part of the problem.Â Moreover, they are often used as a counter-balance or way of compensating for serious deficiencies elsewhere in the organization.” – p.93
Certainly not every developer is going to have an opportunity during their career to define many of these policies at their organization. However, with that said, we should not also have our heads in the sand when it comes to business. We should also remember that a strong majority of us are not paid to make software for software’s sake. We are paid to solve a business problem. These principles can help us find good solid companies to work for as well as making sure that we do our part to make the company great while we are there via the software that we write.
“They” say that you should under-promise and over-deliver. That seems to make good sense, doesn’t it? Why argue with conventional wisdom here? You set the client’s expectations really low and then you “WOW” them. How does that *NOT* make you look like a superhero?
The problem actually sets itself up several ways. First of all, it is extremely hard for your clients to manage their projects that way. If you set a time line of 3 weeks to finish 3 features and the client needs 10 features done in total, budgets are set to that effect and plans are made (including testing plans, marketing, etc) with the expectation that this project will take 10 weeks to finish development at this pace.
However, since you are an “over-deliverer”, you actually get 6 features done in those 3 weeks and the last 4 features done in another week and a half. So now we are less than halfway to the deadline and all the features are done and you even throw in “extra” features that had been cut due to your original estimates. What we are left with is a client with a finished product that they aren’t properly ready to market (remember those extra features?) and a TON of lag until launch day.
Let’s pretend that our situation isn’t even that dire. We can imagine that we had a simple project to do and we decide that we can do it in 3 days, but we pad our estimate to a full week since we love to under-promise. The truth is that we could really do it in 2 days and we do just that. We spend day number three testing the heck out of the thing and hand it over to the client. Their initial reaction might be that they are really surprised and happy.
That happiness might not be too long for this world, though. Your client might notice a pattern when working with you and decides to start pressing you for shorter estimates under the guise of urgency, but really it is because he doesn’t trust you any longer. You are either a terrible estimator, you cut a lot of corners, or you are a liar. Now when you really do need more time for something that is more complex than anticipated, the client fears that you are sandbagging and might make you commit to a deadline that you can’t make, further eroding that trust.
You can just avoid all of that hassle. Become familiar with your own throughput and velocity. Learn what you can and can’t do. Give up being a “superhero” (I know that one is hard, it is my Achillesâ€™ heel). Learn the skill of Software Estimation and give good estimates and then… Back. Them. Up!
Occasionally, you will over-deliver and that is okay. Those are examples of when you have truly gone above and beyond. However, remember that you are far more valuable to your clients as someone who promises and delivers with such regularity that it is almost boring. You will be a superhero in comparison to others who are not as dedicated to the craft.
Last time, I talked about Management vs Leadership. Management seems to be a specific position in an organizational chart which demands a very special set of skills that not all people – even leaders – possess. We want our managers to be leaders, but at the same time people lead from a myriad of positions and by definition, you can’t be a leader if no one is following you.
Many different corporate initiatives and self-help guides encourage everyone to be a leader. However, if that goal is reached and everyone is a leader… who is following? I think there are two distinct answers to this conundrum. The first is that some people aren’t really cut out to be leaders. I have a friend named Mark who does not like to be in charge. He doesn’t like to lead anything. He is (by his own admission and definition) a worker bee. He likes to quote the problem of having “too many cooks in the kitchen” to say that not everyone should be in charge and some people need to be followers. I agree with this wholeheartedly.
It could be that the follower’s giftings and personal desires lead them to serve others and follow a direction outside of the spotlight. It could also be that this person is a leader-in-training who will someday lead others, but for a season this individual needs to sit at the feet of the master and learn the trade. Applying this to software, this future leader could be following in the steps and instruction of the mentor, modeling out what I described in this blog post.
There is another possibility for who will make up this group of followers. It could be that a leader is leading a group of leaders. This isn’t such a foreign concept. The president is Commander-in-Chief over his Generals who are over other officers who are over other officers on down the row. Even in our industry, we have maybe an Architect who leads the design of a system, a Team Lead who leads the implementation of that design, a Senior Developer who guides and shepherds Junior Developers. It is even possible that that group of Junior Devs might contain an individual whom the others look to for leadership. Maybe any one of these individuals is strictly a follower at work, but they are leaders on an open source project or in the community at large.
I believe that it all comes down to knowing when to lead. A great philosopher once told us to “Know Your Role” and I think that is particularly appropriate here. A great leader will always be looking for opportunities to lead, but if someone else has “got this”, then they can and should allow themselves to be led. There is always an opportunity to learn something from another leader, even if some of those lessons are what *not* to do.
Do not look down on following – it doesn’t make you a weaker person, it makes you a useful one. I’m not talking about “just following orders”, I’m talking about willfully giving yourself in service to a task, a cause, or another individual. Often, people want to confuse followers with something like what happened in Jonestown, and make “follow” a dirty word. Nothing could be further from the truth. Egos aside, by allowing themselves to be led, followers are the ones that get things done.
If you are someone who always has to lead, take it as an experiment to find a capable leader and allow yourself to be led. Learn from that leader’s style. Concern yourself with accomplishing your specific goals and not directing the greater vision – there is great freedom in that. You may even find that you are even more well-suited to this behavior. Even if you don’t, it will certainly improve your leadership skills and make you a more well-rounded person.
This is a topic that has come up several times in my life. I have a Type-A personality and I like to excel and I like to be a leader. The problem is that a few times in my career that has landed me in a management position.
I have actually been slightly surprised to find that so much has already been written on this topic. Not because I thought that I had some original idea, it was that I was actually surprised that I didn’t know any of this literature existed until I actively went looking for it. More people in business need to understand this distinction between a manager and a leader.
My definition of “Management Position” means that some portion of the job is to write reviews, handle HR issues, balance departmental budgets, alot raises, and answer to someone about the productivity of your charges individually and your department as a whole.
Good managers who do all of this well are hard to find. Unfortunately, too many management positions are manned by people who were the best at whatever their department was responsible for doing. Often, the individual only took the job because it was the only decent way to get a raise and not because they had a passion to improve things through administration.
This is extremely unfortunate. What this company has just done is remove the person who is likely their most productive individual and put them in a position (VERY LIKELY without proper training) that Peter Principle’s them.
As I alluded to earlier, I am not speaking from the sidelines, but as one who was in the game. I wanted to make more money and I like to be a leader, so when a position opened up to be a supervisor at a place where I used to work, I leapt at it. I was one of the most (if not the most) productive worker in the building and one who didn’t shy away from doing what was right so I got the job.
That began my problems. My manager was removed from his position shortly afterward and I was named interim manager – a position that lasted for three months. My style of management was to “get in there and do the work”. If someone was falling behind, I didn’t coach them up… I bailed them out. If we had a big work day ahead, I came in early and got things started and prepared (or even done) for everyone else instead of trying to plan a schedule for others to help. That may sound great or heroic, but the problem was that a) I wasn’t doing anyone any favors and b) Pete don’t scale. This worked for one building and 20 employees, but if our workload or staff increased, I couldn’t bail everyone out at once. If someone quit one of the “higher responsibility” positions below me, no one had been trained up to replace them. I was blowing it, but I had no idea.
Fortunately, I did not get the permanent management position. They were prepared to give it to me, but another manager from Dallas, TX was looking to transfer and company policy gave him first dibs at the job. They apologized to me and thanked me for my efforts being both manager and supervisor for three months. The truth is that they did me a huge favor. The man who came in was a M A N A G E R.
He knew how to delegate. He knew how to schedule. He knew how to train. He knew how to discipline. The man was skilled at his craft and I began to see how I had been failing. I learned a lot about the right way to be a manager. At the same time, it also made me see that I didn’t want to be a manager though I liked being a leader.
I love setting an example. I love sharing my knowledge with others and setting a precedent, but I don’t like disciplining them if they fail to learn or improve. I love performing technical interviews for positions and giving input for hiring decisions, but I hate negotiating salary, benefits, and schedules. I love when things get busy and that means that I can be super productive while attending less meetings (that my manager has to attend in my stead). I don’t like playing politics to get my department what it needs, I like to occasionally rely on the fact that it is easier to ask forgiveness than permission. I definitely don’t like to play the game where you have to make other managers of other departments or divisions feel like they were involved in the decision so they can feel useful. I’d much rather hear the facts, decide the course, and take my troops into battle.
It seems that I have a very definite idea of what a manager does and I’ve now written much more about that portion than I had originally intended, but it feels good to get it out. What is unique about a manager is that you can (or should) only have one per spot and they can only exist in certain conditions. However, a leader can exist anywhere in your organization. You can have a leader in the receptionist’s chair, the custodial team, the accounting division, or in your auditing department. He (gender neutral from here on out) can be a software architect, a lead developer, junior developer, business analyst, or QA guy. I’m not even creating a dichotomy that says that managers can’t be leaders, too. You can have managers and executives that are leaders, too (in fact, I *pray* that you do!).
What matters is that he has a vision, acts on it and causes others to follow him to act on that vision. In finding other literature on this topic, I came across these two quotes which best sum up what I’ve been trying to say:
“The managerâ€™s job is to plan, organize and coordinate. The leaderâ€™s job is to inspire and motivate.” (WSJ)
“Managers have subordinates. Leaders have followers.” (Changing Minds)
I hope that this is some food for thought for other Type-A’s out there as to maybe how you can best use your energies depending on what portions of the above got you excited. Not everyone can be *the* leader though, and I will be writing very soon about the importance of learning how to follow.