I just finished watching this informal talk by J.B. Rainsberger with Corey Haines on an evolutionary design pattern that Rainsberger uses. He says that it’s about removing duplication and bad names, to me it’s a simple way to go about enforcing modular design and implementing your design in a way that very strongly matches the MVC pattern.
The talk is about 10 minutes long but worth a listen. He gives a basic example that has common analogues in most areas of application programming.
Programming isn’t a science, it’s more of a craft to me. A craft implies a combination of some creativity and some practicality. You can make a wardrobe that does the job, or you can get a craftsman to do the job and you’ll end up with something that is not only functional, but great to look at. Craftsmen build the furniture you buy from antique stores.
Software can certainly be the same. Software can work, or it can work well. It can be inspiring and fun to work on, or it can be terrible and boring. It generally comes down to the skill and work ethic of the person that is writing it in the first place. I want to build an antique, not an $11 chair from Ikea.
Corey Haines has been doing a series of videos about all matters software related, but he seems to be mainly passionate about Pair Programming. I like how he sometimes delves into the psychology of people in an industry that is populated by so many with unusual profiles.
He operates a blog called On Being a Journeyman Software Craftsman and it contains a bunch of videos and short blurbs about things he’s learned while on his trip. I’d check it out and you might learn a bit about some of the cooler ideas out there in the software world.