While I Compile

… I compile my thoughts about programming

Outsourcing Dilemma

I just read a post on outsourcing, and think they nailed it when they said “it’s easy to imagine a project turning into a game of telephone”.

I’d love to be able to outsource, but in the dynamic world of software development, the person you outsource to needs to be proactively thinking about all situations, they need context, and be focused on quality. And quite frankly, I think most people you outsource to, will view it as a transaction, where they do the minimum amount of work possible. Then you have to figure out what they didn’t think of and start a new transaction to get it done … this could go on indefinitely.

To be fair, I’m an outsourcing consultant and communication failures between the client and myself are hardly fun and they cost me money. However I do make an extra effort to meet their needs so the project works for them since I see every transaction, not as a one night stand, but as one link in a chain of a long marriage.

Outsourcing as a software developer then turns into a huge specification, review, and testing job, where the communication of the other persons work is more work than actually doing it yourself.

Personally, I’ve come to the conclusion that for now at least, I should turn down work that I can’t personally manage … although I’m still struggling to figure out a way to make this work.

Got any ideas?

March 26, 2009 Posted by | Uncategorized | Leave a comment

How to eliminate analysis paralysis

Over the first decade of my programming career, one trend became very obvious to me. I noticed that I could always increase my efficiency dramatically in the 11th hour before a deadline. It took a long time to see (like a decade), but I finally saw the truth…

I now know:

  1. Without the deadline; I had Analysis Paralysis
  2. Analysis Paralysis is caused by fear
  3. Analysis Paralysis is specifically caused by the fear of making decisions

In the 11th hour before a deadline, I made decisions immediately, where as without the deadline, I’d ponder endlessly. Once I realized this, it was very easy to fix; Get all the information, give myself a time limit (1-5 minutes), make a decision, and start.

This was an incredible productivity boost!

Here’s how I streamlined my own personal development process to ‘get all the information’:

  1. I list all my options for each design decision
  2. I pick the best option(s) based on pros/cons (may be more than one)
  3. I list the risks of the best option(s)
  4. Then for each risk, I design & write a ‘conclusive’ proof of concept
  5. If the proof of concepts prove it will NOT work, then I toss the idea, pick another one & repeat.

A few things to keep in mind:

  1. A ‘Proof Of Concept’ is a minimal app to prove something. (mine are usually 1-6hrs)
  2. If 2 or more options are equal, I give myself a time limit (1-5 minutes) and make a decision … any decision, and don’t look back.
  3. Trust yourself to be able to deal with any problems you hit which were not take into account at design time.

Copyright © John MacIntyre 2009, All rights reserved

WARNING – All source code is written to demonstrate the current concept. It may be unsafe and not exactly optimal.

March 19, 2009 Posted by | Career, Consulting | , , | Leave a comment

Obviously unethical consulting … but why?

A few years ago I did some research into CMS applications and it occurred to me, that an unscrupulous web design company could easily sell a website and deliver nothing more than an installed, free, open source CMS app with a simple custom skin. They could basically; install the CMS app, create, buy, or even steal a skin, then cut & paste the clients copy into it. A fairly sophisticated (aka expensive) site could be launched in one evening, and the client would never even know the difference. Heck, many clients wouldn’t even care if they knew the difference and a carefully worded contract would protect the web design company if the client did care.

It’s easy to speculate that others may be doing this right now, been doing it for years, and some may have even made fortunes doing this.

… wait … what? … fortunes? …

… and with this, my rational mind kicked in and argued that as an ‘Entrepreneur’, isn’t this exactly what I was supposed to be doing? Trying to make as much money as quickly as possible, while minimizing my costs? Isn’t that what business is all about? Isn’t this providing the customer more value faster? Maybe this is the way to go!

Think about it; StarBucks is praised for quadrupling the price of a cup of coffee by adding foam … foam! … Air with a thin milk film separating the $5.00 air from the free air. How is it StarBucks is praised for selling foam, while what I described above is clearly wrong?

To be honest, I had a very tough struggle with this … not IF I should do it, but why is it wrong? I mean you could probably do this ‘legally’, while the ethical question was very difficult to quantify and easy to argue against with simple business logic.

It really comes down to the question; what exactly is unethical about this?

After wrestling with this question for weeks, I finally realized the answer.

As a consultant, there is an implied promise to use ALL my knowledge and skill to advance the clients interests.*

The ethical issue in this specific situation arises when information about an easily implemented solution is withheld from the client. This is the problem … this is why the above scenario would make anybody with a conscience uneasy.

This situation can be made ethical by a disclosure of the advantages of using the particular open source package and what exact you will bring to the arrangement. By selling the installation, customization, and configuration of open source software, not burying the term in the contract while implying a custom solution, and you are being ethical.

You can still make a lot of money doing this and it’s ok to charge a high rate. Charge $50/hr, or $80, or $100, or $150, or $200, or $2000, or more if you want … that’s totally fine, as long as information is not hidden from the client. After all, everybody likes money right? 😉

Now as far as I know, there is nothing illegal about the above scenario, but just because something is legal doesn’t make it moral.

Agree? Disagree? Can you add a clearer distinction? Add a comment.

* With exception to confidential information acquired outside of this client.

Copyright © John MacIntyre 2009, All rights reserved

March 15, 2009 Posted by | Consulting | , | 1 Comment


%d bloggers like this: