-2000 Lines Of Code An Article by Andy Hertzfeld www.folklore.org Bill Atkinson...who was by far the most important Lisa implementor, thought that lines of code was a silly measure of software productivity. He thought his goal was to write as small and fast a program as possible, and that the lines of code metric only encouraged writing sloppy, bloated, broken code. ...He was just putting the finishing touches on the optimization when it was time to fill out the management form for the first time. When he got to the lines of code part, he thought about it for a second, and then wrote in the number: -2,000. I'm not sure how the managers reacted to that, but I do know that after a couple more weeks, they stopped asking Bill to fill out the form, and he gladly complied. The amount of work not done metricscodemanagementproductivity
Baumol’s cost disease Baumol's cost disease (or the Baumol effect) is the rise of salaries in jobs that have experienced no or low increase of labor productivity, in response to rising salaries in other jobs that have experienced higher labor productivity growth. The rise of wages in jobs without productivity gains derives from the requirement to compete for employees with jobs that have experienced gains and so can naturally pay higher salaries, just as classical economics predicts. For instance, if the retail sector pays its managers 19th-century-style salaries, the managers may decide to quit to get a job at an automobile factory, where salaries are higher because of high labor productivity. Thus, managers' salaries are increased not by labor productivity increases in the retail sector but by productivity and corresponding wage increases in other industries. Wikipedia en.wikipedia.org economicsproductivitywork
Parkinson's Law Work expands so as to fill the time available for its completion. Wikipedia en.wikipedia.org Hofstadter's Law worktimeproductivity
The urge to be done "Flow" is often a synonym for ignorance and laziness. It's also a sign of haste, the urge to be done. Verlyn Klinkenborg, Several Short Sentences About Writing productivity
The absent-minded professor There are three variants of procrastination, depending on what you do instead of working on something: you could work on (a) nothing, (b) something less important, or (c) something more important. That last type, I'd argue, is good procrastination. That's the "absent-minded professor," who forgets to shave, or eat, or even perhaps look where he's going while he's thinking about some interesting question. His mind is absent from the everyday world because it's hard at work in another. Paul Graham, Good and bad procrastination procrastinationproductivity
Always produce "Always produce" is also a heuristic for finding the work you love. If you subject yourself to that constraint, it will automatically push you away from things you think you're supposed to work on, toward things you actually like. "Always produce" will discover your life's work the way water, with the aid of gravity, finds the hole in your roof. Paul Graham, How to do what you love Flow interesting (The Meander) productivity
Background textures of work An Article by Lucy Keer lucykeer.com One thing I've been enjoying about working as a technical writer is that the minute-by-minute texture of the work feels right. Something about formatting text, faffing about with SVGs, trying to rewrite a sentence more clearly... it's just enjoyable in itself, and I feel at home with it. ...Working as a programmer was very much not like that. There's something in the rough vicinity of professional dev work that I do like, which I could probably label as 'iterative hobbyist tinkering with websites'. I like working on something with a strong visual component, and I like to be inside of a fast feedback loop, and I'm mostly interested in just somehow bodging through until it works. I'm not very interested in either the computer-sciencey side of programming — data structures, algorithms — or the software-engineerey side of making things run reliably at scale in a maintainable way. So maybe it's not surprising that the minute-by-minute texture of professional programming was just... kind of bad. Occasional fun bits when I got into something, but the background experience was not fun. workproductivitymaking
Efficiency is the Enemy An Article fs.blog Many of us have come to expect work to involve no slack time because of the negative way we perceive it. In a world of manic efficiency, slack often comes across as laziness or a lack of initiative. Without slack time, however, we know we won’t be able to get through new tasks straight away, and if someone insists we should, we have to drop whatever we were previously doing. One way or another, something gets delayed. The increase in busyness may well be futile. It’s Time to Embrace Slow Productivity efficiencyproductivitywork
It’s Time to Embrace Slow Productivity An Article by Cal Newport www.newyorker.com The central goal of Slow Productivity is to keep an individual worker’s volume at a sustainable level. A natural fear is that by reducing the amount of work each employee tackles at any given time, it might reduce the total amount of work an organization is able to complete, making it less competitive. This fear is unfounded. As argued, when an individual’s work volume increases, so does the accompanying overhead and stress, reducing both the time remaining to actually execute the tasks and the quality of the results. If you instead enable the individual to work more sequentially, focussing on a small number of things at a time, waiting until she is done before bringing on new obligations, the rate at which she completes tasks might actually increase. Efficiency is the Enemy productivity
Beyond 10× An Article by Matthew Ström matthewstrom.com Forget 10×. With a focus on outcomes and an eye towards the border between net-positive and net-negative work, any team can push their productivity beyond their previous limits. ...If you can perform one task better than most people, you might be a 10× designer or developer or product manager (or whatever you are). But if your team can find small ways to make many of their tasks net-positive, 10× is just the start. productivity
Touch the keys An Article by Rach Smith rachsmith.com In his course Being Productive: Simple Steps to Calm Focus, Kourosh Dini emphasises the importance of taking a moment to “be with” the work every day (or however frequently you need to tackle a project). “Being with” your work is to be fully present and intentional about that activity and doing nothing else. This idea was inspired by Dini’s piano teacher, who encouraged him to sit at his piano and touch the keys every day. Even on the days that he felt he had no time or inclination to practice. Sometimes touching the keys would lead to a good practice session, even when he didn’t feel like it would before he actually gave it a go. Just like Dini, I find that once I give the task my full attention and be present, the actual doing of it turns out to be much easier and more enjoyable than my mind had been expecting. As usual, the resistance to getting started is far more uncomfortable than actually doing the thing. To pick up my pen productivityworkcreativitypractice
Nobody gives a hoot about groupthink An Article by Baldur Bjarnason www.baldurbjarnason.com Two relatively common ‘fashions’ today are real-time collaboration and shared data repositories of one kind or another. Both increase productivity in the naive sense. We work more; everybody is more active; the group feels more cohesive. The downside is that they also both tend to reduce the quality of the work and increase busywork. On that of the highest authorityPersonal Information Management (PIM) productivitycollaborationinformation
The Design of Design A Book by Frederick P. Brooks, Jr. www.goodreads.com Design process models: A summary argumentThe spiral modelA grossly obese set of requirementsRequirements proliferationThe architectural contracting model+9 More Design System as Style Manual With Web Characteristics designsoftwarearchitecturemakingstyle
What's Wrong With This Model? A Chapter What's wrong with the rational modelDeciding what to designEvaluating goodnessChanging constraintsThey just don't work that way+1 More
Design process models: A summary argument A formal design process model is needed, to help organize design work, to aid communication in and about projects, and for teaching. Having a visual, geometric representation of a design process model is crucial, for designers are spatial thinkers. They will most easily learn, think about, share, and talk in terms of a model with a clear geometric picture. The Rational Model of design occurs naturally to engineers. The linear, step-by-step Rational Model is highly misleading. It does not reflect what real designers do, or what the best design thinkers identify as the essence of the design process. The bad model matters. It has led to the too-early binding of requirements, leading in turn to bloated products and schedule/budget/performance disasters. The Rational Model has persisted in practice despite its inadequacies and plenty of cogent critiques. This is because of its seductive logical simplicity, and because builders and clients needs “contracts." Several alternative models have been proposed. I find Boehm’s Spiral Model the most promising. We need to keep developing it.
The spiral model The spiral shape certainly suggests progress. It associates successive repetitions of the same activity. The geometric shape is easily understood and memorable. The model emphasizes prototyping, starting with user-interface prototypes and user testing long before an operational prototype is possible. Since a development model is principally used by developers, I believe having it designer-centered is entirely appropriate. With Boehm and against Denning and Dragon, I advocate frequent but not continuous interaction with representative users, with successive prototypes as the vehicles. I strongly believe that way forward is to embrace and develop the Spiral Model. design
A grossly obese set of requirements Who advocates in the requirements process for the product itself—its conceptual integrity, its efficiency, its economy, it’s robustness? Often, no one. As often, an architect or engineer who can offer only opinion based on taste and instinct, unbuttressed as yet by facts. For in a classical Waterfall Model product process, requirements are set before design is begun. The result, of course, is a grossly obese set of requirements, the union of many wish lists, assembled without constraints. Usually, the list is neither prioritized nor weighted. The social forces in the committee forbid the painful conflicts occasioned by even weighting, much less prioritizing. Requirements proliferationA Plea for Lean Software features
Requirements proliferation Any attempt to formulate all possible requirements at the start of a project will fail and would cause considerable delays. — Pahl and Beitz, Engineering Design As Project Manager, I had to reject the requirements document as totally impractical, and have a quite small team of architects, marketers, and implementers extract the essence. Requirements proliferation must be fought, by both birth control and infanticide. YagniA grossly obese set of requirementsFeatures and complexity features
The architectural contracting model It is the necessity for contracts, whether within an organization or between organizations, that forces the too-early binding of goals, requirements, constraints. The pressure for a complete and agreed-upon set of requirements run into the hard fact, that it is essentially impossible to specify any complete and accurate set of requirements for any complex system except in iterative interaction with the design process. How have the centuries-old building design disciplines handled this perplexity? Fundamentally, by a quite different contracting model. The client develops a program, not a specification, for the building. He contracts with an architect, usually on an hourly or percentage basis, for services, not for a specified product. The architect elicits from the client, the users, and other stakeholders a more complete program, which does not pretend to be a rigid contractable product specification. The architect does a conceptual design that approximates the reconciliation of program and the constraints of budget, schedule, and code. This serves as a first prototype, to be conceptually tested by the stakeholders. After iteration, the architect performs design development, often producing more detailed drawings, a 3-D scale model, mockups, and so on. After stakeholder iteration, the architect produces construction drawings and specifications. The client uses these drawings and specifications to enter into a fixed-price contract for the product. Notice how this long-evolved model separates the contract for design from the contract for construction. Even when both are performed by the same organization, this separation clarifies many things.
The rational model of design Engineers seem to have a clear, if usually implicit, model of the process of design. It is usually an orderly model of an orderly process as the engineer conceives it. The notion that the design process should be modeled as a systematic step-by-step process seems to have first developed in the German mechanical engineering community. Herbert Simon independently argues for design as a search process in The Sciences of the Artificial. He was motivated to lay out a strictly rational model of design precisely because such a model was a necessary precursor to automating design. His model remains influential even if today we recognize the "wicked problem" of original design as one of the least promising candidates for AI. In software engineering, Winston Royce independently introduced a seven-step Waterfall Model to bring order to the process. In fact, Royce introduced his waterfall as a straw man that he then argued against, but many people have cited and followed the straw man rather than his more sophisticated models. Even if ironically, Royce's seven-step model must be considered one of the foundational statements of the Rational Model of Design. Large combinatorial spacesThe ordering of steps
Design process models Any systematization of the design process is a great step forward compared to "Let's just start coding, or building." It: Provides clear steps for planning a design project Furnishes clearly definable milestones Suggests project organization and staffing Helps communication within the design team Is readily teachable to novices, and tells novices facing their first design assignments where to begin. The Rational Model in particular brings yet more advantages. The early explicit statement of goals, secondary desiderata, and constraints helps a team avoid wandering, and it breeds team unification on purposes. Planning the whole design process before starting coding or formal drawings avoids many troubles and much wasted effort. Casting the process as a systematic search of a design space broadens the horizon of the individual designers and lifts their eyes far beyond their previous personal experiences. But the rational model is much too simplistic, even in Simon's richly developed version.
The dual ladder The first task for growing designers, as opposed to managers, is to craft a proper career path for them, one whose compensation and sociological status reflect their true value to the creative enterprise. This is commonly called the dual ladder. It it easy to give corresponding salaries to corresponding rungs, but it requires strong proactive measures to give them equal prestige: equal offices, equal staff support, reverse-biased raises when duties change. Why does the dual ladder need special attention? Perhaps because managers, being human, are inherently inclined to consider their own tasks more difficult and important than design and need to deliberately assess what makes creativity and innovation happen. Senior craftsperson work
A platonic ideal As the architecture design progressed, I observed what at first seemed quite strange. For the architecture team, the real System/360 was the Design Concept itself, a Platonic ideal computer. Those physical and electrical Model 50, Model 60, Model 70, and Model 90 things under construction out on the engineering floors were but Plato’s shadows of the real System/360. The real System/360’s most complete and faithful embodiment was not in silicon, copper, and steel, but in the prose and diagrams of IBM System/360 Principles of Operation, the programmer’s machine language manual. I had a similar experience with the View/360 beach house. Its Design Concept came to be real long before any construction began. It persisted through many versions of drawings and cardboard models.
The design concept Is there positive value to recognizing an invisible Design Concept as a real entity in design conversations? I think so. First, great designs have conceptual integrity—unity, economy, clarity. They not only work, they delight, as Vitruvius first articulated. We use terms such as elegant, clean, beautiful to talk about bridges, sonatas, circuits, bicycles, computers, and iPhones. Recognizing the Design Concept as an entity helps us to seek its integrity in our own solo designs, to work together for it in team designs, and to teach it to our youth. Second, talking frequently about the Design Concept as such vastly aids communication within a design team. Unity of concept is the goal; it is achieved only by much conversation. Thus, moviemakers use storyboards to keep their design conversations focused on the Design Concept, rather than on implementation details. Dependence is more profitable than educationI mix it with two in my thought
The Idea The design is thus the mental formulation, which Sayers calls “the Idea,” and it can be complete before any realization is begun. Mozart’s response to his father’s inquiry about an opera due to the duke in three weeks both stuns us and clarifies the concept. For most human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation. Thus it is that writing, experimentation, “working out,” are essential disciplines for the theoretician. Everything has been composed making
The boldest decisions In retrospect, many of the case studies have a striking common attribute: the boldest design decisions, whoever made them, have accounted for a high fraction of the goodness of the outcome. These bold decisions were made due sometimes to vision, sometimes to desperation. They were always gambles, requiring extra investment in hopes of getting a much better result. Design with courage design
Intuition and systems Systematic design excluding intuition yields pedestrian follow-ons and knock-offs; intuitive design without system yields flawed fancies. How to weld intuition and systematic approach? How to grow as a designer? How to function in a design team? designteamwork