15 years ago a single mom whom we have long been close gave up on her17 year old daughter. Teenaged girls are tough, but Joey had her momtotally exasperated; the girl followed no rules, mouthed offconstantly, and made it nearly impossible for mom to take care of thetwo other kids. We offered to take Joey in, and obtained legalguardianship.
Alas, little did we know just how hard things could get. Joey, itturns out, was pregnant. Her mom snuck her out of our house for anabortion without our knowledge, and tried to slip her back in a fewhours later. Then her boyfriend slugged her. Later he broke her arm. Iwent to our lawyer to press charges, but Bob took me aside and said:”Look, in two weeks Joey will be feeling sorry for the boy and won't gothrough with the case.”
That was inconceivable to me and I told him we wanted justice. Turnsout Bob predicted her reaction perfectly, but as the parent-figure Ioverruled her immature sympathies and eventually the moron of aboyfriend served a year in jail.
Things went downhill from there.
A year later, at our wits end, we convinced her to join the AirForce. Today, Joey is the mother of three, happily married, still inthe service, and has shed all vestige of those long-ago problems. Themilitary saved her in a way we could not, by imposing a rigiddiscipline that brooked no transgressions, and that kept her doing theright things the right ways.
Then there's Jeremy, the 20 year old pal of my middle son. He's sobright I'm sometimes astonished by his insight into the nature oftechnology and science. Yet he dropped out of high school and onlyrecently, if he's to be believed (not always wise), has gotten a GED.
Also the product of a single-parent family, also more or lessabandoned by mom, Jeremy now drifts from crummy job to crummy job,doing lawn maintenance one week and automotive audio installations thenext.
Yet he has the soul of an engineer. Despite my repeated urgings,which he does take as coming from a friend rather than from a parentalfigure, he seems unable to start doing anything that might have somelong-term benefit.
When he expressed an interest in going to a community college Ioffered to write the checks. But the benefits of college are yearsaway, and his girlfriend wants attention today. The car payment was dueyesterday. And his pals are off having fun now why shouldn't he?
Famous author Ernest K. Gann in his fascinating autobiography AHostage to Fortune notes that writing was the hardest thing he everdid. At times, to ensure he stayed in the office focused on putting acertain number of words on paper each day, he'd literally tie himselfinto the chair! Gann succeeded because he used this and otherstrategies to discipline himself to do the right thing at the righttime. The Air Force did this for Joey, and I keep searching forsomething to help poor Jeremy find the same sort of success strategy.
After 12 years of Catholic education under nuns who wielded corporalpunishment with seemingly savage delight and rigorous Jesuits whose hadan unbending stance on, well, everything, I entered adulthood abhorringthe word “discipline.” Yet life's never-dull twists and turns haveconvinced me that discipline is indeed a critical component of gettinganything done in a consistent manner. Woody Allen said that 90% ofsuccess in life is just showing up. Too often even showing up — which Itake as a metaphor for being there and simply doing the right things -is more discipline than many can muster.
In software engineering discipline is even more important than inmost other professions. We build intricately complex systems which areinvisible; no one can “see under the hood” to get a sense of how wellthe system was constructed. Other kinds of engineers are heldaccountable by customers who can see that the system looks like junk.Not so with code. Only engineers who are highly disciplined canconsistently construct software of beauty that's well-behaved.
Discipline. It's not just for the Jesuits or the military. None ofus like it, but I think it's the most important tool in our arsenal.
Jack G. Ganssle is a lecturer and consultant on embeddeddevelopment issues. He conducts seminars on embedded systems and helpscompanies with their embedded challenges. Contact him at . His website is .
I think you have a point here. As an European I'm sometimes amazed by the quirks of the society in the US. The US lawyers and media seems to decide who's good and who's bad. If you try to enforce a rule with a youngster you may end up sued by a local social worker because phony allegations made by the youngster. I thought this is something happening only in talkshows and TV series, but not long ago this happened in our very own neighbourhood. Not so good way of things to be if one's goal is to maintain discipline. Even the military won't help anymore. There are growing percentage of youngsters dropping the service due to social and drug-related problems. Then what to do? Maybe we get what we deserve after abandoning the reason and replacing it with the law.
– Jussi V'nsk'
Excellent article! I've learned (in myself and in hiring staff) that discipline, commitment, desire to “?do a good job,” intent, whatever you chose to call it, is much more important than technical knowledge. With the discipline you can get the knowledge; without the discipline one can do very little.
I'd be interested in a follow-up, after you have some responses. I feel that the over-50s will agree with you . . . and suspect the under 40s may have a different view. Will be interesting to see.
– Jim Austin
University of Florida
Right on! This is the biggest challenge I've seen in SW development at several different companies. SW “engineers” cling to the myth that they practice an art, not a science and discipline will only slow down their creative juices. My experience managing teams in India has been just the opposite. They assume that there will be discipline, set methodology, reproducable and transferrable development. Sometimes I yearn to go back to the days of punch cards where a single compilation error could lose you a full day of development time (my jobs only compiled at night). That certainly made me think very carefully before I wrote one line of code.
– Nancy Blair
Wow! Jack, you hit the nail on the head! I know, because discipline in software development is my biggest challenge. In trying to look at this issue more-or-less objectively, I realize that the reasons why discipline suffers are mixed. Part is my own inherent laziness; part is the way in which I sometimes get overloaded and want to bang something out quickly to get going. Hopefully, I'll remember this article the next time I get tempted to “cheat”. Good article!
– Dave Telling
Mr. Gasket, Inc.
Carson City, NV
I always love how much of a columnist comes out in his columns. Thanks for this one.
There are 2 topics in this that I want to touch on.
One is religious/moral. People need discipline. We need to come to a real sense of self worth, through accomplishments and eventually being able to help others and fitting into the “great dance of life”. Otherwise we seek that sense of self in all the wrong places. Bad and broken families are a major source of this problem, as is our society in general.
Secondly, there's the technical issue. Here I have a beef – I think software especially needs to have widely accepted disciplines built into its tools! We're like the shoemaker's children who have no shoes! We build all sorts of checks and disciplines into our software for others, but reject it for ourselves. Compare good hardware tools to roughly equivalent software tools on your computer!
I really don't care how we develop, store or represent software in the future. It could be in yet another language or a more capable (graphical?) interface and/or storage medium (not just ascii!), but pure, raw discipline in our code creation won't cut it – it's an extra burden that we will shuck off or mess up at just the wrong moment!
This is why I like one idea behind Eiffel (Bertrand Meyer's OO language). It forces you to specify what's supposed to go into a function and what's supposed to come out. If that doesn't happen during execution, you have an error and you even know where!!! Writing those pre and post conditions is a pain, but might well be automateable in a good IDE, Think about it, when you plug your ICs together, you darn well know that the wiring better be correct, as well as the voltage and current levels. We add keys to cables and sockets so we don't plug them in the wrong way (been there, done that! :-), why not the same with software?
– Bob Pegram
I fear you've missed a trick. What is really required is SELF-discipline, in the end.
People tell me and my wife that we've done a pretty sound job of raising four daughters. Our principle was to make boundaries and stick to them. We didn't make them restrictive, just sensible. We actually had very few rules, and we *always* explained our reasons — “Because I say so” was not a phrase that was heard in our house. It was a pain, but nothing worth while comes for free.
And at the end of the day, we have four daughters that have way better self-discipline than I do — my upbringing was over-disciplined, so learnt self-disipline late.
Bottom line, I agree. Discipline is required, but to be truly effective it has to come from within, not be imposed from without.
– Paul Tiplady
Principal Software Engineer (and father of four)
Koblenz, Rheinland-Pfalz, Germany
I always enjoy your insightful and thought-provoking articles. I often struggle with motivation to keep going on long-term projects and this article hits home. Performing the daily tasks leading to a successful result requires discipline and the reminder is well taken.
– Howard Meyerson
Embedded Software Engineer
Varian Medical Systems
Palo Alto, CA
I code like I drive! Most days I'm weaving, speeding, cutting, and giving the finger — all just to get the car into the company parking lot by 8:01am. But when the cops are around, I obey all the rules!
Just joking… I agree we need some kind of standardization in sw enginnering. Lucky for us in Aerospace — we are bound to standards. Maybe the rest of the embedded community could take a few hints from the Aerospace Industry when it comes to standrards — we have no choice but to be disciplined!
– Steve King
In response to Jim about the over 50s and the under 40s. I am mid-20s. I follow the PSP and believe that the SW industry needs major improvement. I am working with our company to install discipline and process to the way we write code. It has been very well received by my co-workers, few of whom are over 30. In the overall population of yougins, I probably agree they do not want discipline. Those of us who were disciplined enough to get EE degrees and are writing firmware probably see it differently.
– Dexter Travis
East Peoria, IL
Embedded Systems and Software
It is a nice article, Jack. There should be discipline behind every activity we do.
My thought is if human beings would act like robots, doing things systematically and with discipline, not being carried by emotions, this world would be a better place to live in.
– Deenadayalan Purushothaman
“Imposed discipline is slavery, self-discipline, the only true freedom.”
– Juan Martinez
Staff Engineer Spec Test Equ
I agree with Mr. Tiplady. the self-discipline is what is important.
If outsiders (e.g. management) attempts to impose discipline, today, then tomorrow it could be gone because of external forces.
But self-discipline allows us to push back on the outside forces. You want it now, you can't have it because it isn't ready.
Combine self-discipline and goal setting and you can do almost anything.
I know, I went from not running to completing a marathon in 6 months and training others to run the marathon in a year.
– Bob Bailey
Arlington Heights, IL