Skip to main content
Home
  • Agile
  • Manage
  • Test
Register
Log In
  • Home
    • TechWell.com
  • My Page
  • Communities
    • Agile
    • Manage
    • Test
  • Interact
    • Blogs
    • Forums
  • Resources
    • Articles
    • Better Software
    • Download Center
    • News Center
    • Podcasts
  • Events
    • Web Seminars
    • Conferences
    • Training
  • Jobs
  • Membership
  • Feedback
  • Contact Us

Do we care whether it's Software Engineering or Craft?

Blog Post

Do we care whether it's Software Engineering or Craft?

Blog Post by Steve Berczuk | Comments: (1) | Mon, 01/23/2012 - 04:00
  • share
  • Print

Much like a tenet of agile software development is that "planning is more important than the plan," there are some questions about software development that are useful to explore, even if you can't suggest a good answer. One of these these is whether what we, as software developers do, is (or can be) engineering.

I was talking with a colleague about a comment someone made about a post about lessons that software engineers can learn from artists. In this comment the poster raised an issue that comes up a lot when someone uses the phrase "software engineer." The question was, in essence:

Is what we do when we build software "engineering" or "craft?"

My colleague, who has a background in Naval Engineering and who is engaged to an Electrical Engineer (who designs and builds hardware) suggested that the difference is that one rule of thumb might be:

It's engineering if you need to use calculation (about physical constraints).

An example was that to build a bridge you need to do calculations to determine if the bridge, as designed, will support the load you want to support. Many of the "classical" engineering disciplines (Mechanical, structural, electrical) fit that criterion. But by that definition, some things which most would agree that are crafts, such as carpentry, involve calculations. So there is probably more to it that that.

On the other hand, I don't think that all work that is in a discipline that we might call "engineering" is engineering. A good friend designs test equipment for a living. When he builds a sensor to measure the performance of his home heating system is he doing engineering, or is that activity more like a hobby or craft?

As I think of the question, and the frequency at which it comes up, I wonder:

Why does it matter whether we are software engineers or software craftsmen?

Engineering, to me, implies a certain level of discipline are repeatable process, and all of the classic engineering disciplines are grounded in physical laws that we are fairly confident in for the scales at which they apply.

If the "software engineering" question is important to you, take a minute to understand why you are asking the question, as the reason for asking may affect the answer.  You can bring discipline to building something you regardless of whether or not you are engineering. I don't think that the question of how (or whether) to make software into an engineering discipline is an unimportant one. But I do think that it is often asked in a vacuum, much like the an attempt at a user story that is missing the "so that..." clause.

To me, as a professional, it's more important that I bring discipline to what I do. I want to build useful, quality, software where the definition of "quality" that is often most appropriate is Jerry Weinberg's from Quality Software Management: Systems Thinking:

Quality is Value to Some Person.

It might be fair to say that we're not always "crafting" or "engineering" software when we sit down at an IDE and program. Sometimes we're just coding (or hacking, or programming). But if you (and your team) are committed to building software that meets your customers needs, and you are always working to learn how to work better, you're doing a good thing. And you don't need to call it engineering to acknowledge that.

  • Project & Team Management
About The Author: Steve Berczuk

Steve Berczuk is an engineer and ScrumMaster at Humedica where he's helping to build next-generation SaaS-based clinical informatics applications. The author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, he is a recognized expert in software configuration management and agile software development. Steve is passionate about helping teams work effectively to produce quality software. He has an M.S. in operations research from Stanford University and an S.B. in Electrical Engineering from MIT, and is a certified, practicing ScrumMaster. Contact Steve at steve@berczuk.com or visit berczuk.com and follow his blog at steveberczuk.blogspot.com.

View More

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

#1 Submitted by Ken Katz on Thu, 01/26/2012 - 09:19.

Software is an engineering discipline

I was educated as an engineer, and I define engineering as the application of scientific principles to providing solutions for problems. Software is based on scientific principles such as mathematics, logic and psychology, and provides solutions to problems. Therefore software is engineering.

  • reply

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.

More like this

  • It's January 1, 2000 . . . What Have You Overlooked?
  • Quality Assurance: The Customer's Advocate in Product Companies
  • Project Planning: It's in the Cards
  • Failed Project? It's the Project Manager's Fault!
  • It's All In How You Slice It

Welcome to TechWell!

With an ever-expanding library of content by industry experts, TechWell is your source for software knowledge. The site is still growing, so please pardon our dust. If you see anything that requires our attention, please CONTACT us.

Not a member? REGISTER to join our community.
Already a member? Log In

Hot Topics

  • Most Read
  • Most Discussed
  • Most Shared
  • New Downloads

Three Components of Effective Defect-management Systems

Article by Krishen Kota | Comments (1)
 From a high-level view, defect management systems are made up of a combination of some defect management tools or tool and a defect management process. These two primary components work together to... Read More

eBay to Open New Development Center in India

News by Jonathan Vanian
 Want a job? You might want to catch the next flight to Bangalore. San Jose’s eBay is opening a global development center in India’s “garden city” and plans on hiring “1,000 technologists over the... Read More

Hacker Steals Source Code From VMware

News by Jonathan Vanian
 It’s been rough sailing for VMware this week as a hacker named “Hardcore Charlie” claims to have stolen some of the Palo Alto-based company’s source code and other documents via a Chinese military... Read More

Three Components of Effective Defect-management Systems

Article by Krishen Kota | Comments (1)
 From a high-level view, defect management systems are made up of a combination of some defect management tools or tool and a defect management process. These two primary components work together to... Read More

CM: The Next Generation—Tailoring CM and ALM Tools

Blog Post by Jonathan Vanian
 Today we published a great piece by Joe Farah over at CM Crossroads. Joe Farah has been working in software field since the late 1960s, and he’s personally witnessed the ever-evolving world of... Read More

Agile Software Development – Past, Present, Future

Article by TechWell Admin
 For example: Read More

Three Components of Effective Defect-management Systems

Article by Krishen Kota | Comments (1)
 From a high-level view, defect management systems are made up of a combination of some defect management tools or tool and a defect management process. These two primary components work together to... Read More

Press Release: Klocwork Insight(TM) Ensures Software Security and Reliability for Bids Trading's Financial Trading System

News by TechWell Staff
 Burlington, Mass – Klocwork Inc, the global leader in automated source code analysis (SCA) solutions for developing more secure and reliable software, today announced that BIDS Trading, operators of... Read More

CollabNet Releases CloudForge

News by Jonathan Vanian
 Brisbane’s CollabNet is starting off this week with a new corporate strategy and a new product launch. As of this Monday, CollabNet will now focus on “the enterprise adoption of hybrid cloud... Read More

Be Agile and Take Control of Your Software Projects

The software development world has gone agile, but complex projects still demand requirements best practices such as traceability, specifications and change control. Learn how to strike the right... Read More - Get this content

Vendor Landscape: Agile ALM

As development platforms, coding methodologies, and devices increase in number, Agile Application Life Management (ALM) tools support integrations with an ever-increasing range of systems. In this... Read More - Get this content

Agile Transformation Strategy

As organizations seek to improve return on investment and manage project risk more effectively, more companies are turning to Agile Product Development methods such as Scrum to achieve these goals.... Read More - Get this content

Follow Us On...

Follow us on Twitter
Twitter
Follow us on Facebook
Facebook
Follow us on LinkedIn
LinkedIn
Follow our RSS feed
RSS Feed

Sponsors

  ASTQB
  HP Software
  Microsoft
  MindFire Solutions
  PTC
  Neotys
  QA Symphony
  SQE Training
  SmartBear Software
  SOASTA
  Tricentis


Our Bloggers

Johanna Rothman is a management consultant and a regular StickyMinds.com and Better Software magazine columnist.

Steve Berczuk is an engineer and ScrumMaster at Humedica where he's helping to build next-generation SaaS-based clinical informatics applications.

Naomi Karten is a highly experienced speaker and seminar leader who draws from her psychology and IT backgrounds to help organizations improve customer satisfaction, manage change, and strengthen teamwork.

Lee Copeland has more than thirty years of experience in the field of software development and testing.

Lisa Crispin has worked as a tester on agile teams for the past ten years, and enjoys sharing her experiences via writing, presenting, teaching and participating in agile testing communities around the world.

Claire Moss has been testing software for 8 years. Although authoring a testing blog and articles are new for her, Claire has always had a passion for writing, which might be a strange trait for a Discrete mathematician.

Site Contents
Back To Top
  • » My Page
  • » Communities
    • - Agile
    • - Manage
    • - Test
  • » Solution Central
    • - HP Solution Center
  • » Interact
    • - Blogs
    • - Forums
  • » Resources
    • - Articles
    • - Better Software Magazine
    • - Download Center
    • - News Center
    • - Podcasts
    • - Videos
  • » Events
    • - Web Seminars
    • - Conferences
    • - Training



Techwell

  • Advertise
  • Terms of Use
  • Privacy Policy
  • RSS
  • Site Feedback
  • Subscription Services