Software as Soulcraft?

Blacksmith

In his book Shop Class as Soulcraft, Matthew Crawford contrasts the fulfillment from working with your hands with the abstract world of the knowledge worker.  For an abbreviated version, check out his NY Times essay.  Being a closet Maker myself (more here), I was drawn into this topic as I often struggle with the creative limitations of the tools of our trade – laptop and phone.

In the essay, Crawford says:

High-school shop-class programs were widely dismantled in the 1990s as educators prepared students to become “knowledge workers.”

It’s not clear to me what exactly was created in place of shop (and auto mechanics, and woodworking).  I don’t think that whatever replaced these hands on electives was the Information Age equivalent – something that teaches you to design and build something yourself like programming or circuit design.  So, it seems like we removed the Industrial Age “shop class” electives but didn’t adequately fill the gaps.  Is this even a problem?

As I look at the middle and high school courses available today to my children (5th and 8th graders), most if not all of their classes are computer supported, but nothing available during the school day attempts to delve into the inner workings of hardware or software.  If we had fully replaced the shop classes with their information analogs, wouldn’t we have classes in circuits, micro-controller programming, algorithms and game development?  Sure, there are some clubs and robotics teams, but they exist mostly after hours.

Looking at college curricula, only the C-S degrees do any real experiences working with hardware and software.  As far as MIS undergrad degrees go, only a few classes in a four-year program deal with programming (US News top MIS program in 2009, University of Arizona, offer 2 classes that seem to involve programming – data structures and database management systems).

I think there are several interesting questions to explore as we think about the balance of hands-on work with more abstract work we deal with in IT:

  1. Does software development yield some of the same satisfaction as other hands-on work?
  2. Do we have adequate courses available to students (and employees) to allow them to explore the hands-on programming experience?
  3. Do we provide adequate career paths for those inclined to develop software?
  4. How has outsourcing impacted a company’s ability to provide a “complete” career experience for IT professionals?
  5. What amount of software development experience is desirable for those managing and leading IT?

My biggest worry is that programming has become the “manual labor” of the Information Age and will be de-emphasized the way that shop class was.

  • http://www.morethanpoints.com Henry Hwangbo

    Chris – my 2 cents

    1. Yes, I believe building something “tangible” whether its a table or a web site that allows people to donate money to good causes both yield a similar sense of satisfaction to the persons responsible for building them. The difference with software development is its not quite as easy to admire the work since the UI could be the handy work of a great designer, but the nuts and bolts holds the magic. The great wood work involved with building a cabinet will also be more appreciated by a non-carpenter; the same couldn’t be said for a piece of impressive code.

    2. Growing up in the 80’s, programming classes were always an after school activity for those folks interested in programming or computing. Hopefully they’ve been promoted to at least an elective like the shop and art classes.

    3. Software development has and always will be a tool – a means to an end. While I believe there are plenty of opportunities for software developers, within large corporations there is certainly a glass ceiling. The business folks have the money and IT is considered a cost sink. Someone will always be your boss. The end game for folks who want to stay in software development is doing something amazing outside of the corporate walls.

    4. Outsourcing has certainly impacted the career experience for IT professionals by changing perception of great software development from a highly-valued skill into a commodity. This in turn has impacted how companies structure incentives which naturally impacts what skills employees focus upon.

    5. Having a software development background is one of key requirements for a good IT manager/leader. Understanding the day-to-day experience of being in the trenches is a required attribute for good IT management. There’s a reason why apprenticeship was developed back in the middle ages. Its not to say a manager without an IT background cannot be successful IT leader, but they need to be well aware of their limitations and defer to others when they are being stretched. A software developer who has made the successful jump to IT leadership (by picking up communication & project management skills) will always be better off than a business analyst who moves into IT management and has never touched a piece of code in their lifetime.

    Failure in software development projects is usually a people problem first and a process problem second.

  • http://www.morethanpoints.com Henry Hwangbo

    Chris – my 2 cents

    1. Yes, I believe building something “tangible” whether its a table or a web site that allows people to donate money to good causes both yield a similar sense of satisfaction to the persons responsible for building them. The difference with software development is its not quite as easy to admire the work since the UI could be the handy work of a great designer, but the nuts and bolts holds the magic. The great wood work involved with building a cabinet will also be more appreciated by a non-carpenter; the same couldn’t be said for a piece of impressive code.

    2. Growing up in the 80’s, programming classes were always an after school activity for those folks interested in programming or computing. Hopefully they’ve been promoted to at least an elective like the shop and art classes.

    3. Software development has and always will be a tool – a means to an end. While I believe there are plenty of opportunities for software developers, within large corporations there is certainly a glass ceiling. The business folks have the money and IT is considered a cost sink. Someone will always be your boss. The end game for folks who want to stay in software development is doing something amazing outside of the corporate walls.

    4. Outsourcing has certainly impacted the career experience for IT professionals by changing perception of great software development from a highly-valued skill into a commodity. This in turn has impacted how companies structure incentives which naturally impacts what skills employees focus upon.

    5. Having a software development background is one of key requirements for a good IT manager/leader. Understanding the day-to-day experience of being in the trenches is a required attribute for good IT management. There’s a reason why apprenticeship was developed back in the middle ages. Its not to say a manager without an IT background cannot be successful IT leader, but they need to be well aware of their limitations and defer to others when they are being stretched. A software developer who has made the successful jump to IT leadership (by picking up communication & project management skills) will always be better off than a business analyst who moves into IT management and has never touched a piece of code in their lifetime.

    Failure in software development projects is usually a people problem first and a process problem second.

  • Pingback: Twitted by dwwright99()