A few months back I stumbled across a .Net Rocks episode that mentioned the Software Craftsmanship movement. The episode was not devoted to this topic, just touched on it lightly, and for the life of me I can’t remember which one it was. The ideas being discussed triggered my interest.
I have been troubled by the state of software development world for quite some time now and this movement shows promise in bringing some consistency and credibility to the practice.
In my search to learn more about the movement I came across a few interesting articles. Once such article entitled “Enough With The Software Holy Wars!” included the “Ten Commandments Of Software Development”. The article and the “Commandments” rang true to me and I thought they were worth repeating.
The Ten Commandments Of Software Development:
- Thou Shalt Not Write Software Thy Customer Didn’t Want
- Thou Shalt Iterate Thy Solutions, Indefinitely If Necessary
- Thou Shalt Test Early & Often
- Thou Shalt Manage Versions and Configurations Of Thy Software, Even When Working Alone
- Thou Shalt Not Jump Straight Into Writing Code If Thou Hast Not Put A Bit Of Thought Into The Design
- Thou Shalt Not Write Code That Is Hard To Change
- Thou Shalt Not Integrate Or Release Untested Code
- Thou Shalt Not Create User Interfaces That Are Hard To Use
- Thou Shalt Treat Functional & Non-Functional Requirements Equally
- Thou Shalt Automate Oft-Repeated Tasks & Share Oft-Repeated Code
Call this list whatever you like but print it out and post it up on the wall somewhere you will see it frequently during your day. All software developers need to hold true to these ideas.