Over the last 20 years I have worked for and with professional services companies. Many of these organizations employed brilliant people who had decades of experience in their specialization. Other companies, though, focused on the consulting model of hiring the least experienced people they could hire, then pass them off as experts -- because least experienced means lesser pay and therefore a higher margin.
Some companies specialized in what one of my clients called the IROC approach - hirer Idiots Right Out of College and send them to a crash course in IT, usually just a couple of weeks of training at best. Often the $250 an hour consultant knew less about the technology and business at hand than the full time employees that had researched the topic in their spare time. One of the highest margins a consulting company can make is by hiring 'professionals' from other fields and passing them off as professionals in IT.
Take, for example, this article in SearchCIO.com:
Matt Sorge graduated from MIT in January with a degree in mechanical engineering and a respectable 4.2 (out of a possible 5.0) grade-point average (GPA). When company recruiters descended on the campus in Cambridge, Mass., last fall, Sorge bypassed the big American automobile companies, a common first stop for many MIT mechanical engineers, and spent most of his time talking to Infosys Technologies Ltd., the Indian information services and consulting firm.
"I have very limited background in computer science, but they told me they were looking to hire for potential. I liked that," Sorge said.
Come July, the 23-year-old "military brat" from Lawton, Okla., will head to Infosys' corporate training center in Mysore, India, for an intensive 16-week crash course in software engineering. He's one of 100 students tapped for what Infosys said is its "first major college recruiting effort in the United States." The company plans to recruit a total of 300 students right out of school over the next 12 months.
This does not mean that there are not talented and brilliant mechanical engineers out there working in IT and making their projects a success. Indeed our candidate above is most likely incredibly bright, intelligent, and well-educated in the areas of thermodynamics, strength of materials and engineering ethics. He admits, though, that he has almost no background in computer science and I'd bet he knows nearly nothing about information systems -- except as a user. He will be sent on a crash course in IT topics, then sent off to work on some large information systems projects with little knowledge of relational databases, networking, IT security, reliability, maintainability, and all the other abilities. He will most likely learn from his clients how these things work.
I know some incredibly wonderful IT professionals who have no academic background at all. They have self-studied and trained themselves to an exceptionally high level of competency -- and most of this on their own dime. The issue I have is not with an one individual's credentials - it is with the decreasing competency of organizations as a whole.
People who cross over into IT had to learn on the job. That means that they apprenticed into IT, perhaps learning from others who apprenticed in, etc. That leads to the types of solutions I've come across from experts who entered the IT profession by word-of-mouth training (none of these had any formal education in IT)
- The developer came across a business problem that needed multiple instances of data where only one was allowed by the data model. Did he raise the issue as a missed requirement? No, he just added comma separated values in the column in the database. It worked in development, but failed my minimum level of professional competency test.
- A developer on a system that required encryption for sensitive data designed a solution that put the encryption key in plain text in a file on the root drive of the server. Again, it worked in development, but failed my test for a minimum level of professional competency.
- A developer wrote up a lengthy message to the CIO that the database design was keeping him from meeting the needs of the business. This led to an emergency meeting between the data management and development staff, with the CIO mediating. What design strategy was keeping his application from working? Everytime he went to put data in the database, the database would spit out an error, no matter what he typed. The error messages kept telling him that he needed to create a customer or an item before an order and everyone knows that orders come before customers or items. It turns out that this consultant had never programmed against a database, only "against HTML".
- A senior IT consultant claimed that there were thousands of errors in the data models that he had to correct to get the application working. What types of errors did he correct? The most prominent one was that the Chart of Accounts called for 14 digit accounting codes and his application only needed a couple of hundred, so he changed the Account Code to be 3 digits. And the employee given name field only required 14 characters because he looked in the phone directory and determined that his application only needed that many characters...and there were more "corrections" just like that.
- A senior developer unfamiliar with relational database concepts wrote code that took more than 17 minutes to run, even though all it was doing was starting the application. Very little processing was supposed to be happening. She spent weeks trying to tune the system, but could only shave off processing time by removing all graphics. No peer reviews were allowed because she was a senior developer. A quick peek at her code showed the problem - to check to see whether the database was available to the application, her code was sequentially counting (using GET NEXT RECORD) all the rows in all the tables, then comparing the counts to the number zero. If they were equal, then the database was not available. When the code was fixed to only test the connection, her response was that she was "not a database person and could not be expected to know every nuance of every database on the planet." Her background? She was a Ballet major who had been sent to a 3 week boot camp training session in IT. She was classified as a senior developer because her degree was from a prestigious private college.
We've all made embarrassing mistakes while learning a new technology or approach, but what happens if your entire project is staffed with non-profesisonals? I believe it is fine to staff individuals based on "potential" as described in the article. However, too many organizations staff their entire resource pool with potential, leaving the client organizations responsible for the apprenticing in the experts just so that they can meet the minimum level of professional competency that they should have had before they were set loose on a real project. Again, I know and respect many IT professionals who learned their craft in the school of hard knocks -- but you can't staff an entire project with crash test...er...professionals.
All those companies that have outsourced their most difficult projects roles to "cheaper" resources had better be careful - they might just get what they wished for.
This week I'll be writing about how to ensure that your consulting staff has the right stuff to lead your project to success.