Start Here

I am Pat Maddox


You know that folder you’ve got filled with coding projects that never made it off the ground?

  • code snippets that could become libraries, with a few tests
  • libraries that could become gems, with some new documentation
  • gems that could become side projects, with a bit of refactoring
  • side projects that could become products, with the right game plan

You start each project with the best intentions, even big plans for some of them… but then life gets in the way, and you focus your attention on more important things. Then when you get some free time you dream up another project, and the cycle repeats itself.

You know that you can ship – you get all kinds of other projects out the door at work. Why do your open source ideas collect dust and regret?

The rules you apply to get stuff done at work don’t apply to your hobby projects. If you take the objective-driven approach you use in your work and try to use it on your hobby projects, you will continue to fall short of your goals – and keep piling on the guilt.

You can break the cycle, by launching one of your open source project ideas. You can push the spiral upward, by getting one project out the door and moving on to the next one.

You just need to learn a few skills and techniques that will help you dig in to your project graveyard and bring your projects to life.

Get Hack Your Open Source Project for FREE and you will:

  • set up your environment for success
  • quickly come up with a plan – and then put it in to action
  • ship your first version today – and keep improving it
  • get more people involved in your project
  • Please enter your name and email below so I can send you Hack Your Open Source Project, absolutely free:


    You can view blog posts by date on the right, or search for terms that interest you.

    On this page you’ll find some articles that will give you a good idea of the kinds of things I think about.

    What does it mean to “deliver value”?

    It should be as simple as building what users want, right? Why do some projects fail to pay for themselves even though developers are cranking out features? Are you punching your users in the face?

    The hidden value of the Agile Manifesto

    The Agile Manifesto provides a clear set of values to guide software teams. One un-named value underscores the whole thing.

    Read to Learn

    If you want something to keep you busy, I’ve got a list of books that you might want to check out. I’m not calling this an exhaustive or a necessary list of books to read, just ones that I’ve found helpful in my studies as a programmer. See my books for software-oriented humans.

    Amplify learning with focused habits

    My father’s educational habits greatly influenced mine. Learn more about them in One doctor’s model for continuing education.

    Taking on testing lore

    I make a framework vanish with a dozen lines of code in *poof* … and then Rails was gone. DHH’s counter-argument is nowhere to be found, either.

    Ending the debate on private methods

    …once and for all! Testing protected and private methods in Ruby

    Do I need to be a craftsman? What do they mean by “passion”?

    What is software craftsmanship?

    Sometimes you’re $stdout, sometimes you’re $stderr

    Any success comes after overcoming countless challenges. I reflect on some of my own in Fear of Failure

    I done messed up. Where is the love?

    I’ll just say it… I’m not sure what it is that I’ll say, but I know I’ll say it. I think we need to understand that people mess up and that what’s important is how we respond. How I’d like to handle my future public fuck up.

    How to get 10x better at programming with 1/2 the effort

    I love pair programming. Or do I? It’s up to you to figure out :)

    When things get tangled, it’s time to decouple

    Let’s get nerdy for a bit. You can simplify your testing practices by tweaking one configuration in Rails. Better Rails Testing – Decoupling Observers

    When you just can’t keep DRY

    You might think duplication is evil, but you can use it to your advantage. Learn how in When Duplication in Tests Informs Design

    What’s the verdict on law of demeter?

    Demeter is for encapsulation

    Breaking down encapsulation

    The Aggregate pattern & encapsulation

    Oozing OOP

    Highly objectionable! Let’s go deep on design in To Be an Object, or Not to Be, That Is the Question

    Speaking of deep design…

    Want to save time and money, and expose risk points early? Design Deep, Not Wide

    Behavior and persistence, sitting in a tree

    They say not to mix concerns. How could something so wrong feel so right? Behavioral Methods in ActiveRecord.

    Test-driven javascript interfaces using a simple testing pattern

    Write your first rich interface using TDD. It’s all downhill from there…kinda :) Backbone.js Testing Pattern – Describe a View’s First Render.

    Better than the weather. Getting good at Smalltalk

    There’s a lot to love about this language. If you want to get started with it here’s a good set of resources.

    (Visited 50 times, 1 visits today)