Saturday, May 26, 2007

Software Engineering as a Profession

At the recent ICSE 2007 in Minneapolis, Deborah G. Johnson described a framework which professionals have used to define themselves as professionals and differentiate themselves from hired guns. A few in the audience commented on how the UK and Canada had begun to organize their practitioners of software engineering into professional organization. I started to think about what this means for me. I asked myself how would a professional organization help me enjoy work more than I already do?

One of the things I really like about computers is watching people in accounting use spreadsheets. They add macros, complex formulas and really configure the computer to do what they need in order to answer some question. The really fill the need of pseudo programmers.

I really enjoy the speed at which I can build complex systems inside of our SOA ecosystem. I call a bunch of APIs, slap together some code, run it through some compiler and really configure the computer to do what someone has asked me to do with the computer.

Yeah I understand how to talk to the computer at a lower level, but am I practicing software engineering? Did I exercise any sort of social responsibility when putting together that SOA service? Did I really understand the engineering aspects of what I was doing, or was it just a factor more complex than putting together my kid’s Barbie house?

A manager I work with recently told me that “You are not qualified to know or even pretend to know what it’s like for a real person to edit HTML. It is such a part of you that it’s not worth trying to pretend.” I began to wonder….

During the dialogue after the keynote, I heard terms like practitioner and academic. I realize the distinction that the academics are making, but I’m not sure how a bunch of academics, even if they were unified would successfully mount a campaign to turn software engineering into a profession, especially when 90% of the software development community would find it hard to associate with a group of people who claim the developers aren’t really qualified to do what they love.

I see a movement in usability that will really make it easier for regular people who would not dare edit raw HTML to configure computers to do what they want. When I learn about the usability studies that Microsoft is doing specifically in regards to developer productivity I wonder if there aren’t really different types of software developers. I’ve yet to see it work, but I’m sensing that it’s getting easier and easier for non-programmers to program.

At the keynote on Wednesday we saw a presentation that demonstrated how you could configure a system to do what you want. Sure you needed to be tech savvy, but you didn’t need to be a programmer. It made me think that my days as a programmer were coming to a close.

Indeed that might be exactly what is happening. It is entirely possible that Software Engineers will design systems for regular people and the corporate developer falls by the way side.

I look forward to being able to abstract the process to make it cost effective for my co-workers not in IT.

No comments: