Anda di halaman 1dari 2

Lecture Extension

Feedback-based iterative improvement is core to the engineering mindset.

In the fourth lecture of a course in my first term of praxis called Praxis, Prof. Foster talked

about the Teardown studios (i.e. its a studio that we teardown some home electrical

supplements and analyze their designs). Due to the demands of needing hacksaws for tearing

down items, the studios acquired them between Tuesday and Wednesday. By getting the

hacksaws, the professor demonstrated that feedback-based iterative improvement is core to

the engineering mindset.

This concept reminds me of the history of C, a programming language. C is a by-product

of the UNIX operating system, which was developed at Bell Laboratories by Ken Thompson,

Dennis Ritchie, and others (King, 2008). UNIX was written in assembly language, which usually

makes the programs written in such language painful to debug and hard to enhance (King,

2008). Therefore, Thompson developed languages B, and Ritchie extended B to C (which is

called New B at first). In 1978, Ritchie and Brain Kernighan published C Programing

Language, (known as K&R) which became the bible of C programmers. However, feedbacks

about this book were not all positive: K&R was fuzzy about some language features, so

compilers often treated these features differently. Also, K&R failed to make a clear distinction

between which features belonged to C and which were part of UNIX (King, 2008). Besides,

since C was still developing, the bible seemed to be outdated and needed to be improved.

Then, from 1983 to 1989, C was standardized under the auspices of ANSI (American National

Standards Institute). It was approved by ISO in 1990, so this version of C is called C89 or C90.

The iterative improvement of C never endsC99 appeared in 1999 and many more C-based

languages were developed.

After reading the history of C, its clear how C has evolved. People gathered feedbacks

from the previous versions of C and then improved the language to eliminate the drawbacks.

Since programming is considered as an important part of engineering, the history of C

language shows why feedback-based iterative improvement is core to engineering mindset.

As engineers, after realizing why we need feedback-based iterative improvements, we


also want to know how to get feedbacks. I would like to divide feedbacks into two types. One

type is obviousfeedbacks we get from others. There are many ways to get this kind of

feedbacks. For example, if you want to improve a program you write, you can ask people who

used this program for feedbacks or simply add a small program which ask feedbacks from

users (actually, the latter is more effective as many programs are widely-used now). This can

be seen through many companies such as apps for IOS where they ask you to evaluate them

on Apple Store. The other type of feedback is the ones from ourselves. As engineers who

design the item, our own feedbacks may have even better impacts than those who arent a

professional in this section. For instance, when feedbacks on a hairdryer is collected, normal

users may focus on something like This hairdryers color isnt good enough, whereas the

engineers who design the hairdryer may come out with something like this hairdryer is good

in terms of design for safety, but I still need to improve its usability by doing such and such

because By comparing the two kinds of feedbacks, we can see both of the feedbacks

provide information, but the information provided by the engineers are easier to apply to

further engineering design; and engineers usually justify their feedbacks and try to eliminate

the bias in their feedbacks, whereas normal users may provide some feedbacks based on their

personal thoughts (e.g. I hate dark colors so I think the black color of this hair dryer is bad),

so in general feedbacks from engineers are easier to deal with.

In my mind, engineers are people who design things that thrive in making the world

better and better. However, theres a problem: how do we know if the things we design

function well and what can we do to make them function better? The answer is we need

feedbacks to know if they function well, and iterative improvement based on the feedbacks

to make them function better. Therefore, feedback-based iterative improvement is core to

the engineering mindset.

Reference:

King, K. (2008). C programming. 1st ed. New York: W.W. Norton & Co.

Anda mungkin juga menyukai