Software Creativity 2.0
Text in black are quotes; text in green are my notes. I sometimes write in Spanish.
-
software also requires both discipline and creativity! #
-
Should software be built by teams that are disciplined and factory-like, or by teams that are flexible and highly self-motivated? #
-
Knowledge workers are the key to the future, not factory workers. The question is, what is the best way to organize and optimize teams of knowledge workers? #
-
Software productivity was higher when the developers set their own schedule as opposed to when they tried to meet one set by management. #
-
Software productivity was highest when there was no schedule for them to keep to at all. #
-
“Falutin’,” as in “high falutin’” and “low falutin’,” is a term he used for a variety of related things regarding the complexity of a problem and its solution. High falutin’ things, as the common ZU.S. slang usage of the term implies, are of somewhat high complexity and sophistication. Low falutin’ ones, by contrast, are rarely complex and fairly unsophisticated. #
-
“The name of the game,” Plauger says at one point is his discussion, “is congruence.” The techniques you employ had better be consistent with the intrinsic complexity of the problem you're trying to solve, #
-
“A large enough project,” says Plauger, “is primarily an exercise in management. The programming technology has only a minor effect on the outcome.” #
-
“The creative nature of the design process means that many aspects cannot be formalized ... at all. While formalization ... is a solution for more mechanical processes ... it is not feasible for design processes.” #
-
“For well understood domains ... formulas and statistical inference as the best knowledge representations; for other tasks, heuristics and cognitive models provide the greatest power.” #
-
One of the finest ironies I know is that people who are successful tend to fail more often that those who are not! #
-
“The engineer no less than the poet sees the faults in his creations, and he learns more from his mistakes and those of others than he does from all the masterpieces created by himself and his peers.” #
-
No matter how sensible that approach may seem at first thought, it is now all too often impossible to reconstruct existing software from scratch #
-
the predisposition to tolerating uncertainty is a crucial attitude for creative human thinking and problem-solving.” #
-
BIEGE is an acronym, and the principle goes like this: the Better Is the Enemy of the Good Enough. #
-
Complexity and ambiguity. They certainly characterize a lot of what our software field is all about. It is time we began accepting them, rather than trying to wish them away. #
-
The original productivity improvement that computers provided, in fact, was to the mathematician of that time. #
-
I call this the “Latin Syndrome.” Years ago, as the teaching of the language Latin began to slowly atrophy in the school systems of the world, there was a powerful argument that the skills one learned in acquiring competency in Latin were important to all other learning experiences. Latin lingered as a pedagogical topic far longer than its importance in the world might have argued simply because of this line of reasoning. And mathematics, I am saying, may be to computer science as Latin was to the rest of the disciplinary world of its day. #
-
Meanwhile, back to the original issue. Is its mathematical heritage important to computer science? The correct answer, I am afraid, is “far too much so.” #
-
“We have lost sight of the fact that engineering is an art ... We must bring the sense of art and excitement back into engineering. Talent, competence, and enthusiasm are qualities of people who can use tools; the lack of these characteristics usually results in people who cannot even be helped by techniques and tools.” #
-
Further empirical evidence [Woodfield 1979] shows that for every 25 percent increase in the complexity of a problem to be solved, there is a 100 percent increase in the complexity of the software required to solve it. #
-
In other words, informal practical thinking must precede—and proceed in tandem with—formal formulation of theory. #
-
“Students do not get the feedback that comes from having a product used, abused, rejected, and modified. This lack of feedback is very bad education.” #
-
Understanding is the answer to overcoming absurd local loyalties. It is also the answer to overcoming conflicting ethics. #
-
In the academic world, copying is wrong. In the industrial world, cutting and pasting from previous documents to make new ones is expeditious and wise. #
-
(Try selling a new concept to upper management on the basis of understanding alone, and you won't make that mistake more than once!) #
-
Everything in the workaday world of the academic moved him or her in the direction of talking and away from listening. #
-
There is, of course, a problem with this mindset. The mind that fails to listen rarely obtains new insight; and without insight, a mind can atrophy. And that, of course, is the worse possible thing that can happen to an academic. #
-
In other words, it is OK for industry people to focus on process, but never to the exclusion of product. And goal-oriented industry practitioners should never lose track of that fact. #
-
“reality is the murder of a beautiful theory by a gang of ugly facts” #
-
There's an old saying—theory without practice is sterile, practice without theory is blind. #
-
“A software process optimized for fun is only good when the tasks are small and the motivation for quality is based on an individual's insight. A software process optimized for phased compliance,” he goes on, “is only valid for firm and stable requirements. It fails when there is uncertainly regarding the requirements ... It also fails when the requirements are not stable. Thus both the natural intuitive approach and the managed response to it have proven to be poor models for controlling the software process.” #
-
Open Source programmers seem to build software largely for the fun of it. #
-
Why can't most of our projects be fun? I think the main reason is that we don't expect them to be. Since we don't expect the pleasure of working with motivated people with good attitudes, we don't work to create such projects. #
-
What is peculiar is that we talk openly about our technical problems and seek ways to solve them as a team devoted to project success and to one another's well being. When the latter is present, the former seems to follow. #
-
“Creativity is thinking up new things. Innovation is doing new things.” #
-
Humphrey goes on to add, “While innovation requires creativity, it also involves a great deal of hard work.” #
-
“persistent tendency of technical people to confine themselves to the laboratory and not to seek a detailed understanding of the user's needs” is one of the foremost reasons for research and development failure, #
-
many of Thomas Edison's 1100 inventions were produced late in his 84-year life.” #