I have just finished a project with a client, a major industrial company. It was a situation where you might say that I "fired" the client. The reason I essentially fired the client is because of the nature of the working environment and the politics of the situation. I know, you might say that these are common reasons for consultants to end a project. I think it's worth highlighting how internal politics and a lousy environment can be killer to software projects.
I am (still) a VB6/SQL Server programmer/consultant. This was a client where I worked on two such projects, and I might have had the chance to build more of them if things had worked out. The first problem was the IT department. I mean, not just the place, but the people. This was an industrial plant where I was working, after all, and it was not the swankiest in terms of offices and facility. I was on the factory floor many times, to install software, to check out a situation where the application appeared to be acting up, and to show people how to use the system. Back in the IT department office, I had a desk and a workstation... and an old strip printer on the other side of the divider, and the IT manager's office on the other side of that, and people coming and going all the time, needing help with their computer/printer/mobile phone/whatever. I am someone who does best in a quiet working environment, and it doesn't help when you have one noisy b*tch who can't keep her mouth shut or have any concept of what it means to talk quietly to other people. The last straw was the installation of a printer that they use to print inventory tags, in the same area as the strip printer-- that is to say, on the other side of the divider from my desk. The printer was very noisy, if efficient. Needless to say, it was a big obstacle to getting things done.
Then there's the political aspect of things. When an organization develops a software project, it is best that everyone in the organization involved with the design, creation, and deployment of a software system is on the same page. Often times, this requires a decision by someone high enough in authority in the organization to make the decision of which way they will go. In the projects I just concluded, this central direction and commitment to the project were conspicuously absent. At this company, apparently people in the various departments have budgets of their own that they can use to hire consultants to create software applications. At the facility where I was at, there were database and application servers that were available to the various departments. The only thing that the IT department would get involved with is maintaining the servers and making sure they didn't go down. They didn't want to support applications they didn't write and didn't "own". If a department had an application that it had created, they were on their own. The only time the IT department would mind is if something borked the server or interfered with the plant floor production. On the other side of the coin, they either had no authority or inclination to stop the other departments from creating these applications and databases.
IT is looking forward to when Oracle is installed at the plant, and has support in place from Oracle or third-party consultants. At other locations in this company, Oracle has been installed and is the basis for applications that have been written, or are about to be written. The apps at the other plants are essentially the equivalent of the applications I have been working with, except that it seems that they have taken a lot more time and money to create. Nonetheless, IT seems willing to wait for when Oracle is rolled out at the plant, whereas out in the provinces of manufacturing, materials, quality, and finance, they are not willing to wait. Out in the "provinces", they are tired of having to rely on the mainframe system that handles production, inventory and other phases of the business. This mainframe system is 20 years old, and seems to work well in most respects. However, it doesn't have a graphical interface, and it doesn't lend itself to extensibility. They are anxious to have systems that will make them more productive, are easier to use, and utilize email and spreadsheets to do reports. In other words, they want to at least move into the 1990's.
When I was at the client, I saw the viewpoints of both the line and staff and IT. I understand where both are coming from, and both have legitimate viewpoints. What is the missing ingredient here? Leadership. Vision. Someone who is high enough in the company needs to step up and make a decision of how things will be done. If the line and staff people see money being left on the table because they don't have applications NOW, they need to prevail on top management to give them the resources to get things done. And I don't mean one programmer in the IT department in the plant. I mean real IT consultants who have developers writing applications. If IT feels that it has to get a handle on what is going on at the plants, then it needs to ask for the authority to have control over the infrastructure so that departments can't just do their own thing.
Comments