Journal, lists, links, philosophy, but mostly just good stuff I have found on the web


About Me

My photo
Cedar Rapids, Iowa, United States

Search This Blog

Friday, December 28, 2007

Software Development Rules

From a Wikipedia article on "The Mythical Man Month" by Fred Brooks.
I wish I had known this years ago, although it looks as though I had done a lot of things right.


The Mythical Man-Month
Assigning more programmers to a project running behind schedule will make it even later, due to the time required for the new programmers to learn about the project, as well as the increased communication overhead. When N people have to communicate among themselves (without a hierarchy), as N increases, their output M decreases and can even become negative (i.e. the total work remaining at the end of a day is greater than the total work that had been remaining at the beginning of that day, such as when many bugs are created).
Group Intercommunication Formula: n(n − 1) / 2
Example: 50 developers -> 50(50 − 1) / 2 = 1225 channels of communication

The Second-system effect

The second system an engineer designs is the most dangerous system he will ever design, since he will tend to incorporate all of the additions he originated but did not add (due to the inherent time constraints) to the first system. Thus, when embarking upon a second system an engineer should be mindful that he is susceptible to over-engineering it.

Progress Tracking
Question: How does a large software project get to be one year late? Answer: One day at a time! Incremental slippages on many fronts eventually accumulate to produce a large overall delay. Continued attention to meeting small individual milestones is required at each level of management.

Conceptual Integrity
To make a user-friendly system, the system must have conceptual integrity, which can only be achieved by separating architecture from implementation. A single chief architect (or a small number of architects), acting on the user's behalf, decides what goes in the system and what stays out. A "super cool" idea by someone may not be included if it does not fit seamlessly with the overall system design. In fact, to ensure a user-friendly system, a system may deliberately provide fewer features than it is capable of. The point is that if a system is too complicated to use, then many of its features will go unused because no one has the time to learn how to use them.

The Manual
What the chief architect produces are written specifications for the system in the form of the manual. It should describe the external specifications of the system in detail, i.e., everything that the user sees. The manual should be altered as feedback comes in from the implementation teams and the users.

The Pilot System
When designing a new kind of system, a team will design a throw-away system (whether it intends to or not). This system acts as a pilot plant that reveals techniques that will subsequently cause a complete redesign of the system. This second smarter system should be the one delivered to the customer, since delivery of the pilot system would cause nothing but agony to the customer, and possibly ruin the system's reputation and maybe even the company's.

Formal Documents
Every project manager should create a small core set of formal documents which acts as the roadmap as to what the project objectives are, how they are to be achieved, who is going to achieve them, when they are going to be achieved, and how much they are going to cost. These documents may also reveal inconsistencies that are otherwise hard to see.

Project Estimation
When estimating project times, it should be remembered that compilers are three times as hard to write as application programs. And systems programs are three times as hard to write as compilers, and the use of a suitable high-level language may dramatically improve programmer productivity. Also, it should be kept in mind how much of the work week will actually be spent on technical issues rather than administrative ones or other non-technical ones, such as meetings or sick leaves.

Communication
To avoid disaster, all the teams working on a project should remain in contact with each other in as many ways as possible (e-mail, phone, meetings, memos etc.) Instead of assuming something, the implementer should instead ask the architects to clarify their intent on a feature he is implementing, before proceeding with an assumption that might very well be completely incorrect.

The Surgical Team
Much as a surgical team during surgery is led by one surgeon performing the most critical work himself while directing his team to assist with or overtake less critical parts, it seems reasonable to have a "good" programmer develop critical system components while the rest of a team provides what is needed at the right time. Additionally, Brooks muses that "good" programmers are generally 5-10 times as productive as mediocre ones.

Code Freeze and System Versioning
Software is invisible. Therefore, many things only become apparent once a certain amount of work has been done on a new system, allowing a user to experience it. This experience will yield insights, which will change a user's needs or the perception of the user's needs. The system should, therefore, be changed to fulfill the changed requirements of the user. This can only occur up to a certain point, otherwise the system may never be completed. At a certain date, no more changes would be allowed to the system and the code would be frozen. All requests for changes should be delayed until the next version of the system.

Specialized Tools
Instead of every programmer having his own special set of tools, each team should have a designated tool-maker who may create tools that are highly customized for the job that team is doing, e.g., a code generator tool that spits out code based on a specification. In addition, system-wide tools should be built by a common tools team, overseen by the project manager.

Lowering Software Development Costs
There are two techniques for lowering software development costs that Brooks writes about:

Implementers may be hired only after the architecture of the system has been completed (a step that may take several months, during which time prematurely-hired implementers may have nothing to do).

Another technique Brooks mentions is not to develop software at all, but to simply buy it "off the shelf" when possible.

Friday, August 17, 2007

Apple, Itunes, and Ipods

I finally did it! This die-no-sow-er gave up on WinTel computers and moved to Apple.

My son needed a computer for college and wanted some heavy music software. So he asked for a Powerbook. I came, I saw, I bought.

My wife also wanted her own computer for the kitchen. The tower pc in the basement was not convenient and was complicated. So...I got a mini-mac for her with a larget 3rd party screen and put it in the kitchen. She loves it!

I got a free Ipod Nano (4 gigs = .004T) for buying from Apple.

Until now, I was terrified of the Ipod's "Do Not Disconnect!" message and the weird control. My kids were always yelling at me for touching theirs, so I didn't

Now, I have my own. I figured out the control after a 30 second demo from my son and a quick look at the documentation.

It took a little longer to figure out Itunes, but I got it done. I just spent a whole day (my only day off this month) loading of 2 gigs of my music that should take 1.8 days to listen once. Whew! What a device.

No wonder the morons at the RIAA are scared! Itunes will eat their lunch. If they would only get with it instead of fight it, they will become a utility and make billions more than now.

Cross the Line - Lyrics by Kiley Dean

I heard these lyrics long ago. It took a while to find the singer.
She had web site with scrolling lyrics.

I thought I would try this out:

Kiley Dean - Cross The Line Lyrics


[Timbaland]

Oh, oh

Oh, oh

Y'all remember this one

A Timbaland classic

Oh, oh

C'mon Kiley

I barely know his name

I know he seems real cool

He ain't about no games

I think I like this dude

But I'mma play it low

And hope he doesn't see that I

Am gettin' kinda comfortable

I'mma let him know this time

I know you wanna cross the line

(I know)

I know you wanna cross the line

But I can't let ya

(Oh, no, no, no)

I know you wanna cross the line

I know you wanna cross the line

But I just met ya

(No, no)

You make me wanna cross the line

(You make me)

You make me wanna cross the line

(Wanna cross the line)

It's official

But I ain't gonna cross the line

(No, no, no)

I ain't gonna cross the line

Now even wit ya

He's pretty sweet on me

He even told me so

And when he touches me

I wanna tell him no

But then he's in my ear

Whispering things to me

Gotta say stop right here

Cause I can't take the heat

I know you wanna cross the line

(Oh no, no, no, no)

I know you wanna cross the line

But I can't let ya

(I canĂ¢€™t let ya)

I know you wanna cross the line

I know you wanna cross the line

But I just met ya

(Oh, no, no)

You make me wanna cross the line

(You make me wanna cross the line)

You make me wanna cross the line

It's official

But I ain't gonna cross the line

(But I ain't gonna cross the line)

I ain't gonna cross the line

(I ain't gonna cross the line)

Now even wit ya

You different from the other guys

(Oh)

I ain't even gonna try and lie

(I ain't gonna lie)

It's true we got a crazy vibe

And ya givin me the bedroom eyes

(Yeah, yeah)

No I don't wanna compromise

Cause I know it really won't be right

(Oh, it won't be right no, no)

I know you wanna cross the line

But I don't wanna cross the line

(But I don't wanna cross the line)

I know you wanna cross the line

(Oh, no)

I know you wanna cross the line

(I know you wanna)

But I can't let ya

I know you wanna cross the line

(I know you wanna)

I know you wanna cross the line

(Cross the line, oh, oh, oh)

But I just met ya

You make me wanna cross the line

You make me wanna cross the line

(Make me wanna cross the line)

It's official

But I ain't gonna cross the line

(I ain't gonna cross the line)

I ain't gonna cross the line

Now even wit ya

No, I ain't gonna cross the line

No

Hey, no

Oh, yeah




More Kiley Dean Lyrics...

Sunday, March 04, 2007

Awesome Saturdy: Kid Brag

What a day yesterday!

It started with Alex competing in round one of the regional Mock Trial competition. I was not there, but everyone said he did extremely well. They won round one.

Next, Alyssa performed with her show choir [McKinley's Classic Edition] at the Xavier competition. She was front and center in every dance, including the couples dance that she learned 10 minutes before showtime, covering for a sick dancer. Her dancing and expression were absolutely outstanding. That performance was at 9:45. Then she and Bobbie left for the Riverside dance competition. They made the night round at Xavier.

Alyssa performed a solo, two small group, and a production number at the Riverside competition. She scored very well in all of them.

I watched Alex in the next two rounds of Mock Trial competition. They were on defense both times. He was superb! He knows his stuff and really likes to ham it up. He was called out by name as a superb witness in one round and his team was commended for their witnesses in the last round. They won the last round against one of the perennial powerhouses, by 3 points out of 150. Both Washington HS teams advanced to state competition. Wow!

Then I returned to the Xavier competition. Alyssa and 3 other dancers made a mad, high-speed dash from Riverside to Xavier (45-50 miles) in 35 minutes, including traffic. They went directly from their cars to the stage. Another awesome performance! They got second overall, even though they won the vocal and outscored the winner in choreography...Hmmmm? Politics abound.

Both kids made us really, really proud! Sinfully so. They combined excellent technical skills with the ability to perform in front of people with confidence and presence. What more could a parent want? Prayer works





Monday, February 19, 2007

Flying Video

One of PBerry's best work. Levitation and all!

STAR WARS Episode XXVII: A Newer Hope

Here is one of Patrick Berry's famous videos. Alex is one of the actors...if you call that acting

Wednesday, February 14, 2007

More Interview Techniques

The following can be found at:
http://www.notrain-nogain.org/Train/Res/Report/intv.asp
The Really great interview

By Bill McAuliffe, Star Tribune Staff Writer

Questions like ``What happened then?'' are fine if you're after plot. Questions like ``So, Senator, this $3 million appropriation will go directly into your wife's bank account?'' are fine if you're after the kill.

But if you're after character, the quirky, random and apparently irrelevant can work wonders.

Last March I was listening to Terry Gross (of National Public Radio's ``Fresh Air'') interview musician Chris Isaak. There was a lot of talk about Isaak's audience and influences and what he wanted to accomplish with his new album. Then Gross asked him to ``redeem'' any piece of music he felt needed redemption. He picked up his guitar and played, solo/acoustic, Pat Boone's ``Love Letters in the Sand.''

Not only was it a stunning surprise and riveting radio, but it also led to a discussion about the 1950s, how (in Isaak's view) Boone's talent and reputation had been ruined by one movie, and how important Connie Francis had been to Isaak.

I didn't know this at the time, but Gross (who returned my phone call) said that she often asks musicians to redeem a piece of music and that she does so in advance, to give them time to prepare an answer and a song. But she agreed that it's a good tool for revelation.

``Even the hip people love some things not considered hip,'' Gross said. ``I assume I can learn something about the music and the person by finding out what those songs are.''

The value of the surprise question, Gross added, is something she learned from the television talk show.

``I learned from Dick Cavett that you can ask anything, no matter how bizarre or irrelevant it may seem, and it might lead in a really interesting direction,'' she said.
Gross's other point on the surprise question: Don't censor yourself. Just ask.

Sometimes even a silly question produces a kill. Last fall several of us on the metro team, looking for diversion during the mayoral races, compiled a list of a dozen or so questions for each candidate that had nothing to do with politics. There were questions about the best car you ever owned, the worst job, etc.

One question, dreamed up by Curt Brown, was ``What's your favorite Bob Dylan song?''

Well, duh, if you're a politician, you'd answer ``Blowin' in the Wind'' or ``The Times They Are a-Changin','' right?

Not Mark Stenglein. He said he didn't know any Bob Dylan songs.

Stenglein finished fourth out of four major candidates in the DFL primary for mayor of Minneapolis. At one point in the campaign he confided that his answer to the Dylan question caused him more grief than any ``real'' issue.

Interviewing: The Sawatsky method
Canadian investigative reporter John Sawatsky trains investigative journalists on how to conduct interviews. In his view, reporters engage in too much baiting, accusing and ambushing; they make too many statements and express too much opinion. Reporters who go into interviews prepared merely to ask neutral, open-ended questions get the best stuff.

Reporter Susan Paterno wrote about Sawatsky's methods in a piece that ran in the American Journalism Review in October 2000. Some of his suggestions, according to her story:

  • Avoid making a statement during an interview.
  • Avoid asking a question a source can answer with yes or no.
  • Sound conversational, but never engage in conversation.
  • Try for open-ended, neutral questions that begin with ``what.'' For instance, instead of asking Sarah Ferguson, ``Is it hard being a duchess?'' ask, ``What's it like being a duchess?'' Instead of asking Ronald Reagan, ``Were you scared when you were shot?'' ask, ``What's it like to be shot?''
  • Resist the temptation to converse, sympathize and add value or meaning to questions. Use short, neutral questions that repeat the source's own words. If the source makes a judgment - for example, ``Brian can be excessive at times'' - follow up with: ``What do you mean, excessive?''

Sawatsky has trained journalists all over Canada; in the United States, he's conducted seminars at several newspapers and the Poynter Institute.
(To read the AJR piece, look up the October 2000 issue of AJR.)

Here's more interviewing advice from other journalists around the country. Some of it contradicts Sawatsky and others, but all of it is interesting. It's useful to think about new methods of talking to sources and to employ different techniques at different times, depending on what you're after.

Interviewing: Advice from all over

Make it a conversation - but never forget it's an interview.
What I enjoy most about Terry Gross is that listening in on the interviews is like listening in on a conversation. True, she asks good questions, but she also is great at expressing interest, surprise, skepticism.
That builds on one of the best pieces of advice I ever got about interviewing, which is to approach interviews with the idea that you're having a conversation. As such, the best answers aren't necessarily going to be elicited by questions. A statement from the reporter can lead to a really good answer.
One caveat in all of this is that the reporter ought not be voicing opinions or taking over the ``conversation.'' The person being interviewed should be allowed to speak!
- Nancy Weil, IDG News Service, Boston

Keep in mind some good questions, such as . . .
The question I teach my students to ask, always, when racial or other stereotypes seem to be at issue, is ``How do you know that?'' It tends to justify comments that could be misconstrued, and of course it exposes bigots.
- John Miller, director of newspaper journalism, Ryerson University, Toronto

What makes you say that? What happened next? If you ask a yes-no question, you'll get a yes-no answer.
- Susan Ager, Detroit Free Press

Three basic questions that even experienced reporters seldom ask often enough:
1) What does that mean?
2) Can you give me an example?
3) Has that ever happened before? (Or, How often does that happen?)
- Lex Alexander, Greensboro (N.C.) News & Record

One of the best interviewing lessons I ever learned was courtesy of a business reporter grilling Tom Ridge, then the governor of Pennsylvania, about the expansion of a Lucent plant in our area. She had asked him about the state's role in the project. Ridge gave a perfunctory 15-second political answer, and Wendy stood, unmoving. She looked up at him and said, ``And?'' He talked for another 30 seconds. She said, ``And?'', and he went on for five full minutes explaining in detail how his office worked with Lucent to bring the new complex to the state.
The lesson, of course, is don't let the source get away with a nonanswer. By being courteous yet persistent, she got what no other reporter there got.
- Joe McDermott, Allentown (Pa.) Morning Call

Fish for figures of speech. Questions can stimulate imaginative answers. Whats it like?
- Cindy Stiff, The Freedom Forum

What led up to this? Who did what? How did it work? Reporters are often so focused on the present and future that they neglect that gold mine, the past.
Also, ``Tell me a story from your childhood'' and ``If you could choose, what would you be doing ----- years from now?'' These two questions are obvious, but they do often produce surprising answers that may pep up an otherwise predictable picture. Even if the reporter doesn't use them, they can soften up a stiff interview, make the subject more human and complex, and give the reporter insight. Ditto, a question about the road not taken: ``If you hadn't become a -----, what might you have done?''
- Kate Long, Charleston (W.Va.) Gazette

Remember this phrase: evergreen questions. These are simple questions that can be used over and over to get people to open up. You could make a list of almost any length of such questions.
Some samples:
What was the worst thing that ever happened to you?
What was the best day of your life?
Who was the person who most influenced you, and how?
If you were writing your epitaph, what would you say?
You could easily list 25 or 30 evergreen questions. They come in handy not only for profiles, but also for other stories. This doesn't mean, of course, that you will go methodically through the whole list when you interview someone. The idea is that you can pick a question that seems appropriate or that might help restart a flagging conversation. Evergreen questions can turn up information you might not otherwise get. They can get a person to talking and telling you something real instead of telling you what the person thinks would be nice to say.
- John Rains, The Fayetteville (N.C.) Observer

Give something back to the source.
You can't just call them up and demand information; you have to tell them stuff, too, to make a conversation with you worth their while. And respect their time; if they know you're going to keep them on the phone forever, they're going to be much less likely to return your calls.
- Buster Olney, the New York Times

Allow for silence.
A key to interviewing is allowing periods of silence to stretch a little. People are uncomfortable with it and will talk just to fill up the space. Sometimes if you just let silence hang, the source will expand on what he/she just said because he/she can't stand the silence.
- Connie McNamara, Pennsylvania Newspaper Assoc.

Ask throw-away questions.
It's handy to keep a few ``throw-away questions'' ready. Questions you don't really need the answers to for your story or don't care about or have asked before, or whatever. Toss those out when you want to have a minute to focus on jotting notes about the environment, body language, etc., so that you don't need to pay a lot of attention to the answer.
- Weil, Boston

Use the tools at your disposal: respect, humor, doughnuts.
I always, always go into an interview knowing that no person has to talk to me, even public officials. I'm respectful of that. I do a bit of a Columbo routine, usually, which is more real than artifice. I generally find something, either in the person's office or general background (hometown, college) that I can draw a connection to. I use a lot of humor to dispel people of the notion that reporters are blood-sucking automatons. Sometimes I bring doughnuts.
And then I let the conversation follow a natural flow. If there's something that I want to return to, I make a note on the back of my notebook. Sometimes, instead of saving the hardest questions for last, I bring them up early - to keep the interviewee from conforming to a series of prearranged answers. And I always make sure that the door is open for a return call or visit.
As for tricks in approaching questions about difficult matters, a friend uses: ``How would you respond to someone who would question the ethics of . . .'' etc.
- Dan Barry, the New York Times

Prepare.
To ask good questions you must be prepared to ask good questions.
That means, whenever possible, doing research on the subject and coming up with initial questions before the interview; understanding how much time you'll have to ask the questions; having an idea of the environment in which your interview will be conducted; and identifying your `tough questions` and setting up other ways to ask them when and if the subject dodges.
Also: Be interested. If you ask boring questions, be prepared to get boring answers.
- Curtis Hubbard, the Boulder (Colo.) Daily Camera

Blog Archive