10 reasons not to contract me

October 4, 2007 – 20:36

Several days ago I was told that my “5 reasons to contract” me are plain self-advertisement and even test ethical limits. Today, after (yet another) talk full of misunderstandings, I’ve decided to defend the opposite thesis.

Here you have 10 reasons not to contract me or to partner with me:

  1. I don’t understand your personal defaults. If you expect something from me, I expect to hear this explicitly and be stated in written.
  2. I’m quite opinionated – my experience cost me my blood, heart and money. So I expect you’re going to do business with me for my experience, not for my obedience.
  3. Don’t tell me what I have to do. Tell instead what you want to achieve. If we’re partnered, also mention how it fits our common goal and why I should be interested in doing that now. If you contract me, this also would be useful, but since you’re paying your money, you get what you pay for.
  4. If I see you doing or asking for a wrong thing I warn and start asking questions. If you contract me and insist on doing things I consider wrong, you get what you’re paying for. If it breaks, you keep two pieces and get my paid assistance to fix it. If we partner, I simply won’t do wrong things no matter how you ask or insist.
  5. I don’t give estimations. Usually. If I trust you (see below), I may mention some numbers. Don’t hold your breath, software estimation is black magic, and more personal development process gets, more black color should be expected. Usual best expected date is “when it will be ready”. And if I’m interested (I don’t take dull projects) and it’s possible and it’s not a moving target, this will be quite soon.
  6. I put lot of emphasis on personal relationships. I usually start with trust. In this “mode” I’ll happily give you my personal crude estimations and expectations of what and how something would be done. But as soon as I’ll feel you misuse this information, e.g. start treating it as commitments, you lose my trust and this information becomes closed.
  7. You’re still reading? Huh!? :) Then deadlines. I perfectly understand that “real world has deadlines”. Unfortunately, quite frequently deadlines are arbitrary (from software development point of view) and unreasonable. Just explain your deadline goals and let’s discuss how they could be achieved. If any of factors in the equation changes (scope, deadlines, budget, quality requirements), let’s discuss stuff again, since we now have completely new goals. Regarding deadlines, the proposed solution is simple: put your money where your mouth is. That’s put fines into the contract for missing specific dates, be ready that I’ll decide to pay that fines instead of meeting the date and let’s work together to deliver month earlier.
  8. I prefer to model software product development as a financial investment:
    • we have some capital initially (ideas, people, money, market, users)
    • we work on increasing the value we’ve got by providing things users need
    • we buy options to decrease our risk: make tests, get product to (selected) users early, iterate frequently, fail sometimes and learn from product failures
    Since software development if much riskier than any financial market investment, not buying options is foolish. So, if you decide not to do that – this falls under “bad things” (4) above: be prepared to kiss your money and time goodbye.
  9. Just few days ago we’ve got our first baby and thus won’t:
    • relocate,
    • travel,
    • talk to you for hours (which anyway is a bad idea) or,
    • work hours you consider reasonable.
  10. I live and work in Ukraine that you know nothing about. Why bother?
Afraid? Something bothers you? Drop me a comment and let’s talk. Or just look for a different developer.

Yet reading. Time to know what you get in exchange:

  • 15 years of software development for money (and at least several more years out of legal age)
  • scientific, commercial, offshore and startup experience
  • from system programming through GUI to web development
  • from bottoms of unit-testing with 100% coverage to integration testing of whole system image
  • strong virtualization experience
  • from Fortran to C++ to Python, from plain text files through berkeley db to complex installations of mysql and postgresql
And know what? I now got the contract. You might consider this bonus 11th reason, unless you’re not considering your project interesting.

  • LongMan

    Hi, Andrey :)

    I read this article and found 1 mistake :) I think in 7′th reason you wanted to say “real world has deadlines”, not “real word has deadlines”. It is not BIG mistake, but i know you dont want it to be here :)

    Thank you for your article. It is very interesting :)

    Your Russian reader :)

  • Andrey Khavryuchenko

    Thanks, fixed.

  • http://www.mixin.com frederic sidler

    that’s why I don’t contact you ;-) great post, thank you definitely the things I should tell explicitely to my contacts