Thoughts of a software consultant.
I’ve been working as a software developer consultant for over three years now. A couple of weeks ago after Adam Parrish’s article on consulting, I was looking back and reminiscing, wondering how I’ve changed and if those changes were for the better or worse. I decided to take some time to introspect, assess myself and collect my thoughts. Here are some things I’ve realized and/or experienced over the last few years as a consultant.
Jump right into the job
As a consultant you’re expected to hit the ground running. Time is of the essence and someone wants efficiency, quality and experience all bundled into one package. If you’re spending time experimenting on whether express is better than koa, you’re doing it wrong. You’re brought in to do the job because you already know which one is better.
Thought leadership and direction
A consultant’s input towards making architectural decisions and changes are valued highly. More often than not, you’re expected to lead those decision making processes and provide technical direction for the project. It could be anything from architecting a feature end-to-end to something like suggesting and carrying out a framework upgrade.
In most projects, the role of a consultant in a project is clearly defined. Even when it is not, consultants are held more accountable for the work they do. This actually isn’t a bad thing. Accountability is not only a great source of motivation, but also a good way to ensure that all the stakeholders in the project clearly define what needs to be done. This way everyone is focused and has their work cut out.
It’s always good to keep up good impressions as a consultant. Besides not looking disheveled all the time, there is nothing that goes farther than timeliness in making a good impression. Being in time for meetings and just to work in general is a great characteristic trait to have. This is great for productivity and keeping up momentum in a project, and it also embodies professionalism and conveys that you care about what you’re doing.
Consultants are expected to have objective opinions about the project, whether it’s technical or otherwise. Being objective does not mean caring less about the project. The objectivity not only stems from the consultant being aloof from the client organization’s hierarchy, but also the experience gained from working on a plethora of other projects.
Part of your job as a consultant is also to ensure that you leave something behind that can be maintained. You’re not going to be around on the project forever, which means you have to do a lot of knowledge transfer and sometimes even training at some level. To do this efficiently and thoroughly, you need to have a lot of patience and extra levels of commitment. Having said that, this experience will only add to your growing repertoire of skills.
As you gain more experience as a consultant, the nature of your job ensures that you are exposed to a variety of technologies. Good consultants tend to have a faster learning curve because of this. The diversity in experience is an invaluable addition to any project. It serves to demonstrate that you’ve been around the block and you can handle almost anything that is thrown at you.
I’ve realized that consulting is in many ways more challenging than being an employee. Consultants are usually brought in to provide technical direction and to steady the metaphorical ship. The nature of this work implies that there is likely to be more pressure at times to deliver, and for that reason consulting is not for everyone.
On the other hand, consulting can also be fun in many ways. You get to work on a more diverse set of projects, meet new people and gain varied experience. For example, I’ve already worked in media and finance tech. I can say that I’ve come out from my experiences for the better and I’ve thoroughly enjoyed the challenges laid in front of me over the last few years.