Do you want to use Test Driven Development in your daily work but lack the necessary motivation? Do you have the nagging feeling that TDD could use more nagging to make you get things done?

If this describes you, then you should definitely consider Guilt Driven Development. GDD is a powerful new technique based on one of the strongest motivating forces known to man: guilt. It works by forcing you to create promises to it and then guilts you into keeping them.


To fully leverage the power of GDD I highly recommend UPromised, a framework built from the ground up to support the GDD workflow. Here’s a sample output generated by running UPromised against an existing GDD project:

Starting UPromised...

Well, it sure is nice to hear from you again. It's been like 27mins since
I last saw you. Where you on a lunch break or something?

Anyway, let's see what we got here:

   Promise to CorrectlyAddTwoNumbers was kept
   Promise to HandleNegativeNumbers was kept
   Promise to HandleNumbersWithFractions was broken
   Promise to ProperlyRoundUpResult was broken

Looks like you broke 2 out of 4 promises. That's not great and it took
forever to run (3mins 17secs). I expected more from you, I really did.

Let's just hope it goes better next time, ok?

Goodbye for now..

As you can see, UPromised is stern but effective. It will use subtle (and not so subtle) techniques to encourage you to do what you said you would.

Notification System

One of UPromised’s most powerful features is its advanced notification system known as Persistent Alert Reporting and Escalating Notification Transmittal. This system uses every means at its disposal to alert you of broken promises. It will email you, text you, tweet you, call you, post embarrassing things on your wall, even generate handwritten notes and send them directly to your house.

The best part is that it cannot be disabled, not even during holidays (On the contrary, it will automatically triple the number of alerts you receive during holidays).

Final Thought

With GDD and UPromised you finally have the tools you need to make TDD work for you. So, why not make a promise to get started today? And remember, GDD puts “driven” back into Test Driven Development.

You may also like:

Did you love / hate / were unmoved by this post?
Then show your support / disgust / indifference by following me on Twitter!

This post got 34 comments so far. Care to add yours?

  1. Delce says:

    I didn’t really feel like posting a comment here, but then I started to feel guilty about it.

    • Alex Tatiyants says:

      Thanks for fighting the urge not to comment Delce! Also, you’ve just experienced the true power of GDD.

  2. Mrugen says:

    Can I please get pointers on downloading and starting development with this kind of framework.??

  3. itoctopus says:

    I think we’ll start having the best code in the world when developers start to feel guilt, but I don’t know if that’ll ever happen!

  4. Ebenezer says:

    ROFL! So true… thanks for the laugh

  5. sinkien says:

    Sounds really interesting… I’ll try to test it, I promise 🙂

    • Alex Tatiyants says:

      Thanks sinkien, I’ll add your promise to UPromised: SinkienWillTestUPromised. Expect a hand written note shortly!

  6. Lars says:

    Can anyone post a link to the Upromised link i think i need it :3

    • Alex Tatiyants says:

      Since GuiltHub appears to be down at the moment, I’m afraid UPromised is not available right now. Sorry Lars!

  7. Nikola says:

    In light of situation i found myself in I took your post quite literally 🙂 I had my ass grinded because developer i was supposed to introduce took 3 weeks to do nothing on a task he was handed. Although i repeatedly asked him if he had any problems. I always got a response “no, no, nearly done”, and i wasn’t even an ass to ask him to show me the progress. I am seriously going to employ UPromised next time 🙂

    • Alex Tatiyants says:

      Hi Nikola, sorry to hear both about your predicament and the fact that you took me seriously. Thanks for reading!

  8. IoannidisV says:

    GDD is the sh*t! 🙂
    By the way, I think itoctopus is a Project Manager 😛

    • Alex Tatiyants says:

      Thank you IoannidisV. I can’t speak to the true identity of itoctopus, but we do welcome all kinds here at Even project managers 🙂

  9. davethecoder says:

    hahaha 🙂 very amusing. cnt believe it has a snail mail feature 🙂

    should also have a plugin of SDD shame driven development, this could quite heavily incorporate the P.A.R.E.N.T feature, which i must say is the daddy of all features IMO.

    I hear that for the hardcore programmer / Nerd there is also a pro package that offers a FDD [ Fret Driven Development ] and instead of mail being sent to your home, they send round large goons, that stand over you and ensure that you deliver on your promise, there is no real confirmation on this but i heard a price of $35 PCM mentioned somewere on another blog.

    anyway happy developing

    • Alex Tatiyants says:

      Thank you davethecoder! Unfortunately, the P.A.R.E.N.T. system was not designed to be extensible and I’m afraid it’s nearly impossible to change by now (it’s really set in its ways). Also, FDD has a lot of promise (pardon the pun).

  10. Simon says:

    Is this really real? Can’t find it on GitHub 🙁

    Our project manager went on maternity leave and I’ve been looking for something to fill the void. Without nagging I have a habit of only doing the fun stuff and leaving the boring bits (like error handling, input validation etc.)…

  11. ahhatem says:

    Very funny 🙂

  12. Shiin says:

    I felt like all of you… guilty. Then i took an arrow on the knee…

  13. Software guys can actually feel guilt? Wow, I learned something new today! Usually they call you an idiot and run away when you start questioning them.

    • Alex Tatiyants says:

      Some do, but a lot don’t. That’s why GDD is such an important practice. Thanks for reading!

  14. BrainiacV says:

    I thought inflicting guilt was the responsibility of management (phb).

  15. GrandeMocha says:

    My boss would pay a fortune for this. I promise I’ll tell him about it. 😉

  16. joseph says:

    I feel like I want to make this system… I could probably do it to (aside from the snail mail bit)

    • Alex Tatiyants says:

      Joseph, you can and should make this system. Good luck and please let me know how it turns out.

  17. toucan says:

    How would you proceed if the first two sentences were:

    Do you wish your manager would quite chopping unit test hours out of your estimates before passing them up the chain?
    Do you wish you could get your fellow teammates to give a crap about being good developers?

    Guilt won’t work where I live.

    • Alex Tatiyants says:

      Hi toucan,

      All joking aside, development methodologies only go so far. For someone in your situation, the only advice I could give is this: “either change your environment or change your environment”. Good luck and thanks for reading!