Saturday, January 20, 2007

Are Programmers Really Engineers?

“Software Engineering” - Whatever That Means

If a programmer hands you her business card, it probably won’t list her title as “Programmer;” It is more likely to read “Software Engineer.” This raises the interesting question: does a programmer’s daily job rise to the level of an engineering discipline? I think it would be more accurate to call programming an emerging engineering discipline.


Evolution of the Field

Since around 1975, various people have tried valiantly to impose discipline on the chaotic, egocentric, idiosyncratic practice of programming. And just at the turn of the century some professional institutions have started to establish the core competencies that would let a programmer call herself a software engineer.

Vision of the Future

Will we see the transformation complete: will programmers be licensed and regulated like other engineers? Personally, I think it’s too early to bet one way or the other - programmers are remarkably individualistic and there will be be very strong resistance to regulating what they regard as their craft. On the other hand, offshore development and the rise of software-based lawsuits are changing the landscape much as barbed wire changed the American west of the 19th century. If you’d like my prediction, ask me again in a decade.

Today’s Situation

But if you are going to work in the world of the programmer, you’ll have to understand some of the standard ways in which complex software is constructed. If you want to sound erudite, you can refer to them as “software development methodologies” or “development models,” but if you’re talking to a programmer you’re better off asking, “So, how do you folks build software around here?”