正文

High-End Consulting

(2008-01-07 11:19:03) 下一個
<>From Dice.com
September 2007
High-End Consulting
By Nizwer Husain

For many years now, I have been independently consulting on software projects and building applications that use complex technologies. All of these programming jobs have required a niche expertise, and all engagements have come about due to a shortage of those skills in the market. The sales pitch for my expertise is the ability to do rapid custom development with extremely complex products that have a high barrier to entry. Lately, majority of the work has been on the Java side integrating SAP's Internet Pricing and Configurator with other web-based vendor products.

During the dot-com days, I was involved with building high traffic portals for start-up companies using NetDynamics studio. Prior to that, all my experience had been building knowledge based applications using KEE, Knowledge Craft, which were implemented in Lisp and employed artificial intelligence techniques.

One of the greatest barriers to becoming such a consultant, is the training required on these highly proprietary systems. While any open source software can be downloaded freely to your own development personal computer, that is not possible with proprietary systems like SAP, NetDynamics, KEE, Knowledge Craft and their like. You need a helping hand from somewhere to gain access to a development system, or you should have been an employee at some time to have had free access and training on these systems. As an independent, you can pay thousands of dollars to attend a training course, but that may or may not get you in the door.

What kind of personality makes a consultant? Dress a little more conservatively than your clients, stay calm, personable, honest and professional at all times. Just remember you are the outside guy. You may never get recognition for a job well done. Hey, it was expected of you at those high consulting rates. You will hear about it if the project went over-budget though. Try to stay out of client company politics. Wasn't that one of the reasons you decided to become an independent consultant? Then there are project managers who juggle your tasks with Microsoft Project. I have sat through long frequent meetings, where the project manager goes around asking everyone for percentage completion against tasks assigned to them. Wish life was that simple, when you are struggling with a bug that is hard to reproduce and cannot tell how long before you can find the fix.

As a high-powered consultant, you are there to get something done in a short time. Not enough time to get set-up in a regular office cubicle. Sometimes just a war room in which all consultants pile into. Rapid software development at high consulting rates is an intense occupation. I remember once a sales person sold my skills to build a custom web-based "trouble ticket" reporting and tracking system for use by their customers and staff engineers. I had less than a week to get this done using NetDynamics. The client insisted that I work on their development platform that was situated in a freezing machine room. With a down jacket and ski cap on, I got the job done in four really long days. All of those overtime hours were not billable unfortunately. A potential user of the system was entrusted the job of making sure all the bugs were out. Instead of working through a series of real life test cases, he smiled and banged on the keys repeatedly, randomly until the system hung (denial of too many service requests perhaps). He had this "I got you" look on his face, and I wondered "man do you drive your car that way too?" but I said nothing and left it to the sales person to explain what was expected of me in the four days of development. You will encounter some unreasonable clients, but fortunately that is rare.

Recently I worked alongside a few inexperienced offshore consultants of a different caliber. Offshoring is now mandated by some large corporations because their billing rates are lower, but companies who hire them may just get what they pay for. In software development, one lousy programmer actually creates a lot of work for everyone else. I have had to silently rewrite a lot of code or leave alone and work around it, because it was too sensitive to expose a wrong hire to the project manager. I once came upon a Java method written by a reputable offshore consulting house that was more than 1500 lines long. Contained lots of repeated "cut and paste" code segments. Such a tall method could only be bungee jumped! More often than not, the code is just unreadable because so many different coding styles have left behind a mishmash, with comments that are not very useful. And maybe it is because the consultant colleagues did not grow up with English as a first language, and cannot describe clearly what it is they are trying to build. During unit testing a popup message once informed me a "fetal error" had just occurred! I have learned to be tolerant and can see the funny side of things.

Extensive travel to client locations is usually required for this kind of job. The systems we work with (e.g. SAP) are legacy systems, requiring highly secure installations with access to them only and available at the client location. The nature of the work is complex, and often involves a high degree of interaction with the client's teams. I have traveled on consulting business to countries in Europe, Asia, and our neighbors in North America. Within the United States, I have worked in more than a dozen states. I enjoy seeing new places, and what better than to have travel and lodging expenses all paid for. Sometimes work takes me to places in severe weather, but I have to go there with the right attitude. In July last year, I was in Dallas braving 100 degree temperatures. By the end of the year, I was trudging through snow in well below zero wind chill north of Milwaukee, Wisconsin at another client's location. Fortunately, I enjoy travel.

At work, I have come to always expect the unexpected. Usually knowing someone in the company that makes the products is a blessing, because I can never know where I will get stuck. The next best alternative is to have a wide network of consultants that I can chat with to help me get unstuck. For example, I was mired in some issue with anti-virus software interfering with the correct installation of the product software version I was installing and there was no online help that told me exactly how to circumvent this problem. Switching off virus checking during installation did not appear to be helping my cause. A fellow consultant advised me to completely uninstall the anti-virus application before attempting to re-install this product software version and that suggestion worked.

How did I get to be a niche software consultant? I wrote my first programs in Fortran in the fall of 1974 and kept drifting towards building more and more complex systems. I had a solid foundation in Artificial Intelligence from doing my Masters in Computer Science. During the years 1981 to 1989, when Artificial Intelligence was hot, rapid development using knowledge engineering environments prepared me for this high pressure occupation. Later came the internet and I got involved with web applications using NetDynamics (Java based). To be a high end consultant demanding top dollar for your consulting rates, you must be eager and willing to work with very complex products.

If you would like to submit an article providing an insider抯 view of your tech or engineering job, please send your article to us at ITtrenches@dice.com.

[ 打印 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.