On People, Process, and Passion and Persistence

My boss back at Bell Atlantic, who became my friend and mentor, Pat Trongo, had the following quote from Peter Senge’s “The Fifth Discipline” on his cube wall in big bold letters.

I found it inspirational back then. But now I am blessed to see evidence of this pattern in life daily – Great teams committed to a purpose accomplish great things.

The committed person brings an energy, passion,
and excitement that cannot be generated if you
are only compliant, even genuinely compliant.

The committed person doesn’t play by the rules
of the game. He is responsible for the game.

If the rules of the game stand in the way of
achieving the vision, he will find ways to change
the rules.

A group of people truly committed to a common
vision is an awesome force.

They can accomplish the seemingly impossible.

I am as blown away by this as I am with the OccupyPhilly protest teamwork I saw today, as I am with my co-workers who are one of the greatest teams I’ve seen in my career.

Great teams are everything. They don’t just ‘happen’ and require investments in trust, empathy, accountability, honesty, and crazy foolishness to grow. And when you see them you can’t help but be in awe.

On ever growing complexity in programming: on systems

Edsger W. Dijkstra gave a lecture, in 1972, that has since been come to be called “The Humble Programmer”. It’s a short piece that explains why software development, why programming, was growing more, not less complex over time, and some inspiration to be found in the dealing with it. There’s some choice quotes in here that I’m going to include, but read the whole thing.

On LISP:

With a few very basic principles at its foundation, it has shown a remarkable stability. Besides that, LISP has been the carrier for a considerable number of in a sense our most sophisticated computer applications. LISP has jokingly been described as “the most intelligent way to misuse a computer”. I think that description a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.

Lets call it TDD before TDD was coined:

Today a usual technique is to make a program and then to test it. But: program testing can be a very effective way to show the presence of bugs, but is hopelessly inadequate for showing their absence. The only effective way to raise the confidence level of a program significantly is to give a convincing proof of its correctness. But one should not first make the program and then prove its correctness, because then the requirement of providing the proof would only increase the poor programmer’s burden. On the contrary: the programmer should let correctness proof and program grow hand in hand.

On decomposing systems:

It has been suggested that there is some kind of law of nature telling us that the amount of intellectual effort needed grows with the square of program length. But, thank goodness, no one has been able to prove this law. And this is because it need not be true. We all know that the only mental tool by means of which a very finite piece of reasoning can cover a myriad cases is called “abstraction”; as a result the effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer. In this connection it might be worth-while to point out that the purpose of abstracting is not to be vague, but to create a new semantic level in which one can be absolutely precise. Of course I have tried to find a fundamental cause that would prevent our abstraction mechanisms from being sufficiently effective. But no matter how hard I tried, I did not find such a cause. As a result I tend to the assumption —up till now not disproved by experience— that by suitable application of our powers of abstraction, the intellectual effort needed to conceive or to understand a program need not grow more than proportional to program length. But a by-product of these investigations may be of much greater practical significance, and is, in fact, the basis of my fourth argument. The by-product was the identification of a number of patterns of abstraction that play a vital role in the whole process of composing programs. Enough is now known about these patterns of abstraction that you could devote a lecture to about each of them.

On education:

As each serious revolution, it will provoke violent opposition and one can ask oneself where to expect the conservative forces trying to counteract such a development. I don’t expect them primarily in big business, not even in the computer business; I expect them rather in the educational institutions that provide today’s training and in those conservative groups of computer users that think their old programs so important that they don’t think it worth-while to rewrite and improve them. In this connection it is sad to observe that on many a university campus the choice of the central computing facility has too often been determined by the demands of a few established but expensive applications with a disregard of the question how many thousands of “small users” that are willing to write their own programs were going to suffer from this choice. Too often, for instance, high-energy physics seems to have blackmailed the scientific community with the price of its remaining experimental equipment. The easiest answer, of course, is a flat denial of the technical feasibility, but I am afraid that you need pretty strong arguments for that. No reassurance, alas, can be obtained from the remark that the intellectual ceiling of today’s average programmer will prevent the revolution from taking place: with others programming so much more effectively, he is liable to be edged out of the picture anyway.

There may also be political impediments. Even if we know how to educate tomorrow’s professional programmer, it is not certain that the society we are living in will allow us to do so. The first effect of teaching a methodology —rather than disseminating knowledge— is that of enhancing the capacities of the already capable, thus magnifying the difference in intelligence. In a society in which the educational system is used as an instrument for the establishment of a homogenized culture, in which the cream is prevented from rising to the top, the education of competent programmers could be politically impalatable.

On recognizing the difficulty, challenge, and opportunity:

Automatic computers have now been with us for a quarter of a century. They have had a great impact on our society in their capacity of tools, but in that capacity their influence will be but a ripple on the surface of our culture, compared with the much more profound influence they will have in their capacity of intellectual challenge without precedent in the cultural history of mankind. Hierarchical systems seem to have the property that something considered as an undivided entity on one level, is considered as a composite object on the next lower level of greater detail; as a result the natural grain of space or time that is applicable at each level decreases by an order of magnitude when we shift our attention from one level to the next lower one. We understand walls in terms of bricks, bricks in terms of crystals, crystals in terms of molecules etc. As a result the number of levels that can be distinguished meaningfully in a hierarchical system is kind of proportional to the logarithm of the ratio between the largest and the smallest grain, and therefore, unless this ratio is very large, we cannot expect many levels. In computer programming our basic building block has an associated time grain of less than a microsecond, but our program may take hours of computation time. I do not know of any other technology covering a ratio of 10/10 or more: the computer, by virtue of its fantastic speed, seems to be the first to provide us with an environment where highly hierarchical artefacts are both possible and necessary. This challenge, viz. the confrontation with the programming task, is so unique that this novel experience can teach us a lot about ourselves. It should deepen our understanding of the processes of design and creation, it should give us better control over the task of organizing our thoughts. If it did not do so, to my taste we should not deserve the computer at all!

It has already taught us a few lessons, and the one I have chosen to stress in this talk is the following. We shall do a much better programming job, provided that we approach the task with a full appreciation of its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmers.

On Making and Working Towards Big Things: on innovation

Wondering why we’re living in an age of ever increasing decreased expectations? You are not alone. Author Neal Stephenson wrote a thought provoking must read for World Policy Institute titled, “Innovation Starvation”:

The imperative to develop new technologies and implement them on a heroic scale no longer seems like the childish preoccupation of a few nerds with slide rules. It’s the only way for the human race to escape from its current predicaments. Too bad we’ve forgotten how to do it.

A Mathematician’s Lament: on education

Paul Lockhart wrote an accessible read on what is wrong with math education and the popular perception of math that is reinforced in culture that has been shared on the Web in quite a few corners. It deserves a wider read: “A Mathematician’s Lament”:

The art of proof has been replaced by a rigid step-by step pattern of uninspired formal deductions. The textbook presents a set of definitions, theorems, and proofs, the teacher copies them onto the blackboard, and the students copy them into their notebooks. They are then asked to mimic them in the exercises. Those that catch on to the pattern quickly are the “good” students.

The result is that the student becomes a passive participant in the creative act. Students are making statements to fit a preexisting proof-pattern, not because they mean them. They are being trained to ape arguments, not to intend them. So not only do they have no idea what their teacher is saying, they have no idea what they themselves are saying.

Even the traditional way in which definitions are presented is a lie. In an effort to create an illusion of “clarity” before embarking on the typical cascade of propositions and theorems, a set of definitions are provided so that statements and their proofs can be made as succinct as possible. On the surface this seems fairly innocuous; why not make some abbreviations so that things can be said more economically? The problem is that definitions matter. They come from aesthetic decisions about what distinctions you as an artist consider important. And they are problem-generated. To make a definition is to highlight and call attention to a feature or structural property. Historically this comes out of working on a problem, not as a prelude to it.

The point is you don’t start with definitions, you start with problems. Nobody ever had an idea of a number being “irrational” until Pythagoras attempted to measure the diagonal of a square and discovered that it could not be represented as a fraction. Definitions make sense when a point is reached in your argument which makes the distinction necessary. To make definitions without motivation is more likely to cause confusion.

Related:

Kevin Devlin: “Lockhart’s Lament – The Sequel”

Slashdot: “A Mathematician’s Lament — an Indictment of US Math Education”

G.H. Hardy:

A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.

Understanding the Maker Movement

YouTube: Maker Faire: “The Long Slow Make: Understanding the Maker Movement”:

“Anil Dash shares his observations and insights into the development of the Maker movement He sees it as a kind of political movement that is apolitical in nature but also radical and inclusive. This conversation with Anil and Dale Dougherty, founder of MAKE magazine and Maker Faire, touches on the social context of making, and what it means for individuals, families and communities. How will a “long, slow make” transform our society?”

Check out the post at Boing Boing: “Understanding Makers, a conversation with Anil Dash & Dale Dougherty” for more.

A few thoughts on Steve Jobs stepping down as Apple’s CEO

Apple is far more than the creation of one man. A casual scan of Folklore.org, a site focused on its history, will tell you that.

But so would Steve Jobs.

He’s created a culture at Apple that is going to go on long with out him.

A few reads about Jobs stood out for me today and I’d thought I’d share them here:

WSJ: Steve Jobs’s Best Quotes – as someone said on Twitter, you could avoid reading a few business/programming/design tomes and just absorb these and be better off.

His Stanford University commencement speech: ‘You’ve got to find what you love,’ Jobs says. He ties in his life history as an adopted child of working class parents, into his pursuit of his dream, the failures he encountered, and the lessons that he absorbed that made him stronger. There’s a bit about life, death, perspective and mission. It is worth reading in full. There are reasons it went viral. You can watch it on YouTube as well. But the text is best.

Anil Dash on “What they are ‘protecting’ us from” connecting Jobs liberal, working class background, with his success, and wondering why some are fighting the policies that enabled stories like Job’s to be possible.

You won’t find much Apple fandom here and I’m not going to wax poetic about Apple products, but in a way, for programmers of a certain age like myself, one of the leaders of the personal computing revolution is now walking off his most visible stage and we have much to be thankful for.

So thank you everyone at Apple, Pixar, and NeXT, and thank you Steve Jobs for providing inspiration, and the foundation for so many careers reflecting creativity, communication, and passion.

“Right Now”: On the present, being present, and practice (TEDXPhilly related)

1. Breathe.

2. Remind yourself: Whatever you are doing – right now – you are practicing.

3. Remind yourself: Whatever you practice – you are improving, you are building, you are growing.

4. Ask yourself: Is this what you want to improve, build or grow?

Do this a few times a day and I’m betting it will re-center you.

Things that compete for our attention are everywhere, I get distracted too easily myself, and I am doing this to retrain my focus when it drifts.

“Right Now” was the theme of last year’s TEDXPhilly. For some terrific thoughts on the theme see TEDXPhilly’s organizer (and so much more in the Philly region), Roz Duffy, and her post “here and now”.

This year’s theme is “The City”. It will be fantastic.

For more thoughts on “Right Now”, see Rahul Bijlani’s great essay, “You are not running out of time” and Umair Haque’s “The Builders’ Manifesto”.

The Web is 20

I’d like to say thank you to Tim Berners-Lee and all those who were part of making the Web happen.

The original announcement (where? on Usenet of course!)

W3C

Design Issues for the World Wide Web

World Wide Web Foundation

Weaving the Web

See also: Dan Gillmor’s thank you

Joy bigger than the universe, and sorrow for a lifetime

Absolute must read – Jennifer Lawler: “For Jessica”.

The latest: “A vigil for Jessica”:

Now, between the crisis and the catastrophe, you know you should lift a glass of champagne, but you have failed to lay in supplies yet again. Maybe next time you will remember.

Tonight there is just a long time till morning, and your lost saints can give no comfort. So you pick up your pen instead and you pin the terror to the page, and you hope it does not get loose. And a circle of women who have sat this vigil themselves seem to surround you, echoing back so many generations you cannot begin to count, and you know you are not alone, and you never have been, even in that hardest part before dawn.

(via Susie Madrak)

What is “Fast Fashion”, how it relates to big data, Facebook and us

Speed. Data. Lack of security. Encouraged anxiety. What makes a self-identity? And… fashion, clothing retailers and social media. n+1 has an interesting read in: The Accidental Bricoleurs:

…As the fast in fast fashion implies, the companies’ comparative advantage lies in speed, not brand recognition, garment durability, or reputable design. They have changed fashion from a garment making to an information business, optimizing their supply chains to implement design tweaks on the fly. Zara “can design, produce, and deliver a new garment and put it on display in its stores worldwide in a mere 15 days,”2 and this flow of information is by far the most significant thing the company produces, far more important than any piped pinafore, velveteen blazer or any of its other 40,000 yearly items. The company’s system of constant information monitoring allows it to quickly spot and sate trends and at the same time largely avoid overproduction boondoggles and the need for heavy discounting.

Unlike earlier generations of mass-market retailers, like the Gap’s family of brands (which includes, in ascending order of class cachet, Old Navy, Gap, and Banana Republic), companies like Zara and Forever 21 make no effort to stratify their offerings into class-signifying labels. They also don’t adopt branding strategies to affiliate with particular luxe or ironic lifestyles, à la Urban Outfitters or Abercrombie & Fitch. Instead they flatter consumers in a different way, immersing them in potential trends on a near weekly basis and trusting them to assemble styles in their own images. Clothes reach stores with practically unspoiled semiotic potential, and consumers are invited to be expressive rather than imitative with the goods, to participate more directly in fashion. We become the meaning makers, enchanting ordinary cardigans and anoraks with a symbolic significance that has only a tenuous relationship to the material item. We work in lieu of advertisers to reconfigure trends and remix signifiers, generating new and valuable meanings for goods. The more new clothes come in, the more creative we can be.

Fast-fashion retailers reap the fruits of that creativity by capturing our preferences in successive generations of products and nearly synchronizing to our whims. Thanks to the rich data we generate as we select, reject, and recombine the items fast fashion offers, the companies need not develop their own brands so much as seize upon customers’ ingenuity, distilling their choices into easily replicable trends and rushing the resulting products to market. If fashion functions like a language, then the fast-fashion firms are mainly interested controlling the underlying system and leave the meaning of the “words” to interchangeable designers and individual consumers. As long as customers are willing to speak fast fashion’s language, the companies aren’t particular about the specifics of the vocabulary. They are concerned only with the rate and volume of change.

…Like fast fashion, social media have brought with them a profusion of means and ways to reshape and display our identity. Constantly given new tools to share with, always prompted to say something new about ourselves (“What’s on your mind?” Facebook asks thoughtfully), we are pressured to continually devise ingenious solutions to our identity, which suddenly appears to be a particular kind of recurring problem: one that can be solved by replenishing social media’s various channels with fresh content. Just as fast fashion seeks to pressure shoppers with the urgency of now or never, social media hope to convince us that we always have something new and important to say—as long as we say it right away. And they are designed to make us feel anxious and left out if we don’t say it, as their interfaces favor the users who update frequently and tend to make less engaged users disappear. One can easily fall out of fashion with the algorithms Facebook uses to select which content users see out of the plethora of material friends in their network contribute.

…In social media, where everyone can employ design ideology, the persistent messages of advertising—that magical self-transformation through purchases is possible, that one’s inner truth can be expressed through the manipulation of well-worked surfaces—become practical rather than insulting. Not only do the methods and associative logic of advertising become more concretely useful, but its governing ideology no longer seems conformist but radically individualistic. Social media encourage us to appropriate whatever we want and claim it as our own without feeling derivative or slavishly imitative. On Facebook, if I link to, say, a YouTube video of Bob Dylan singing “I Threw It All Away” on the Johnny Cash Show in 1969, I am saying something particular about myself, not merely consuming the performance. I am declaring that video clip to be essentially equivalent to an update I may have written about a trip to Philadelphia or to pictures of me at a party that someone might have tagged. It is all bricolage for personal identity building.

It is a long, but thought provoking read. Go read it.

Related Metafilter thread: “The Total-Corporate State May Have Arrived”.