I love making software. We start with something that needs to be done and we make it happen — by thinking and wiggling our fingers! Literally. Of course we do swear and write stuff on whiteboards. But mostly its just thinking and wiggling. Amazing.
I love helping a business person (domain expert, etc) create something. The best part is surprising someone by quickly solving a problem that seemed insoluble and has been so for months (or years). Its fun coming up with something that is clearly greater than the sum of the team. More than fun, its almost a religious experience.
I love watching newly hatched nerds spread their wings and make something grand, something that surprises even themselves. Its even better when its something that surprises the wizened old nerds who hired them.
I love hearing about how software I’ve helped to build has made someone’s life better. That $70,000 pension underpayment cheque — I helped that war veteran get that. I love the look of wonder on a “users” face when they realise that the software they have now doesn’t crash every few hours or they can do something in an few seconds that used to take days.
Its not just programming I love, in fact I think that the programming part is less satisfying than managing production or business analysis or even project management. Programming is sometimes so close to the trees that the beauty of the forest only becomes visible well after the work is done. Although when programming, you do get the consolation of creating something that is both internally beautiful and externally beautiful.
I love making software.