For the Long Term...
Recently I read Steve's editorial topic, "For the long term". It really got me thinking. In the editorial, Steve talked about Andy's presentation on "Successful Team Management" and how important it is for a manager to manage his people first, and attend to the technical stuff later. As Steve said,
"[T]he technical stuff is for today, for this project, for now. Managing people is helping them in their careers, which will hopefully last decades. Managing people is a challenge, one that I'm not sure I'd like to do again, but if you find yourself in that job, be sure you accept the responsibility for your people. Think about them, take care of them, and be sure you spend the time on them they deserve."
Wow! How true and important that statement is! Unfortunately, my experience is that, at least as far as developers are concerned, fewer and fewer managers are paying any attention to the needs and careers of the people they manage.
I started working as a developer many, many years ago and in that time I have worked for many managers. Some were very good, some were not so good, and quite a few were awful. I don't think being a good manager has much to do with your technical skills or background. If you have technical skills and you are a good manager you are a blessing to all. If you have no technical skills and are a good manager you are still a blessing to all. Bad managers are a curse regardless of their technical skills or background.
I had some good managers in my earlier years and they were a blessing. I also had a few bad managers in my career and they gave me nightmares. But what really bothers me is that I think I see that the number of bad managers has been increasing in recent years. Is this my imagination or has there been a change for the worse? Certainly, if I use Steve's definition of a good manager as one who helps their people in their careers, there has been a change. Here is a summary of my experience with managers over the years.
I worked in a very small company for my first job. I was the 21st employee of that company. My department consisted of my manager, a computer operator, and me. I wrote COBOL programs and used an HP 3000 workstation and an IBM mainframe. My manager taught me a lot of programming. But he was also very tough and did not allow people to make mistakes. I got yelled at every time I made a mistake, no matter if it was big or small.
That was fine so long as I had made a mistake; it made me check my work carefully. But one time one of the production jobs went down and he blamed me. He said that I had done something to the job. Two days later the senior programmer found out it was not my fault and told my manager. My manager apologized to me, but I was too upset and decided to leave the company. I was young and could not get this incident out of my mind. The day I left he gave me a "Precious Moment" doll. It is still on my book shelf. He was a good man and I think he was a good manager even though his management style was tough on a young programmer. He certainly taught me to check my work carefully.
My next job was in the IT department of a big company. My group was responsible for the finance department. I failed accounting in college so this was a challenge. My manager was an accountant, not a developer. He had no programming skills and he wanted it to stay that way. Whenever I had any technical questions, I had to ask the senior programmers. However, my manager tested all my programs and was the best tester I ever had.
My job was writing CICS online programs. When he tested my first program he pressed the escape key and my program blew up. He told me when I wrote any online program that I had to think like a user and not a programmer. A user might do anything. A programmer cannot imagine all the things a user might do with their program but you have to try. I never forgot some of the things he did in his tests. I learned how to test my programs from him. Even though he had no technical skills, he was a good manager; he cared about the company and made sure his people delivered quality products.
My next job was with a software development company that developed software for colleges, such as, college registration and student admission programs. There were a lot of talented programmers in that company. I loved to work with them. I was amazed at how they solved difficult problems. Those people were the ones I called "techies". They touched and tried every new technology. But most of important of all, they did not mind helping others, including me, whenever we had a problem or a question. We could talk, laugh, and learn from each other. Although we did not become very close friends, I trusted them. Some had the opportunities to become managers and some did; but most remained as programmers because they loved the excitement of working with leading-edge technology.
I remember one of my projects. It involved writing COBOL programs and sending information to a Kiosk machine. The company had an Oracle database system. Another co-worker was assigned to write the Oracle queries needed to send the data to the Kiosk machine. But he had a big production problem and could not work on the project. So the company tried to hire an Oracle contractor. There were lots of COBOL programmers available for hiring, but they could not find any Oracle programmers. On the day before my manager took off on vacation, she came over to tell me they would hire a COBOL programmer to take over my work, and that I was now assigned to work on the Oracle part of the project. She gave me a couple of Oracle programs as examples, taught me how to compile and run the program on a UNIX machine and went on vacation for two weeks.
I was stunned! I ran to the bookstore and found any book I could on Oracle and UNIX. By the time my manager came back from vacation I had finished two of the Oracle programs. She told me she had confidence in me and knew I would be able to do it. I thanked her for giving me an opportunity to work in Oracle. From then on I became a database developer writing Oracle Pro C and PL/SQL programs. I also started writing web pages using Oracle PL/SQL when Internet explorer was version 2. And I started building data warehouses using Oracle and Java when the concept was still very new. Our manager encouraged all of us to take on new challenges and to grow in every way we could.
I loved all these challenges. I especially enjoyed working in my group where we all learned these new things together. Even though we did not agree all the time, we shared our knowledge and produced a very fine product. It was a good time, but of course the good times never last long enough.
A new VP who used to be the manager of another department in the company replaced our old VP. Shortly thereafter my entire department was eliminated. My manager became a programmer. The new VP moved each of us to different departments. I do not know why he did this because that department was the best I was ever in. Maybe he did not like our department, or, maybe he was jealous that we did such a good job. It made no sense to me or anyone I talked with. None of us liked the changes and we were angry that our department was eliminated. He also put in some new policies that programmers in other departments were not happy with. Immediately thereafter, resignation letters were flying all over the company, my own among them. Although the end was not pleasant, I learned a lot in this company, both from my manager and the developers I worked with. I was sorry to leave it. The ironic thing was the company got rid of that VP a year later.
I left that company in 2000. The level of management seemed to change rapidly after that. I think I saw more and more bad managers. Maybe the dot-com-bust was taking its toll.
My next job was as a Data Warehouse developer in a Fortune 500 company. I understood when I was hired that the company had gone through some serious changes; they had eliminated some departments that did not make money, and many employees had been laid off. But when I was hired into my department, I was told it was a solid department, and was making good profits for the company. I did not think it was likely to be eliminated.
It was an eye opener for me to work in that department. Few people worked very hard and few cared about the company. People would have meeting after meeting to discuss the same things over and over again and they never came up with a solution. I later learned that the manager of the department was hired because he had a friend working in upper management. He had no experience working as an IT manager and did not have any technical or management skills that I could see. The programmers did not respect or listen to him. Some people paid more attention to fantasy football than working on their job. The company spent lots of money hiring a lot of contractors to do what we could and should have done.
Within a couple of months after I started working there, the company announced that it was going to sell off my entire department as a unit. Everyone in the department was shocked although I don't know why. It ended up that no one wanted to buy it and, within six months, the company closed down the whole department.
How did it get like this? Did the people stop working because they knew management was going to dump them, or, did management decide to dump them because they were not working? I don't know where the managers were during all this. I think it was caused by bad management from top to bottom. Fortunately, I left the company and got a new job before the department closed down. I don't know whether to call my experience with this company the result of bad management, or, no management. Certainly, no one cared about my career.
My next job was with another large Fortune 500 company. Management did not get better. There were serious conflicts between departments. Instead of working together for the company, each department tried to put down the other departments. For example, one department was building a data warehouse. My manager knew that I had worked on data warehouses before so he asked me to build a data warehouse and told me not to tell anyone. I built the data warehouse using SQL Server and DTS. The other department built the data warehouse using SQL server and Ab Initio. My manager wanted to prove to upper management that his department was better than the other department. He showed my work to the vice president, told the vice president that his department could do a much better job than the other department, and could save a lot of money. The manager of the other department found out, was furious, and complained to the vice president. So I had to stop working on the data warehouse project. The project was a duplication of effort, a waste of time, and should not have been started in the first place. I call this bad management at all levels.
There were many other examples in this company. Upper management decided to outsource development work to India in order to save money. They promised there would be no layoffs. However the good employees knew better and started to leave. You could not say anything about the quality of the work of the offshore programmers, even to your manager. If you said something that suggested they did not do things right, the offshore company people said you were a racist and prejudiced against Indians. So you just kept quiet about it and corrected their mistakes. If the project did not go well, the upper management would blame the managers and the US employees even the development work was done by the offshore programmers. The managers in this company only cared about their own careers. They did not care about the company and the people working for them. They did whatever the upper management wanted, and upper management only cared about a nice quarterly earning report.
I simply could not work in that environment and left as soon as I could. I think about the only thing I learned at this company was to keep my mouth shut.
And The Ugly
I went from the frying pan into the fire. My next job was in a medium size company. Unfortunately, professionalism was missing in the department I worked in.
My manager was an SQL Server DBA. His style was to yell at people in front of others. When he made a mistake, he hid it under the carpet. When other people made a mistake, he emailed the whole department.
For example, he wrote a defective procedure to update some production data. When it failed, he did not tell the user he wrote a bad procedure. Instead, he told the user he did not have time to write the procedure and an update with the procedure would be issued in the following week. But it was different when others made mistakes. Once I wrote a script to put my work into production and forgot to 'grant permissions' to the users in the script. After it went in production, the users could naturally not access the database. My manager yelled at me in public and emailed the whole department that my implementation failed because I did not check my work carefully.
I think he liked to try to intimidate people in his department. One of my co-workers and friends got a very bad appraisal. In his appraisal my manager stated that my friend did not do a good job and he could not get along with his fellow co-workers. We all thought he did a very decent job and he got along well with us. We told him so, and we had no problems working with him. He thought my manager was biased against him because he disagreed with the manager a couple times, so he complained to HR about the bad appraisal. Unknown to him, the HR manager was a good friend of my manager. As soon as my friend made the complaint, the two managers came to my friend's office and told him that he was fired because of his bad appraisal.
This manager was probably the worst I ever had. He only thought of himself. He liked to intimidate people on his team. I think I reached managerial bottom in that company.
Needless to say, I did not last long at this company.
What has happened?
I don't think I just ran into a bunch of bad-apple managers in recent years. It is clear to me that fewer managers are "managing for the long term" today than were doing so a few years ago. I know I am not the only one to notice this deterioration in management. I think most developers today have observed the same deterioration in the quality of their management. What has happened here? Are we developers facing a permanent deterioration of our professional environment? I surely hope not.
A lot of people would put the blame on the dot-com-bust and the increasing pressure on IT departments to cut costs. Managers in IT departments have tough jobs, especially now when most companies seem only to worry about how to put out a good earnings report every quarter. If the companies fire people, outsource to other countries, or cut benefits, they can easily cut costs and boost earnings. Is this incompatible with managing for the long term, with as Steve observed, being concerned and responsible for the careers of their employees? Are the duties of the manager to his company at odds with the duty of the manager to his or her employees? I doubt it. Why then is this deterioration taking place?
Maybe there is just too much pressure on the managers today. Maybe they don't have the time or energy left to be concerned with our careers. I knew two managers in my old companies who stepped down to become developers. They said they did not make much more money than the senior developer, but the job was too stressful. At another company, one manager I knew took six months off on short term disability. When he came back, he resigned. At another company I knew a manager who had to take Prozac just to survive his daily work. I think all these people were trying to be good managers, working hard for the company and trying to take care of their employee developers. But the pressure was too great; the corporate culture just did not allow them to do so. This may cause the loss of some good managers, and prevent others who might have been good managers from trying. But at best, that is only part of an answer.
When I think about this question, I keep coming back to the one thing that was different at all the companies I worked for that had good managers. There was trust and respect between the manager and the employees in each of those cases. Where there were bad managers there was no trust and respect. Maybe trust and respect are simply the effects and not the cause of good management, but I don't think so. Wherever the managers trusted and respected me, I trusted and respected them. And when they trusted and respected me they were expressing concern for me and my career in the most positive way. In my view, they were clearly "managing for the long term" in every sense of Andy and Steve's description.
So I don't think that there is any incompatibility between a manager's duty to the company and his or her duty to the employees. I don't think the deterioration in the quality of management that I see is due to the pressures of cost-cutting and meeting earnings projections. I think the deterioration is caused by a deterioration of trust and respect between the managers and the employees they manage. These days, with company downsizing and corporate scandals, people may view trust and respect as impractical values. But they are not. I think they are the foundation of good management and the foundation of "managing for the long term."