Martin Heller
Contributing Writer

Is “professional software developer” an oxymoron?

analysis
Apr 21, 20081 min

I've been reading Emergent Design: The Evolutionary Nature of Professional Software Development by Scott Bain (Addison-Wesley, 2008, $49.99, 0-321-50936-6). I'm finding it a thoughtful book, which makes a good case for the adoption of patterns, refactoring, and test-driven development. On the other hand, Bain leads with the premise that software development is not currently a profession. Why is that? It's not a

On the other hand, Bain leads with the premise that software development is not currently a profession. Why is that? It’s not a matter of being paid for the work: it’s because software development is too hard, too unpredictable, too chaotic.

Of course, those are the things that make it fun. Bain admits that as well.

I think it’s no stretch to accept Bain’s point that medicine is a profession. Bain cites some of the things that go with medicine — lengthy training, a specialized language, a professional organization, peer review, standards and practices — as things that define a profession as opposed to a job.

Bain says that software development is by nature a professional activity, and should be conducted as a professional activity. He also says that we’re not yet conducting it as a professional activity.

What do you think? Is the phrase “professional software developer” an oxymoron?

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

More from this author