5 Tips to Be a Better Consultant

Working for a client is not an easy thing.  Whether it is related to information systems, finance or operations, just the simple exercise of understanding the needs that a client has is a unique experience and sometimes it can be a task of titanic proportions.

But, that is your job.  Consulting gives you and your client the opportunity to see things from another perspective, taking into consideration aspects and issues you didn’t thought of before. In the end, you are the expert.  It’s you who the client chose to help him solving the problem he’s facing.  It doesn’t matter what he hired you for, what matters is that you are the person best qualified to find the right solution to the problem because, after all, you are the expert.  You are the one who understands the topic better than anyone and you are in a better position than him to make an assessment or recommendation.

So, just doing what the client asked you for is not good enough. You need to make a good analysis of the problem at hand and put the client in the best position possible to make the best decision.  What good are you if you are not advising your client correctly? Aren’t you supposed to be the expert? What’s the point of going into a meeting with a client and not make recommendations?  By not being proactive, you are not creating the necessary value so that the client feels satisfied with your contribution and you are putting a future relationship with your client at jeopardy.

In my experience this are 5 important keys to be a good consultant. As you can see, not all of them are related with your technical capability about a topic. As a consultant, you have to pay attention to other areas that sometimes go unnoticed.

1.  Know your stuff

Obviously you have to know what you are taking about. You are the expert the client chose to address the issue. You don’t only have to know why you recommend option A; you also have to know the reason by which options B, C and D are not appropriate. Remember that besides convincing the project “champion”, there are other crucial people that need to be persuaded too.

2.  Win their trust

There is no better proof that you are doing a good job as consultant that when your client trusts you. A vote of confidence not only earns you “bragging rights”, but also puts you in a better position than other consultants and in occasions above employees of that client. The power that trust gives you will let you be more effective and more assertive when giving your opinion and making recommendations.

3.  Beware of your hygiene and always dress to impress

I shouldn’t have to say this but…you have to pay attention to your hygiene and mostly your breath. Keep mints or chewing gum and use them after lunch or before a meeting. Your clothing is vital and you shouldn’t make assumptions about a specific way to dress. Always maintain conservative business attire, at least until you know your client well. This will earn you initial respect from your client and will make him look at you in a better way. Remember that you dictate the norm and there isn’t a second chance to create a first impression.

4.  Never Say Never

We have to watch the way we say things. One of the worst things you can do as a consultant is going to a meeting and say something can’t be done and end of story. It looks bad and participants don’t take it in a good way.  The way to say that something “can’t be done” is by giving alternatives and explaining why that option is not feasible. To say “can’t be done” puts you on the side of those who don’t want change and see the glass half empty. In engineering we say that: “everything can be done, it’s only a problem of time and money”. Try to always be positive, give options and alternatives.

5. Learn how to write an email

Marc Twain once said: “I didn’t have time to write a short letter, so I wrote a long one instead.” Writing a concise email to a client, in general, takes times because we have to be careful of:

  • how we say what we want;
  • who do we send it to; and
  • what is the purpose.

We have to question ourselves: Is the email well written grammatically and logically? who should receive it and who I should send copy to? What the tone of the email?  Emails have replaced personal contact and, sometimes, people don’t pay attention to the way they write them. You have to make sure that your grammar is perfect because this says a lot about you. We have to make sure that we put the reader in position of understanding what are we talking about. Writing perfectly what we want to say is essential since, if we don’t do it, we are at risk of causing misunderstandings that we will have to explain.  Always remember that it is better to speak directly with the person rather than writing a long and confusing email.

Finally, don’t forget that everything has a balance. The client will place on a balance the cost of a consultant versus the value that you bring to him. It is your job to create enough value for the balance to move in your favor.

Is it Time to Move Your Custom Software Application to the Cloud?

You invested on a custom built software application to improve your business. Now you are running this mission critical application in a local server at your office site. Maybe you have a fancy datacenter or maybe you do not. What you have is a software application that cannot fail. Is your datacenter the right place to host your mission critical software application or is it time to move it to the Cloud? (Note: Not all Cloud vendors are alike please research extensively before choosing your Cloud Provider. At Wovenware we either use Amazon or Microsoft as our preferred Cloud Provider.)

Backup

How often do you backup your server? How about your data? Do you store a backup of your data off premise? A lot of companies large and small do not backup their servers and data following industry best practices. By moving your custom develop software application to the Cloud you can immediately benefit from an underlying backup solution that automatically backups your server and data. Depending on your Cloud service provider and configuration you can have three or more replicas of your server and data created in real time in multiple locations. By doing this you are minimizing the possibility of down time or loss of data in your software application.

Data Growth

Is the server where your custom develop software application is deployed too little or too big for your needs? Did you know that your data in the Cloud can shrink or expand depending on your data needs? You can rest assure that your data in the Cloud can expand to your needs and without any need of installing new hardware or dealing with complicated configurations.

Processing Power

Imagine if you could add or eliminate processing power to your server depending on the load of your application. By moving your software application to the Cloud you are able to configure your processing power needs. You can add more servers to improve the performance of your application in peak periods and you can eliminate servers when usage is low. Thus, ensuring you always have the correct processing power for your software application at all times.

Data Center

Do you like to have a Data Center at your office? Is your data center encased in glass so that everybody that visits the office can look at your cool hardware? If this is the case, then the Cloud is not for you. If you move your software application to the Cloud, you will no longer be able to see the physical sever in your office. Your employees and consultants will not be required to be in your office to fix any application problems. You will no longer have a hardware issue to deal with.

The truth is every custom developed software application is different and requires a detailed analysis to determine if a Cloud deployment makes sense. If you have not started to determine if your custom software application can benefit from a Cloud deployment, what are you waiting for?

Five Tips to Build a Better System Integration Software

In Software Engineering, System Integration “is the process of linking together different software applications, that can be spread across multiple computing system, to act as a coordinated whole”. (Definition found in Wikipedia [http://en.wikipedia.org/wiki/System_integration]). In its most basic form a System Integration is a software program that allows two or more disparate non-intercommunicating systems to communicate. A simple System Integration program is not a complicated task to complete. What is not so simple is designing and building a System Integration program to overcome all those worst case scenarios we encounter every day. Following are five tips to building a better System Integration program that can handle unexpected events.

Certify Messages

Sounds simple enough, but the majority of system integrations I have seen during my career fail to do this simple important initial step. When you first read an incoming message from a System Integration, perform a certification routine on the message. You want to make sure the incoming message is exactly what is expected. Failing to perform this simple step may cause your System Integration to fail unexpectedly.

Retry … Retry … Retry

In real life things fail, so code accordingly. A normal developer codes to handle expected scenarios. A great developer codes to handle unexpected scenarios. The easiest way and least complicated routine to handle unexpected events are to retry your logic when it fails. That is, if your database connection is down, retry connecting before exiting your code. If you fail to obtain a network connection, retry before quitting. Word of advice … retry more than once, in a majority of cases this simple step solves a lot of problems.

If Failing … Alert

Every developer has the tools to know when their code fails (hint: try/catch). So, if your code is failing or behaves unexpectedly alert the administrator or yourself. By taking a proactive approach to system failures, problems can be diagnosed and fixed faster.

Log Everything

Yes, log everything. When a message was received. How the message was processed. What was the outcome of the transaction? Etc. Storage is so cheap and reusable these days that the costs to store log files for a couple of months are minuscule next to the cost of not fixing a bug in a timely manner because there is no sufficient data to find the cause of the bug.

Do Something with the Logs!

Mine your logs.  Logs have so much useful information, transactions processed, processing time, incorrect messages, etc.  Prepare weekly reports from the logs to find out peak processing times, number of incorrect messages, most used processes, etc.  Then, use these data to enhance your System Integrations.

If you implement these five tips in your system integrations you will have developed software that can better handle unexpected events. Additionally, when the system integration fails you will know immediately what happened and will have sufficient data to fix the bug in no time.