# Human variables in engineering

All timestamps are based on your local time of:

Posted by: stak
Tags:
Posted on: 2011-01-17 01:43:18

[This blog post is an extension from part of the presentation I gave in class a few days ago.]

There's no one true definition of engineering, but a lot of the definitions you'll find are variants on the same theme: an engineering discipline consists of the application of a science to solve a problem. The problem with all of these definitions is that they downplay the "application" part - that is, the human component of engineering.

The way I see it, engineering is a combination of two main factors. One is the principles and properties from the underlying science. The other is the mind of the human putting the principles and properties together. Different engineering disciplines have different amounts of these two factors, and that has all sorts of implications.

It's probably easier to see with an example. Let's say we stumble through a wormhole into a different universe where our current rules of physics don't apply. Naturally we start a new scientific discipline dedicated to figuring out how that universe operates. After some investigation, we discover three laws. Law one is "if two objects collide, their masses automatically double". Law two is "if an object reaches a mass of 100kg or greater, it splits into three equal pieces". Law three is "if you have an object of 64kg, it turns into a wormhole that sucks you back to our normal universe". Now, you want to return to our normal universe, so you grab all the rocks you can find and weigh them. You find that you have three rocks with masses 1kg, 32kg and 96kg.

The science in this alternate universe provides us with three laws. As engineers, we have different ways in which we can combine these laws in order to solve a problem (getting home). For example, we could collide the 1kg and 32kg rocks together, resulting in 2kg and 64kg rocks. We can then use the 64kg rock to get home. Or we can collide the 1kg and 96kg rocks together, resulting in 2kg and 192kg rocks. The 192kg rock would then split into 3 64kg rocks, which we could use to get home. Or we could collide the 32kg and 96kg rocks, which would also get us home. So with these three rocks, given our stated goal, there's three distinct solutions. If we sent a bunch of engineers over to this alternate universe, it is highly unlikely that they would all use the same solution to get back.

If you view an engineering discipline as a combination of a science and a human mind, then it makes sense to try and figure out how much of the engineering is science and how much of it is the human component. With the example above, for that one problem, the science and the solution space are both bounded. That is, there are only three laws in the science, and only three solutions. But if we added another rock of 1kg, there would be 31 different solutions instead of just three. In this scenario, the solution that actually gets selected is more a function of the human mind and not as determined by the science. On the other hand, if you started out with two rocks of 32kg each, then there's only one possible solution to the problem. In this case, the human component plays a negligible role and the science plays a much bigger role in the engineering solution.

If we take this a step further, and look at the space of all possible problems that can be solved in this universe, and aggregate the science/human ratio over them all, we can figure out how much of the overall engineering discipline depends on the science and how much depends on the human component. (Note: I don't actually know what metrics and aggregation operations would be best to use here. I'm just doing thought experiments.)

So where does this take us? Well, different engineering disciplines are going to have different science/human ratios based on what kind of problems they have and what kind of properties the underlying science has. I think that the greater the human component, the more "complex" we consider the engineering discipline to be. Software engineering, in particular, has a huge number of possible solutions to any problem, and I think that's related to why it is so complex. The human variable in any software engineering project has a huge impact on how the final solution turns out. This is why I claimed in my previous post on experimentation that the human mind is such a HUGE variable in any software program, and any experimentation while leaving this variable uncontrolled results in nonsense results.