What is “Blue Collar Programming”?
I’m stealing the term from “big” Dave Thomas, who used it over 30 years ago. For me it means the “meat and potatoes” software development, whether it’s product development or custom IT work, embedded systems or applications, server or client. The key characteristics are:
- It’s done for commercial or business purposes (there are business stakeholders to really care about the outcome)
- It’s done by ordinary developers and teams… in general the teams will have a range of skills and experience. This includes some junior or mediocre staff.
- It’s project-based… it has time, content, and resource constraints.
This is “development in the trenches”. In fact “in the trenches” is a good analogy. You can learn a lot about S/W development by drawing analogies with other disciplines. I’d highly recommend reading the book Warfighting - The US Marine Book of Strategy. All you need to do is replace the term “war” with S/W Development Project, and you can learn a lot. I recognized in the book what I refer to as the “4 Fs”:
Check out the What is Blue Collar Programming post for a bit more info.
Who is Bill (William) Bourne?
I started programming in 1972 (Fortran, APL, assembler) Even though my university degree was in Electrical Engineering, my whole professional career has been software related. I became a manager in 1981, although I continued to write production code until 1986. I’ve tried to keep my hand in, even as I became a senior manager and a director.
I’ve been a principal founder of a video games start-up, had 2 games on the Billboard top 40, and wrote applications for Apple and Microsoft. I’ve spent 20 years in the telecommunications industry developing firmware for phones, embedded software for optical network elements, and network management software. I’ve been an architect, a product manager, and held various management positions over the years, including senior manager and director level positions.
I started Macintosh programming in July 1983 on a prototype 128K Mac with a Lisa “twiggy” disk drive. And I still love Macs… I’ve got a BSD-like UNIX, MacOS, and Windows all running on my MacBook Pro. It’s the perfect software development machine!
I’m now providing consulting on software development process and practices improvement, from requirements through verification. While much of the work involves Agile projects, I also consult to teams using other methodologies. I can help you with project inception, getting a new team or project running effectively. I also help rescue projects that have gotten into the weeds, or just want to improve some aspect of their development process. Much of my work focuses on the timeless software development practices that transcend particular methodologies: requirements specification & reviews, design reviews, code inspections, continuous integration, static analysis, designer automated testing, including TDD, and verification test automation.
For more information about me:
- LinkedIn Profile - I keep a complete profile on LinkedIn
- Resume - A 3 page classic resume
- Consulting CV (Long) - This is a long form version of my CV, project-based.