Thoughts about scheduling

November 29, 2009

Towards the end of “I Sing the Body Electronic” about a multi-media (remember those?) project at Microsoft, Fred Moody speculated that maybe project schedules are as unreasonable as they are to both push the team to work harder and to make them want to jump right on with the next project and do better the next time. I’ve wondered if that was the motivation, too. But mostly I’ve assumed somebody picks a date out of their hat and it becomes cast in concrete.

Then too, the problem is software projects are man power intensive. You got a problem with the schedule? Work harder. Work nights, weekends, holidays. And we do. And we think we’re heroes for doing it. Rather than thinking: this isn’t right.

A friend of mine is a civil engineer. He writes his own computer programs. In the early days of computers, I suspect that that approach was the norm. Computers were not for trivial uses, the users were highly intelligent and motivated and they were taught how to program to solve their own problems. They already understood the business and what they wanted.

The era of the professional programmer—one who does not know the business—has been brief, basically from the 1950s. Much of that time was spent on coaxing computers to do established manual operations: accounting, inventory, records management where cutting new design was not a major aspect of the project, we already had a design that worked. But two charactersitics: these are well understood processing domains and the man-machine interfaces to them were clerical in nature.

Nowadays those back office systems have already been written. It doesn’t make sense to write your own.

It also seems that the kinds of systems needed now are those that would help knowledge workers, not clerical workers. And both the domain and the interfaces are less well understood, are highly evolved and still evolving rapidly. Where does this put the average application programmer? Typically they know java, and other programming languages, but not the business. Is knowing java sufficient? It means that someone has to explain the business to them. And if the business is knowledge, can—or should—someone be expected to impart that wealth of knowledge?

Do we need simpler programming languages so that the users again do the programming?  Such that the emphasis is not learning programming but getting on with the design and knowledge implementation? Object-oriented programming was first promoted because the program objects could—should—model real world ‘objects’. The implementation seems to be something different. But the original impulse seems right.

501 Verbs in English

September 28, 2009

I went down to browse the public library annual book sale. Supporters of the library donate their extras and have a festive annual sale with thousands of book. I bought one. Because I’m cheap and because I borrow books from the library mostly. The books I keep on my shelves are reference books and the odd title I don’t expect to find easily in the library (‘Modern Primitives’ and ‘The Tears of Eros’ come to mind). But what caught my eye was the book “501 English Verbs”. Now I often see 501 Whuzzu Verbs in the foreign language section in bookstores and I’m tempted to buy one for whatever language I happen to want to know at the time, but for English! Well, why not?

I’m learning Portuguese at the moment. I adore Brazilian music. It has the sophistication and virtuosity reminiscent of the best of American Tin Pan Alley. Though I know that even if I learn the basics of Portuguese, the poetry of the songs will still elude me. But it’s fascinating to see the language continues to use the subjunctive mood. English has gotten much simpler over the years (or people like me are just beating it to death). The subjunctive in English sounds quaint and Masterpiece Theater-ish. Still, it would interesting to study a whole book of English verbs. The copy at the book sale was water damaged so I passed on it. But there will be other copies around…

Sticky notes

September 22, 2009

I like Post-It Notes(tm) and I wish someone would invent some kind of sticky string to make it easier to draw links between them.

Usability Design

September 12, 2009

Usability Design versus User Interface Design

Back just a few years ago, computers weren’t powerful enough to waste time with graphics. Screens weren’t capacious enough to waste space with blank areas. Times have changed.

Where before programmers could concentrate on providing raw functionality, now we have the resources to worry about how to present that functionality to make it easier to use and make it more pleasant to use.

However, making it easier to use and making it more pleasant to use are two different disciplines, one is usability, or user, design and the other is user interface design. And there is room for confusion on this terminology. Usability design tries to make the presentation suitable for the work and the workers. UI design is often an exercise in making screens more attractive, but not necessarily easier to work with. To make it easier to discuss the differences, I’ll write “usability” for the usability design work and “UI” for the presentation work.

UI designers are relatively common because, I’m being sarcastic here, they’re artists who are slumming. Usability designers are a breed of industrial designers and are much rarer, and more expensive. Usability designers have to work closely with the users and the programmers to get the flow of screens and procedures right.

Programmers sometimes dismiss UI designers as adding ‘eye candy’ that looks nice but has no substance. And indeed, some UI designers do little more than take an existing web page, adjust the field layouts, add some color and graphics and call it a day.

Now, you want UI designers. Making your product attractive is desirable, just don’t think that UI design is usability design or that a UI designer is a usability designer.

Examples of Usability Issues:

- Does the user need to scan the system for large amounts of information at once? Eg stock market brokers, call center operators, emergency dispatchers.  They do not have time to go scrolling around a bunch of screens, or even taking hands off whatever else they’re doing to punch a keyboard or scroll a mouse.

- Is the computer system central to their work, or peripheral?  That is, are they sitting there foresquare to the computer, or is the computer off to the side?

- Is the user intensely familar with the system or just a casual, or even a novice user? (Example: programmers tend to spend most of their time using their IDE—Integrated Development Environment, one piece of software of managing the project and coding code).

- Is the user interrupt driven (e.g. they take phone calls all day) or process driven (e.g. they have specific jobs they do.)

- Does the user work with one application or do they have to switch among several and draw from each to get a task done.

- Is the user a heads-down worker (they don’t even look at the screen to enter data) or a heads-up worker (they can see the prompts).

- Is the user better off not using a computer? Is a scanner or cell phone or ??? a better input/output device?

Maps

September 6, 2009

Overheard in Bird and Beckett, a great local bookstore in San Francisco, a woman looking for maps, nobody sells them anymore. The sales person commiserates, there are no map stores anymore (I’m thinking, Rand Mcnalley in North Beach is long gone). And what of it? Don’t I just use Google maps myself? Except maps aren’t just for finding your way from here to there. In writing the question is whether you should have an outline before you start writing and if so, how detailed. One author counseled that you want a map of the territory ahead, not the exact path. Because writing isn’t that straight forward, but you still need to have a sense of where you’re going and the territory ahead. But also maps are needful for what isn’t there. At one extreme, those ancient maps that ‘here be monsters’ or closer to our own eras, with helpful cartoon illustrations of wonderous things along the way. Bill Buxton in his book on design wrote “You have to leave big enough holes to let imagination come into play.” Google maps look too complete, too stolid. Now, I am not adventurous by nature, I’m just a bookworm, maybe Google maps are still enough to stir the blood and quicken the heart of adventurous souls—Samarkand and Uttar Predesh, Istanbul, Prague, Budapesh, the Escalante. I always expect that software hidden behind the Google maps will keep it updated, fill in the mysterious. A paper map is different, somehow they beckon, ask me to fill in the blanks.

Speaking in pidgin

August 9, 2009

     The language of requirements is a pidgin language because it is a mixture of both user speak (in the progammer terminology, in the ‘domain language’) and techie talk. Now real pidgin languages arise in locations where people come together from different lands, they speak different languages but now, here, they need to communicate with each other. A mixed language develops, with borrowing from all the native languages. But pidgin languages use a simplified syntax (nobody bothers with rules about split infinitives) and is very practical. You don’t discuss philosophy in pidgin, you talk about buying and selling and getting boats loaded.

Now the language of requirements is a pidgin language in the sense that it borrows from both the user and programmer worlds and uses a simplified syntax and deals with practical matters, but it differs into important respects.

 

     First, you do try to express issues of great subtlety with it.

 

     Second, you can easily forget that you’re speaking a pidgin language because it looks and sounds a whole lot like English (or whatever it is you speak). You need to remind yourself every so often that you are not speaking English. There are enough of differences between user language and techie language for serious misunderstandings. Pidgin languages are not deep enough to support profound thoughts or subtle distinctions. 

Analysis/Synthesis

April 4, 2009

The analysis phase of a project is really part ‘analysis’ and part ’synthesis’. Analysis is breaking down what you know into its component parts. Into something small enough to get your arms around, simple enough to understand. Synthesis is putting what you know together, into a gestalt. When you’re talking to people, people tend to throw everything at you all at once: what they know, what they do, their feelings, their fears, their gripes, their wishes.

Your goal is to be able to break down their knowledge and figure out which is which. We need to compartmentalize this wealth and break them down into the bits that go into the requirement documents. But at the same time you need to building up your comprehensive picture of the company and the department and the operations. I suspect it would be better if you could do the synthesis first–understanding the whole–and then analysis, breaking it down into its components. But the learning process is too chaotic. And you won’t have near enough time to do it all, much less in a neat orderly way. So you’ll do both at once. But I think it helps for you to keep in mind that you are attempting to do both. That you are attempting to look in two contradictory directions, at the same time.

Lemmings

February 28, 2009

I was on a cruise to the Mediterranean and we stopped in Casablanca. I had been constantly told that it was dangerous ‘there’. And I wasn’t entirely comfortable with the prospect of wandering off in the Casbah by myself–more about getting lost and missing the boat than getting assaulted and forced to buy rugs to fit into my suitcase somehow. So I signed up for a tour group. Tour groups are an interesting phenomenon in themselves. In who joins them, how they are organized, what you get out of such a package. In our case we packed a little van with overweight Americans with their secret neck pendant wallets and whipped through the streets.  The historically European quarters are wildly different from the Arab quarters and if not segregated, the differences are still disturbing. Then again, is the Casbah a cute slum, kind of like American Chinatowns? Rick’s Cafe was in the European section, which I should have guessed. I assume it came after the movie, kind of like a one-off Planet Hollywood Restaurant. 

Then we piled out of the van and walked through the casbah. I’m tempted to say we all stuck closely together, but that wasn’t true. We even got rather spread out–mostly I suspect because a lot of us can’t walk very fast. They had a number of helper guides to try to keep the various bodies moving the the right direction. It would be easy to get turned around and completely lost. I didn’t feel threatened but I didn’t feel especially welcomed either. Mainly because we were getting in everyone’s way and acting like tourists. I sensed ‘they’ were muttering ‘d*mn tourists’ under their breaths, much as I do in San Francisco when I’m stuck amongst the tourists.

How to tell time?

February 19, 2009

Sometimes I try to figure out old something is, or how long I’ve been doing something, not by a date or even a decade but by what obsolete technology was involved: I was listening to this when I was still buying LPs, or CDs. Or when software came on a box load of 5.25 floppies.