I would like to know the ideas that are being used for explaining to the client the limitations of the language used for enhancement of the existing project.

Given a scenario was that the project existed in VC++ 6.0 and the client had asked for enhancement that could include transparency (alpha) component in the color part (currently using gdi).

I found out that gdiplus library supports such feature but could not find it for MSVS 6.0 since its already being outdated (could not even find the msdn files for it) did not have support for gdiplus.

I had to explain it to my client, so created an application in the newer MSVS and included both gdi and gdiplus and drew some objects using both the libraries side by side.

So gave him an idea that the following point could be fixed if we migrate it to the newer version of code. Since client being a developer himself understood it.

But there are cases when the clients are not developers and bearing no knowledge about programming. In such cases it is difficult to explain the problem.

2 Answers 2


Take a step back and think about your requirements:

Given a scenario was that the project existed in VC++ 6.0 and the client had asked for enhancement that could include transparency( alpha) component in the color part(currently using gdi).

See that your tasks were very technical to begin with. You should generally have very technical requirements when the client is also a tech person, e.g. a developer. Like in your case.

In cases when the client is a non-technical person, you'll usually have requirements that go something like: We want the dialog box to have the round loading thingy, rounded corners and look pretty. They will rarely set you any constraints related to which library you should use, and in these cases that is completely your choice and responsibility and no explanations are satisfactory.

There are also rare cases that a very non-technical gives you very technical requirements (rare, but it happens). In these cases you should try talking to them to understand what they want instead of what they say they want and only then suggest a technology which can accomplish the goal in the best way.

Oh, yes. When you are modifying existing codebase and are facing a limitation, then you would have to explain it to your clients, technical or not. In that case, I usually use an analogy. You can't build house first and chimney later or something like that.

  • +1 for taking a step back and think about the requirements. Also, customers many times try to explain you what they think the solution will be, instead of providing the actual problem. Thinking outside the box of what they say is important :)
    – jlemos
    Apr 27, 2012 at 9:04
  • +1. Good analogy for me is that coding is like hiking, in that the trek to get to where you need to go isn't always a straight line. Obstacles tend to get in the way that makes "crossing the river" without a bridge quite possibly a long and arduous journey even if it isn't actually "far" with respect to your current position. Some obstacles are trees, while others are rivers, and others still are entire mountain ranges.
    – Neil
    Apr 27, 2012 at 9:58

Well as you are really not talking about a "language" but an upgrade of your development environment its a no brainer.

"The current version of xxxx does not support the features you want we need to upgrade to the latest version".

I know VC 6.0 for C++ to VS 2010 is a big upgrade but its still just an upgrade.

  • 1
    Speaking from experience, it's not that simple. VS 2010 adds support for Vista and Windows 7 operating systems which may cripple proper usage of libraries written prior to Windows Vista or Windows 7, meaning you'd also have to upgrade the libraries and/or find new ones. It could be quite difficult indeed.
    – Neil
    Apr 27, 2012 at 10:02
  • @James the system files of VS 2010 differ from that of VS 6.0. Also there are some datatype mismatches.
    – Shirish11
    Apr 27, 2012 at 10:10
  • Yeah, but the question was "How do I tell a non-technical user", so none of that means anything to them. An upgrade is still an upgrade even if the versions are largely incompatible and you software supplier has made an unholy mess of the upgrade path. Apr 30, 2012 at 1:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.