• About PeterSIronwood

petersironwood

~ Finding, formulating and solving life's frustrations.

petersironwood

Tag Archives: programming

Walston & Felix Multiple Regression Study

24 Thursday Jun 2021

Posted by petersironwood in Uncategorized

≈ Leave a comment

Tags

HCI, productivity, programming, regression, software, UX

As I mentioned recently, when I first arrived at IBM Research in the early 1970’s I began to work on Query By Example and other schemes to make it easier for non-programmers to interact productively but flexibly with computers. Some of the lessons learned have to do, not with my own work, but with the work of others. 

At that time, some researchers labelled their work as “The Psychology of Programming.” There were many debates — and some studies — about structures, syntax, which language was better than others, etc. There were also lengthy discussions about the process that one should use for software development. Doing any kind of “controlled” experiment on large scale code development is prohibitively expensive. It is rare that a company is willing to have two independent teams build the same piece of software in order to learn which of two methods is “better.” 

Of course, one such comparison would likely not prove much. It may be that one of the two teams had a “super-programmer” or an extremely good manager. Perhaps, flu broke out in one of the two teams. You would really need to study many more than two teams to properly and empirically study the impact of language, or syntax, or process. Doing reasonable-sized experiments would be far too costly and impractical. Our lab and others did do laboratory tasks in order to test one syntax variant against another and so on. The problems were generally quite small in order for the study to be practical. So, the applicability to real-world development projects was questionable.

Photo by Christina Morillo on Pexels.com

Walston & Felix (See below), on the other hand, were able to find data on a fair number of real-world projects and rather than try to control for languages, processes, etc., they did a multiple regression analysis based on what languages, methods, etc. real projects used and what the important predictors were of actual productivity. 

Personally, I learned two lessons from their study. 

Lessons Learned: #1 — Sometimes, when it comes to what matters in the real world, controlled laboratory experiments have to give way to other methods such as studying “natural experiments.” Despite the many issues with trying to interpret such findings, no-one will pay for massive controlled experiments that parametrically vary programming methods, programming languages, etc. while controlling for quality of management, experience, complexity of task, etc. Multiple regression studies and in-depth case studies; ethnographic studies; interviews: all of these can provide useful input. 

OLYMPUS DIGITAL CAMERA

Lessons Learned: #2 — The impact of the variables that our community of people were looking at in terms of syntax, structure, etc. were dwarfed by the impact of organizational variables. For example, Walston & Felix found that the complexity of the interface between the developers and the customers was extremely important.

DeMarco & Lister (See below) claim that, based on their decades of experience as consultants to the software development process, projects almost never fail for technical reasons; when they do fail, it’s almost always for organizational and management reasons.  

That conclusion dovetails with my experience. Many decades later, working for IBM in “knowledge management,” it was amazing how many companies wanted us to “solve” their knowledge management issues by building them a “system” for knowledge sharing.

But…

Management at the company would not provide:

Incentives to share knowledge

Space to share knowledge

Time to share knowledge 

Or, commit any personnel to gathering, vetting, organizing, and promoting the knowledge repository. 

So — knowledge sharing was something they were simply supposed to do on top of everything else they were doing. 

They did not want a computer system, IMHO; they wanted a magic system. 

Photo by David Cassolato on Pexels.com

These experiences were part of my motivation for attempting to catalog “best practices” in collaboration and teamwork in the form of a Pattern Language. Christopher Alexander and his colleagues looked at “what worked” in various parts of the world when it came to architecture and city planning. What they did for architecture and city planning, I want to do for collaboration. 

Naturally, merely creating a catalog is not sufficient. I need to have people who will read it, understand it, modify and improve it, and then promulgate it via actual use. For now, it’s free. Comments and critiques are always welcome.

—————-

C. E. Walston and C. P. Felix, “A method of Programming Measurement and Estimation,” IBM Systems Journal, vol. 16, no. 1, pp. 54–73, 1977.

https://en.wikipedia.org/wiki/Peopleware:_Productive_Projects_and_Teams

Thomas, J.(2008).  Fun at work: Managing HCI from a Peopleware perspective. HCI Remixed. D. McDonald & T. Erickson (Eds.), Cambridge, MA: MIT Press.

——————-

Introduction to a Pattern Language for Collaboration and Teamwork 

Index to a Pattern Language for Collaboration and Teamwork

Chain Saws Make the Best Hair Clippers 

I Went in Seeking Clarity

16 Saturday Jan 2021

Posted by petersironwood in Uncategorized

≈ 2 Comments

Tags

parallel programming, problem formulation, problem framing, problem solving, programming, thinking, tools, X10

“I stopped by the bar at 3 A.M.
To seek solace in a bottle or possibly a friend
And I woke up with a headache like my head against a board
Twice as cloudy as I’d been the night before
And I went in seeking clarity” — Lyrics from The Indigo Girls: Closer to Fine

If you think programming is cognitively difficult, try parallel programming. It is generally harder to design, to code, and to debug than its sequential cousin. One of the fun projects I worked on at IBM Research was on the X10 language which was designed to enable parallel programmers to be more productive. Among other things, I fostered community among X10 programmers and used analytic techniques to show that X10 “should be” more productive. Although these analytic techniques are very useful, we also wanted to get some empirical data that the language was, in actuality, more productive. 


Photo by Dominika Greguu0161ovu00e1 on Pexels.com


One part of those empirical studies involved comparing people doing a few parallel programming tasks in X10 to those using a popular competitor. But, like many other “chicken and egg” problems, there were no X10 programmers (other than the inventors and their colleagues). I was part of a team who travelled to Rice University in Houston. The design called for one group to spend a chunk of time learning X10 (perhaps half a day) and another chunk of time coding some problems.

Besides the three behavioral scientists like me who were there to make observations, there were also three high-powered Ph.D. computer scientists present who would teach the language. Programmers tend to be very smart. Parallel programmers tend to be very very smart. People who can invent better languages to do parallel programming? You do the math.



Anyway, after the volunteers students had arrived, one of the main designers of the language began to “teach them” X10. 

But — there was a problem. 

The powerpoint presentation designed to teach the students X10 was far too blurry to read!

Immediately, the three computer scientists tried to issue commands to the projector to put the images in focus. Nothing worked. The three of them began a fascinating problem solving conversation about what communication protocol(s) among the PC, the projector, and the controller was the likely source of the problem. I suppose it might not have been fascinating to everyone, but it was to me. First, it fascinated me because I was learning something about computer science and communication protocols. Second, it fascinated me because I loved to watch these people think. I suppose many of the advanced computer science students who were in this classroom to learn X10 also found it interesting. But the study had completely stalled. 

After a few minutes of fascinating conversation that did nothing to focus the images, something possessed me to walk over to the projector and turn the lens by hand. The images were immediately clear and the rest of the experiment continued. 

The three computer scientists had “framed” the problem as a computer science problem and I found the discussion that sprang from that framing to be fascinating. But one of the part-time jobs I had had as an undergraduate was as a “projectionist” at Case-Western, and it was that experience that allowed me to try framing the problem differently. All of us have huge reservoirs of experience outside of our professional “training” and those experiences can sometimes be important sources of alternative ways to frame a problem, issue, or situation.

———————————-

Essays on America: Wednesday 

Essays on America: The Update Problem 

Essays on America: The Stopping Rule

The Invisibility Cloak of Habit

Author Page on Amazon

   

Resonance

20 Thursday Dec 2018

Posted by petersironwood in America, management, psychology, Uncategorized

≈ 2 Comments

Tags

creativity, Design, Feedback, golf, harmonics, learning, politics, programming, resonance, sports, testing, thinking, timing

Resonance

If you have ever pushed your kids on a swing, you know that timing is important. If you add the power of your next push just as the child reaches the apex and begins to fall back, you will swing your child higher and higher with little effort. On the other hand, if you add the power of your next swing at the bottom of the arc just as the swing is moving toward you at maximum speed, you will nearly stop the swing and likely injure yourself and/or your kid. Please don’t try it.

boy wearing blue shirt sitting on swing

Photo by Git Stephen Gitau on Pexels.com

In sports as well, the timing of when you add your effort is critical. In golf, for instance, many beginners think a lot about their hands, probably because we use our hands for many daily tasks such as texting, flipping burgers, playing video games, etc. While the hands are certainly important in the golf swing, they are the last thing to bring to bear on the golf swing, not the first. If you add your hands and wrists at the last moments right before you hit the ball, you will  be accelerating the club face as you hit the golf ball. You will have greater velocity and also more stability and hence more accuracy for the shot. 

woman playing golf

Photo by Jopwell x PGA on Pexels.com

The golf swing is a complex athletic move that I cannot describe in detail. Here’s what is important in this context. Some parts of the golf swing (notice the word: swing) are much like a pendulum. The longer parts of the body (e.g., the arms) take longer to swing on their own. The shorter parts of the body take a shorter time to swing on their own (e.g., the hands). In addition, the shortest pendulum (the hands) is at the end of the longer arm swing. This means that for the arm swing and the hand/wrist moves to multiply effectively, you must engage the hands and wrists toward the bottom of the arm swing when the arms are already moving at top speed. 

What is True in Mechanics and Sports is also True in Social Engineering.  

If you work in a highly competitive, even cut-throat sales environment, in which there is a long tradition of stealing commissions, grabbing each other’s customers, etc., having the sales manager say something like, “You know what? Let’s cooperate! Put the customer’s interests first, not your own commission” is pretty much useless. A manager’s exhortation to cooperate is a short term high frequency “push” but it will be just as ineffective as trying to start your golf swing with your hands, or trying to push a swing with all your might when your kid is swinging toward you at top speed. If the cultural milieu is cut-throat, the manager’s statement will not be sufficient to change that culture. What the sales people will do is make sure that they have a semi-plausible story ready about how stealing someone else’s commission was really best for the customer. 

group of people raising right hand

Photo by rawpixel.com on Pexels.com

On the other hand, imagine instead that sales people have shared commissions for years and that the company takes many steps to build social capital and cooperation among everyone on the sales force. Now, the manager may do something publicly to praise an actual instance of cooperation. It doesn’t have to be heavy-handed or over the top. It is a gentle push that adds energy to what people are already doing. This is akin to adding the hands to a good golf swing or adding your swing push just as your kid begins to descend. 

Don’t get me wrong. If your house is on fire, you should leave. Grab your kids and pets but don’t bother with last weeks losing lottery tickets. 

But — you also need to understand why your house caught fire – perhaps faulty wiring – and why the fire was not immediately doused – e.g., your fire extinguishers are out of date. If you don’t fix underlying problems, your next house is likely to catch fire as well. 

If your culture is so materialistic and superficial that a blow-hard sleaze bag who seems to have great material wealth is celebrated no matter how he or she came by that wealth and fame, you may have to deal with the short term problem first, but unless you also deal with the underlying cultural, social, and economic problems, you’ll likely find yourself in precisely the same situation again. The same or other foreign enemies will attempt to exploit those same weaknesses again by finding a different celebrity with deep underlying character defects. Those enemies will push particularly hard during a crisis or an election and they will push particularly hard in the errant directions that society is already trending toward. 

The String’s the Thing Wherein We’ll Capture the Conscience of a King

Next time you have access to a piano, try the following experiment. Gently push down the C, E, and G keys above middle C. Keep them pressed down with your right hand and then strike middle C sharply with your left hand and let it go. What you will hear is that the strings of C major (C, E, G) will vibrate for quite a time after you release the middle C key. If instead, you gently push and hold down the D, F, and A keys above middle C, you will hear very little sound coming from them. Why? Because the harmonic resonance of  middle C is greater with the C, E, and G than it is the D, F and A keys. Similarly, some people will tend to “resonate” with certain messages more than others will. 

close up photo of person playing piano

Photo by Juan Pablo Arenas on Pexels.com

This is why, for example, Russian fake news that was meant to suppress the black vote carried false stories to indicate Democratic candidates didn’t care about the “Black Lives Matter” movement, while false stories about how Democratic candidates don’t care about gay rights were targeted toward the LGBTQ community. Of course, even putting Russian election interference aside, candidates typically target their messages to those that will “resonate” with particular voters. For instance, a candidate who believes in an isolationist foreign policy, forgiving student loans, low estate taxes, and better benefits for veterans might focus a speech to a group of veterans on their desire to see better benefits for veterans.  The same politician, when speaking to college students, will tend to focus on forgiving student loans. That has been “business as usual” for my entire adult life. What was really new to me in 2108 was this: an entire raft of Republican candidates promoted the idea that they were concerned about making sure that insurance companies covered pre-existing conditions. In fact, they had always voted against it and were suing to make this provision of Obamacare illegal. 

Prior to the existence of lying news networks and fake web sites who would echo such lies, politicians of either party would be reluctant to employ blatant lying about their positions because, even putting ethics aside, they would be easily discovered. However, if some of their constituents only believe fake news networks, then such politicians feel that they can lie with impunity The news presented on such networks resonates with what the lying politicians say and resonates with what those viewers want to hear and believe about the people toward whom they are already favorably disposed.

person woman music musician

Photo by Skitterphoto on Pexels.com

Resonance and the Overly Long Time                                                     Lag.

While managing a research project on the psychology of aging at Harvard Med School, I lived in a suburb called Woburn. This rented house had a hot water heating system, and at some point, during a particularly bitter cold New England winter, the furnace stopped working. I could have called in a professional, but instead, I tried to fix it myself. As a part of this system, there was a small gauge that looked a lot like the gauges in a level, but this one was upright and generally half filled with water. I noticed that now, instead of being half filled with water, it was only about 1/10 filled with water. I didn’t exactly understand why this could be problematic but the instructions said it should be half filled with water and there was a valve to let more water in. So, slowly and cautiously, I opened the valve. Nothing happened. I opened it a bit more. Nothing happened. I opened it a bit more. Nothing. I was about to give up and call a repair person. All at once, the little vial began to fill. Yay, me! I turned the valve off because the instructions also said the gauge should not be overfilled. But it kept filling. And filling. Damn! I made sure the valve was closed tightly. It kept filling anyway! Double damn! The gauge exploded! I had been the victim of — well hubris, of course, because I thought I could figure it out — but also a victim of delayed feedback. When feedback is delayed, all sorts of havoc can ensue. 

photography of green and red fire works display

Photo by Anna-Louise on Pexels.com

You may have experienced a similar time lag issue with hotel showers. You turn up the hot water and the shower water stays cold. You turn it up more. It stays cold. You turn it up more and it still stays cold. And then…all at once you’re being boiled to death in your own shower and you begin wondering who will find the naked body. 

Back in the early days of using LOTUS NOTES, there was a button on my screen that said, “REPLICATE.” And if I clicked on that button, a replication process would start. (Basically, it was downloading my email from the server to my ThinkPad). But sometimes, the mouse click did not register. This might not be a giant issue. In other cases, I would simply click again and this worked for most applications. But in this case, NOTES put up another button, in the same exact spot as the REPLICATE button, that said, “STOP REPLICATION.” The State of the Replication Process, however, was not accurately reflected by the State of the Button on the screen! This was endlessly annoying and could easily have been avoided. There was plenty of screen real estate to put a “REPLICATE” button along side the “STOP REPLICATION” button. Once connection speeds were faster and the computational facilities themselves were faster, this UX issue ceased to be an issue because there was no noticeable time lag between the state of the process and the state of the button. 

man holding remote control

Photo by JESHOOTS.com on Pexels.com

However, I still run into similar issues with Cable TV remotes. Do you? The time lags associated with clicking something on the remote and something happening on the screen is so long, that you begin to wonder whether the battery has gone dead or whether it is aimed wrong or whether the button was not fully depressed. Indeed, I sometimes wonder whether the entire system is truly electronic. I have begun to believe that the button press actually sends an ultrasonic dog whistle to a pack of hungry weasels who hear the whistle. To them, it’s a signal that they are about to be fed. They begin scampering in unseen cages toward their food dishes. The scampering of their feet is picked up by sensors under the floors of the cages. These sensors cause dials to change in a control room staffed by retired school janitors who push a series of buttons that change the channel or the input designation or turn on captioning, but only after they finish the New York Times crossword puzzle they are working on. Then, and only then, does the desired action take place. But if and only if you’ve been patient enough not to hit the button a second time. 

adult audio concert control panel

Photo by Roman Pohorecki on Pexels.com

Of course, if you are the user in this scenario, there is a fix. Push the button once and only once. Now, go outside and run around the neighborhood for fifteen minutes before interacting a second time with the remote. Sure, it takes a long time to get to your program but you’ll be in much better shape after just a few months of this regimen. 

On the other hand, if you are the designer of such systems, you might consider that it would be less expensive in the long run to replace the ultrasonic dog whistles, the weasels and the retired janitors with an actual system of electronics which, after all, is supposed to run at nearly the speed of light.

landscape photography of field with wind mill with rainbow

Photo by Paweł Fijałkowski on Pexels.com

The Takeaway

In comedy, timing, as in life, and UX design, and pushing your kid on the swing, and your golf swing, and social interventions, and election interference, and human short term memory limitations, is everything. 

—————————-

Author Page on Amazon. 

Metaphors We Live By and Die By

12 Wednesday Dec 2018

Posted by petersironwood in America, family, management, psychology, Uncategorized

≈ 5 Comments

Tags

Democracy, elections, Feedback, government, life, metaphor, politics, programming, thinking

Metaphors We Live By and Die By

PicturesfromiPhone2 087

I love metaphors.I always have. I admit it. I think youngster does, at least until they are exposed to poetry in English class. I was lucky to have an awesome English teacher who deepened rather than destroyed my natural love of metaphors. There are plenty in my own poems.  but in this post, I am not focusing on metaphors for poetry so much as metaphors that we use in our thinking. Metaphors impact the way we approach situations at work and at home. I was influenced to see this by two main sources. First, Lakoff & Johnson’s book, Metaphors we Live By  was first published in 1980. This book greatly influenced, among other things, our IBM Research team’s study of human-computer interaction. At this point in the history of human-computer interaction and user experience, researchers and practitioners began to explore how various metaphors (e.g.,desktop, trash can, windows, drag and drop) could be used to help users understand the capabilities of computers and how to invoke them. (See, e.g., Carroll, J. and Thomas, J.C. (1982). Metaphor and the cognitive representation of computer systems. IEEE Transactions on Man, Systems, and Cybernetics., SMC-12 (2), pp. 107-116). 

Consider the error messages “Illegal Syntax” and “User Error.” They both put the responsibility for an undesirable state of affairs squarely on the shoulders of the user. “Hey you! User! You did something dastardly! You used illegal syntax.”

man wearing jacket and peaked cap grayscale photo

Photo by Brett Sayles on Pexels.com

Generally, the term “illegal” implies that you did something that was against the law. It usually implies you did something unethical too. Gerry Weinberg, one of the pioneers of UX/HCI (a keynote speaker at the Gaithersburg Conference),  pointed out that the “legal” syntax of languages often has arbitrary restrictions. It might be more accurate to have an error message that says, “Our programmers were unable to take the time to allow dates to be entered in European or Chinese format. Please enter dates as MM/DD/YYYY as in 08/04/1961 for August 4th, 1961.” This longer message tells the user what was “wrong” with their input and how to correct it as well as conveying the very real truth that the limitation is with the software, not with the user. Similarly, what is called “User Error” actually comes up as a message when the user does something that seemed reasonable to the user and would most likely be interpretable by another human being but was not anticipated or could not be dealt with by the programming team. Suppose it said instead, “Software error. We did not anticipate this kind of input so we can’t deal with it.” Or, in many cases, a more honest message might be: “Software error. We knew people would want to do this, but we didn’t have budget to program properly.”  

silver and gold coins

Photo by Pixabay on Pexels.com

 At the same time I was thinking about metaphors and Human Factors in Computing Systems, I was also conducting therapy as a Fellow at the Institute for Rational Living. I was learning and supervising cognitive behavioral therapy under the direction of Albert Ellis. Here I observed how people used metaphors to help make sense of their lives and make decisions about their lives. For example, as pointed out by Lakoff & Johnson, people often viewed romantic love as a sickness! It is also common to view romantic love as a journey over which you have little or no control. It is understandable why it sometimes feels that way, but such a metaphor is not empowering. It does little to lead you to make reasonable decisions about love or about those whom you love. Think instead of love as a collaborative work of art. 

man standing beside his wife teaching their child how to ride bicycle

Photo by Agung Pandit Wiguna on Pexels.com

The “Love is a collaborative work of art” metaphor encourages you to realize that you must collaborate with your partner to make a relationship work over time. You can’t really collaborate very well unless you communicate. It also encourages you to realize that work is involved. It encourages you to realize that it is a creative endeavor. While you can certainly learn from the successes and mistakes of others, in the end, your relationship is unique. It will take creativity to make your relationship work. It puts the responsibility for the relationship on you and your partner, not on forces beyond your control. 

It isn’t only love about which people often use inappropriate metaphors. For example, when it comes to overcoming addiction, overeating, under-exercising, people often use sin as their over-arching metaphor. “I was bad last night. I had two pieces of pumpkin pie.” “I was horrible all week. I had those evil donuts every morning.” The metaphor that “eating is evil” is inaccurate. After all, you have to eat to live. Furthermore, that metaphor doesn’t lead to any solutions except to try harder to be “good.” Worse than that, if often subverts a person’s efforts. “I didn’t want to have any ice cream but I did. Oh, well, the night is blown. I may as well eat the whole quart.” (Now that I’ve sinned, I may as well enjoy it). Weight is best thought of in purely physical terms. If you ingest more calories than you burn you will gain weight. If you burn more calories than you consume, you will lose weight. That’s it! That’s all there is. Making it about good and evil does not help and, in my experience, is completely counter-productive. 

donuts and bagel display

Photo by Igor Ovsyannykov on Pexels.com

Speaking of counter-productive metaphors, I have been annoyed and concerned for decades that the media have largely (though not wholly) reported on political matters as they report on sporting events. During election season, you will hear relatively little about the candidates, their positions, their backgrounds or their ethics. You will hear a lot about strategy and where they stand in the polls. Often you will literally hear nothing more than a sound bite per day about major candidates. Then, pundits will unendingly discuss and debate how this or that sound bite will work or not work with various voter groups. No matter how outrageous, unethical, or disgusting a candidate’s behavior is, the media will spend most of their coverage on how it will affect the “score.”

Metaphors have consequences. 

We now find ourselves in an extremely weird position, at least in America. One candidate has “won” the “World Series” of elections (American Presidency). Many of the people who voted for him think of themselves as his “fans” and “supporters.” They believe their guy “won” so they want to continue to support “their team.” After all, imagine that you are a Yankees fan and the Yankees won the World Series. You get to have bragging rights until the next World Series. If one of the Yankees turns out to be a tax evader, you’re still going to be a Yankees fan. If one of the Yankee pitchers turns out to have cheated during the games, say, by putting illegal substances on the baseball, you’ll still be a Yankees fan. Another Yankee might be a wife beater. But, hey, they won the World Series! So you’re still a loyal Yankees fan. 

man wearing new york yankees cap

Photo by Oleksandr Pidvalnyi on Pexels.com

Here’s the thing. It doesn’t make a whole lot of real difference in your life who won the World Series. It doesn’t matter materially to your kids. It doesn’t matter materially to your grandkids. Don’t get me wrong. It will make some difference in how you feel. You and your whole family might be happy they won. But it won’t make the air you breathe cleaner or dirtier. It won’t make the water you and your family drink pure or contaminated with carcinogenic toxins. It won’t make or break the economy. Having the Yankees or Boston Red Sox win the World Series will have zero impact on global climate change. Even if Chicago wins the World Series, it won’t start an atomic war. If the Phillies win, it won’t mean you will lose your health care. Stay loyal to those Yankees! Or to the Green Bay Packers. Or to Manchester United. Or to the India National Cricket Team. Or whoever your favorite team is. Why not? 

Politics though, regardless of how it is reported by the news media, is vastly and vitally different from a sporting event!  Who is in office can have a huge influence on what happens in the lives of people. In the case of an American President, who is in office can have a huge influence on the lives of people around the globe, not only today and tomorrow, but also for decades to come. 

white and grey voting day sign

Photo by Element5 Digital on Pexels.com

Collectively, those Americans who voted (about 137.5 million) in the last Presidential election hired someone for a job. (Actually, nearly 63 million voted to hire him while nearly 66 million voted to hire Hilary Clinton). POTUS is an important job and how that person does that job impacts your life in a very real way. It impacts the lives of your friends and your family. It impacts the lives of people around the world. Every action that person takes, every speech they give, every statement they tweet has an impact. You or I might send out a nasty tweet about people. But our nasty tweets are very unlikely to cause someone to construct and send pipe bombs to the people we tweeted about. We have hired someone to do a very important job. It isn’t a sporting event.

IMG_2349

Imagine instead of rooting for your favorite sports team that you hired a guy to take care of your kids. To you, that is certainly an important job. After you hire him, you discover that the person you hired lied to get the job. He lies to you every single day. He steals from you! Not only that. Every day, he trashes your house a little more. He has parties at your house and the people he invites include known criminals. Worst of all, this guy you hired is a child molester! That’s obviously a nightmare scenario. What makes it worse is that many people knew that the person you hired was a crook and a child molester. 

What do you do when there is a mountain of evidence that he is lying to you; stealing from you; trashing your house; consorting with known criminals; and is a child molester? 

IMG_9150
IMG_3123

Do you keep him on to watch your kids anyway out of a sense of loyalty? 

Do you feel so guilty about hiring him that you insist to all your friends and relatives that this guy is doing a great job? (Because, after all, that’s what he keeps saying). 

Do you keep him on until he is convicted in a court of law? 

Of course you don’t! You fire him immediately. 

You have the power to choose the metaphors you use. You don’t have to stick with a metaphor just because it was the first one to occur to you. 

Metaphors have consequences. Whether in your personal life, work life, or political life, choose your metaphors with care. Don’t latch on to one simply because it’s the one the mainstream media discovered rakes in the most ad revenue.

IMG_5126

Author Page on Amazon

 Representation 

11 Tuesday Dec 2018

Posted by petersironwood in America, management, psychology

≈ 3 Comments

Tags

Business, Design, Dictatorship, Feedback, measurement, politics, programming, Representation, science, symbol, testing, truth

 Representation 

“Choose your words carefully.” We have all heard that advice. It’s good advice and choosing a good representation is key to solving problems, but the general point extends beyond choosing words. Take a few moments now to divide DCXXXV by IX without translating to Arabic numerals. Go ahead. I’ll wait. 

PicturesfromiPhone 080

Choosing the “best” representation for a problem depends on the nature of the problem but it also depends on your own skills and experience with a representation. If you have memorized the multiplication tables up to 99 x 99 (rather than only up to 9 x 9), you can use different techniques for multiplication than if you haven’t. If you already know how to program in FORTRAN and LISP, some algorithms will be easier to program in FORTRAN and some will be easier in LISP. But if the only language you know is R, then under most circumstances, it will be far faster and less error prone to use R than to learn another language and then use that one. 

Every representation of a real-world situation will necessarily make some features of the situation obvious and other features will be hidden or less obvious. An elevator, for instance, might say, “Capacity: 12 people.” If all of the people are wildly obese, then 12 may not fit into the elevator. The capacity sign is assuming that the people will be somewhat average. If there are 12 adults in the elevator, and one of them is holding a newborn, it won’t make much difference. If there are only 10 people in the elevator and each one has a large suitcase full of gold bullion, there may be room for all 10 to stand, but the total weight of the cargo may exceed the capacity of the elevators, snap the cable, and plummet you to your death. Remember that the next time you get on an elevator filled with folks who have suitcases of gold bullion. 

bullion gold gold bars golden

Photo by Pixabay on Pexels.com

Every representation has its limitations. If you’re familiar with a field, you will hopefully learn to recognize what those limitations are. In a famous book, The Mythical Man-Month, (still worth reading, though it should be called “Person-Month”), Fred Brooks shows that such a metric as “man-month” or “person-month” has serious limitations in planning and executing software projects. Some have paraphrased his message this way: “You can’t use nine women to make one baby in one month.” According to Brooks, who had plenty of experience as a high level manager of large software projects, when management finds that a software project is behind schedule (which is quite often), there are two major reactions of management: 1) require more measurements, reports, and presentations to management and 2) hire more people. 

batch books document education

Photo by Pixabay on Pexels.com

The issue with reaction 1 is partly that it takes time away from the managers and workers in order to make those measurements, prepare those reports and presentations, and to attend the meetings. Beyond that, it puts the focus of attention on those measurements (representations) which will only be at best, modestly correlated with what the real problems are. If, for instance, requirements keep changing, or there are incompatibilities in the requirements, measuring lines of code produced is not only useless in itself; it keeps people from tackling the hard problem. A solution to a hard problem might be telling the client that there can be no more changes in requirements. A solution to a hard problem might be resolving the incompatibility in requirements. One can count lines of code pretty easily. One can count other things like “function points” with a little more work but it doesn’t require getting into the “hard” and people-oriented problems that really need to be solved. 

fullsizeoutput_12f8

Reaction 2 – adding more people – will put more “resources” on the project. You can easily count the people. You can easily count the hours they work. The problem is that a person-hour is, like the elevator capacity, an over-simplified metric. In fact, it is a much worse representation of the resources on the project than the elevator metric. First of all, studies show that even among programmers with equal training, there are often ten-fold differences in productivity. The second, and even bigger issue is that even really productive programmers who are added late to a project will have to learn about the project: the people, the requirements, and the code base. If these new people are stolen from an existing project, that will also put that project in jeopardy as well. If they are instead new hires, then in addition to all the technical knowledge that they need to come up to speed on, they will also have to learn all sorts of administrivia that will take time and brain space away from the project: how to commute to work, where the cafeteria is, how to fill out time cards. Most likely, they’ll have to attend ethics training, and diversity training, and safety training. Even worse, a lot of the knowledge that they will need to become a productive member of the team mainly exists in the heads of the very people who are doing the programming now! This means that the busiest, most productive people on the project will have to take time away from programming to spend it instead on answering questions that the new people will have. 

Even this understated the real impact however. Let’s look at that phrase I just used, “…will have to take time away from programming to spend it instead…” What hidden assumption about representation is buried in this phrase? It gets the reader to think along the lines that time is additive. If I am deeply involved in programming and I get an IM or phone call from a newbie asking me a question about the project, it might take an hour to answer. Does that mean I have subtracted an hour from my own productive programming? No. It’s probably much worse than that. Why? Because I am not a machine, but a human being. It will cost me much more than the hour to get back to the same state of flow that I was in when I was interrupted. 

I was involved for a time in looking at programmer productivity for high performance computing  using various tools and the X programming language. One of the people I interviewed put it this way: “My manager calls for an hour meeting for 10 am when I am in the middle of a complex [parallel programming] problem. He thinks he’s taken an hour of my time. For him it’s an hour long meeting. But for me, he’s really destroyed the whole morning.”  

fullsizeoutput_1163

These representational issues apply far beyond software development. For example, in the USA and in many other countries, we look at GDP as a measure of the economic productivity of the country. But how does this metric shape — or distort — our view of productivity? If a parent stays home with small children and they both love the time together, and the parent uses that time to help grow a loving, educated, productive citizen, it adds to the well-being of the country as well as that child and that parent and that family. But GDP? Nada. If instead, the parent paid money to put the child in mediocre day care, that would add to the GDP. 

man and woman holding wine glasses

Photo by rawpixel.com on Pexels.com

Similarly, if I go to the grocery and buy a hard, tasteless tomato for myself, I will pay for the growing of that tomato, advertising it, shipping it, warehousing it, displaying it, and for the genetic alterations so that the tomato, while tasteless, is easy to transport without spoiling. Yay me! I have added to the GDP. But if I go to a friend’s house and taste a wonderful tomato, ask for some seeds or a cutting and grow my own heirloom tomato, watering it lovingly with rainwater, weeding around it, and fertilizing it with compost, I have added zero to the GDP. Yet, the tomato will give me more pleasure, not less, than the croquet balls they have in the store. 

Representation is a good thing! Humans use symbolic thinking to do many things that would be difficult or impossible without these kinds of representations. But we must remember the limitations and not confuse reality with our representations of reality. 

This is not a new phenomenon. In the American Revolutionary War, high ranking British military officers could not understand why the British navy “refused” to navigate their warships up the Bronx River to attack revolutionary positions upriver. If you’ve ever seen the Bronx River, you’ll realize why immediately. But the maps that the British brass looked at showed a navigable river! 

river inside forest near brown leaf trees

Photo by Nashwan guherzi on Pexels.com

Yes, we need to use representation in our thinking. But we also need to think about our representations. You cannot assume that the one that is customarily used is “right” in all circumstances. People of different backgrounds and cultures will often use somewhat different representations of a problem or situation. (This is one of the advantages of diversity). However you do it, it’s worth questioning whether the way you are representing a situation or problem is optimal, or even adequate, for the problem at hand. 

Suppose you are measuring “number of user errors” that users make while using a prototype text editor. You move from prototype A which averaged 10 user errors per half hour test to prototype B which only averages 5 user errors per half hour. Yay! You’ve cut user errors in half! But what if the errors you eliminated were all fairly trivial; e.g., people with version A couldn’t figure out how to number their footnotes with Roman numerals instead of Arabic. In version B, that error, along with other trivial errors, was eliminated. But one of the new errors causes the system to crash and all the user’s work to be lost. Have you really made progress? 

All errors are not alike. All dollars are not alike. All people are not alike. Not even all tomatoes are equivalent. We constantly over-simplify and yet in some cases it’s necessary in order to deal with complexity. I don’t see how all such errors can be avoided. But it’s crucial for everyone, but especially for managers and executives, to be open to the cases where the representation that is being used has become counter-productive rather than “doubling down” on such errors. Finding and fixing errors of representation are generally harder to diagnose and fix than errors made with a representation. That is all the more reason why everyone, but especially leaders, must be open to changing the way issues are represented. 

IMG_9627

It is no accident that dictatorships generally result in nations wherein people have both less material wealth and less enjoyment and freedom. A dictator typically refuses to admit mistakes and fix them even if it means murdering someone to make the problem appear to go away. Ultimately, this process ruins any organization. Such a person need not be a national leader. They can be a company manager, a coach, a corporate executive, or a parent. Everyone makes errors, including errors of representation. But a reasonable person is open to fixing it when new information becomes available. You can be like that too. 

sunset beach people sunrise

Photo by Pixabay on Pexels.com

———————————-

Author Page on Amazon

————————————

 

   

Buggy Whips to Fingertips

26 Thursday Jul 2018

Posted by petersironwood in America, management, psychology, Uncategorized

≈ 1 Comment

Tags

computers, Democracy, Dictatorship, experiment, Feedback, HCI, human factors, Human-Computer Interaction, politics, programming, UX

three women and two men watching on laptop computer on table

Photo by rawpixel.com on Pexels.com

My degrees are in psychology.  I have also been fascinated by computers. One main reason I went into HCI/UX/Human Factors was that I saw computers as devices that would amplify collective human intelligence. Thereby, with a mixture of people and computers, we would be able to solve such complex problems as world hunger, overpopulation, disease, global climate change, wars, and so on. I definitely saw myself as most interested in the people side though I thought comparing and contrasting computers and people shed new light on the people side. If you only have one type of computational mechanism; viz., us, then it’s hard to know how much of what happens in trying to solve a problem is because of our common human heritage and hardware and how much is intrinsic to the problem. 

This interest in the novel light that computing could shine on human intellect was what initially drew me to computers, but I later saw them as fascinating in their own right as well as being extremely important tools for a psychologist. For example, I used a PDP-8 to run experiments on the psychology of aging and to analyze the data. Only when I joined IBM did I begin to change my focus from how computers could be useful tools for psychologists, but how psychology could be useful tools for improving computers (or at least the actual performance of the computer in doing useful work when used by a person). 

IMG_5190

Although I took a number of programming courses, I only ever became an amateur programmer. My main method for programming some task was to think about how I would do it and then step by step, make the computer do it. This process has many limitations, a few of which are obvious even to me. For example, when doing my dissertation work, I had the computer register the time whenever any one of five subjects made a response. While sitting in the computer room (while the subjects were in their booths), I was sitting and reading something while the disk kept buzzing next to me: Bz-b-bz-bz. Bz-b-bz-bz. Bz-b-bz-bz. 

fullsizeoutput_139d

I had used my “What would John do?” method of programming. If I saw a long number and had to go write it down, I would want to do it immediately, and then be ready for the next number. But this was insane for the computer! The computer could “remember” hundreds of these numbers and then write them out to the disk en masse. Anyone who had gone through even an introductory programming course would approach the problem differently than I had — at least until the computer used its disk buzzing to wake me up to its modus operandi which are really quite different from mine. 

Like every other human, I make mistakes all the time in every sort of endeavor. For example, I like to play tennis and I like to hit a serve that’s hard to return. So, I am typically trying to serve to a particular spot. I’m not dead on accurate. I might miss long or wide by a couple inches or hit the net. But I will not (or at least haven’t yet) turned around and sailed the ball out of the court behind me. Nor have I ever yet struck the ball straight down at my feet. Nor, have I tossed the ball sideways into the screen and then swung anyway (!), and accidentally let go and flung the racquet across the net. But if you have ever programmed a computer, you know any of these behaviors might be possible based on the slightest error you can imagine. 

IMG_3394

It is ironic because most people think people are unreliable while computer are reliable. Well, it’s not that simple. Most people are pretty reliable most of the time and especially when they are acting within their bailiwick. Yes, they slip up and make mistakes but they are usually (not always) both understandable and fixable. A computer can do anything. The hardware is typically reliable but can still fail. Much more likely is that there are differences between what the programmer thought she or he was telling the computer and what the programmer actually told it to do. But wait! There’s more! Even more likely is that the intent of the programmer solves only a small part of the overall problem, solves the wrong problem, or actually makes the situation worse. That is not — or at least not solely — the fault of the programmer (more likely, the fault of an entire bureaucratic process). 

This kind of weird and catastrophic error appeared in the program that ran my dissertation experiment at Michigan. Worse, it was a different weird and catastrophic error that appeared every time I ran the program! Often, the program would run correctly for five minutes or fifty minutes and then – BANG – unrecoverable error. 

active ash cloud ashes blaze

Photo by Pixabay on Pexels.com

The program was in FORTRAN 2. Someone had added some useful macro functions for doing experiments. For instance, there were a number of initializations for the displays. We had five displays so these functions all had the form FUNCTION1(2) which applied the function1 to the second display. To make it even more convenient, if you wanted to do the same thing to all five displays (which was always the case for me), you could simply pass it the argument (7) and the macro code would apply it to all five displays. So, I had a list of about 5-6 commands of that form: Function1(7), Function2(7), Function3(7) etc. Having initialized the displays, the next thing on my agenda was to initialize the array that held the timing information. Since I wanted to do this for all five of the arrays, it seemed as easy as rolling off a cliff to use the (7) convention and thereby apply it to all five reaction time arrays. In more modern version of FORTRAN, they won’t allow you to do that (you will get a compile time error). But back when Joy to the World by Three Dog Night topped the charts, there was no error message at compile time. Secretly, of course, you just know that compiler was snickering as it thought: “Oh, you want to write some time stamp into the seventh element of a five element array? Fine. The customer is always right. Be my guest. Good luck with that.” This is the computer trying to “serve” and instead smashing the ball directly into the ground. 

Yet, keep in mind that there are some (not all) very rich and powerful people out there who sincerely wish that “people” could just be more like computers and do precisely as they’re told, always, and without question. And, when I say there are “people” they want to control like a computer, I mean you. That is exactly what they want. For you to do what they insist you do. They are about to get away with it – and if they do, there will be no Joy to the World – not for a very long time. Because if someone else lays out all the choices for you, you are not living your life at all. You are a tool in their life. 

IMG_5572

It isn’t even really a good system for them. Willing collaborations yield insights and creativity and productivity. It is precisely what has taken us from buggy whips to fingertips in an astoundingly short time. Society and technology and learning progressed at a snail’s pace in Medieval times. I don’t mean those really speedy thoroughbred racing snails either; I’m referring to the garden variety garden snail. A politician who has competition will want to show some sort of real progress. But a dictator? Maybe if they are particularly partial to scientific advancement or the fine arts, they might throw a few dollars that way. And some have. But many have not. What they typically put time, energy and thought into is war and the weapons of war. 

grayscale photo of explosion on the beach

Photo by Pixabay on Pexels.com

Now, instead of, or at least in addition to, having computers help provide a coordinating infrastructure of knowledge so that human beings can collaborate and solve more interesting problems as I had initially hoped a half century ago, computers and social media are being used to trick people into denying the validity of their own experience and existence. How do we debug this situation before it’s too late? I sometimes think that part of the problem is that we have tried to jam seven elements of serious social and technological change into an array that can only hold five elements. But maybe that’s irrelevant. What is relevant is that people are at their best when they are free to be people and at their worst when they are made to pretend that they are machines. 

IMG_5216

  

Subscribe

  • Entries (RSS)
  • Comments (RSS)

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • May 2015
  • January 2015
  • July 2014
  • January 2014
  • December 2013
  • November 2013

Categories

  • America
  • apocalypse
  • COVID-19
  • creativity
  • design rationale
  • driverless cars
  • family
  • fantasy
  • fiction
  • health
  • management
  • nature
  • pets
  • poetry
  • politics
  • psychology
  • satire
  • science
  • sports
  • story
  • The Singularity
  • Travel
  • Uncategorized
  • Veritas
  • Walkabout Diaries

Meta

  • Register
  • Log in

Blog at WordPress.com.

  • Follow Following
    • petersironwood
    • Join 648 other followers
    • Already have a WordPress.com account? Log in now.
    • petersironwood
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar
 

Loading Comments...