Archive | 2003

Lessons Learned, Again

On February 23rd, 1999, I completed a several months on-site consulting gig, packed up my desk and moved along, back to the consulting firm I worked for at the time. During the last week I was there, I composed an email summarizing the challenges I had run into. Some had been addressed, others continued. Several recent encounters online and with clients old, new and prospective brought the essay to mind again. Here it is:

  1. Design First, Code Second. There’s an old joke of the salesman poking his head into the computer room and announcing “I sold the client on the system! You guys start coding, and I’ll go find out what they want.” Too true.
    • design the data schema. Review the schema for the levels of normalization. Review again as objects, forms and walkthroughs talk about touching the data. Make the schema available to everyone, but maintain control of changes.
    • design the objects. Input, output, process and sequence of events can be defined to meet the needs of the system.
    • design the forms. Review them with the client, preferably with the operators. Seeing a prototype user interface uncovers awkwardnesses, identifies additional elements that need to be added, and invests the client with ownership of the design. Walk through the system, as in use cases. These walkthroughs determine the workflow and the data flow and often uncover inconsistencies in the interface and data design.
    • document the system. The documentation should be a user manual that describes normal and exceptional use of the forms. The client needs to sign off on this as what they want the system to do. This document should be (a) programmer documentation on what the form is to do, (b) testing documentation on what to test, (c) user documentation on how to use the forms.
    • give ownership of the components to individuals. Review and walkthrough the design with all participants to ensure each understands the responsibilities and behaviors of their components.
    • coding before the design is complete is dangerous. Programmers get attached to their creations, and resist attempts to change it by making ludicrous kludges and awkward extensions. Initial coding should be for prototype, throw-away use, and to determine feasibility of new techniques and technologies. Encourage everyone to “code it and throw it away” because they will.
  2. Test, test, test. The criteria for a form being complete is that it passes a series of tests that describe the paths that occur in data entry. An untested form is not done. Programmers cannot test their own forms. Unit test and integrated testing need to be managed by a tester.
  3. Standardize. Determine the ‘right’ way to select, multi-select, add, edit, delete and implement them consistently throughout the user interface. Standardize on a framework, a naming convention, a calling convention, an error handling method. Document these standards and ensure that all members of the team have read these and agreed to follow them. Make them available to the team during the process, and use them as a guide to perform code reviews, walkthroughs and audits.
  4. Get out of the way and let the coders code. Give them the tools they need, the interruption-free time, the speed to do their jobs. Powerful computers, access to training materials, free soda, whatever it takes.
    • train the programmers on the system they’ll use – framework, standards, etc.
    • source code control helps in disaster recovery.
    • code reviews keep programmers on their best behavior
    • code walkthroughs ensure quality
    • cross-training improves programmer knowledge, allows transitions of programmers, and improves code.
  5. Coders: Be one with the Fox. There are lots of cool and clever things you can do with FoxPro, like firing UDFs in grid controlsources, or UDFs in DynamicBackColor, or assigning data bindings in classes. But just because you _can_ do something, doesn’t mean you should. Understand what works well in VFP, what’s the optimal choice, and what you should resort to only in desperate circumstances.

Rogers Cadenhead interview

Dave Winer of [Scripting News] thinks that “Rogers Cadenhead is interviewed about Radio UserLand.” I think it’s more of an interview about his recently-released book “Radio Userland Kickstart,” which, by the way, friends and relatives can find on my Amazon wish list. A couple of interesting insights. One which struck a chord with me, as a fellow book author, was:

…it happened primarily because I forgot that I wasn’t 100 percent confident in my qualifications for the job. Sixteen-odd books later, I’m convinced that a lack of self-awareness regarding your own limitations is the biggest contributor to personal success.

FeedDemon nears release

If you haven’t got a news aggregator yet (or even if you have), take a few minutes to try out FeedDemon at http://www.bradsoft.com/feeddemon/beta/. This slick tool is one of many bringing RSS from a geek toy to a well-accepted standard.

Steve Gillmor

Steve Gillmor predicts “Look Out, Outlook: RSS Ahead in 2004” in his eWeek column:

This is a game at which Microsoft excels÷the waiting game. Clone, wait, collaborate, extend, wait, repeat, rinse, dry. But now comes RSS÷and the rules may have changed. First, the enemy is now scattered, behind rocks, in startups, open source, virtual coalitions that pop up on IM and videoconferencing, and a myriad loosely coupled evolutionary steps forward.

I’d not count Microsoft out of the game. Despite their “Windows Everywhere” and Windows Any Way tactics, they do have the advantage of being able to place their solution onto 100 million desktops and then enhance, embrace, extend and extinguish until they get it right or discredit the underlying technology.

Check out Gillmor’s predictions for future technologies. There’s some opportunities there, if he’s right.

White Papers as PDF?

I’m looking at republishing much of the white paper and slide material available at my site as PDF. Why? The format is “Portable” readable in many browsers and platforms consistently. It’s easier to print out in readable format. It doesn’t take significantly more space or bandwidth than the bloated HTML of Word or StarOffice documents. And it looks better.

I’d really be interested in feedback on whether you would find the PDF more or less convenient, accessible or useful. Hit the comments link below and share your opinion, please.

New RSS Feed: Ted Roche & Associates, LLC web site changes

RSS doesn’t have to just be about news, or blogs. It can also serve as a good source of information on what’s new on a web site. At http://www.tedroche.com/trweb.rdf, I’ve just started an RSS feed where I will post changes to the web site as they are made. There are a substantial number of white papers and sample code snippets on the site, but many are not well-organized or presented. I hope to punch each sample up, and as I do I’ll post it to the RSS feed.

The feed is maintained with some simple Visual FoxPro code I demonstrated at the 2003 Great Lakes Great Database Workshop, and I’ll be glad to pass it on to any Fox developer interested in doing the same to his or her site.

Scott Dierdorf: Hey, who’s the boss here? Is it me — or my computer?

Scott Dierdorf writes a great column in the Baltimore Sun this week, picked up by my local paper — haven’t found a link online yet. In it Scott bemoans the machine that takes more to maintain than it gives us back. In part, he says:

Would John Steinbeck have finished The Grapes of Wrath if he had to spend his time ferretting out the spyware from his computer? Would Ernest Hemingway have even started The Old Man and the Sea if he had been occupied with critical Windows security patches every two weeks?

Very good stuff. Check it out, if you can, and send along a link if you find one.

Friday was "Buy Nothing Day"…

Friday was “Buy Nothing Day,” but unfortunately, I didn’t stick with it this year, the first in a decade or two. At 5 AM, I could be found outside the local Best Buy with Laura, shivering in the cold. We bought a laptop that’s the graduation present for my son. What a miserable experience! An hour of standing around outside followed by a mad and completely disorganized crush into the store, and an hour-and-a-half of standing around to purchase the one item.

I hope it will be two decades before I shop again on madness day.

Balmer on Windows vs. Linux security

Steve Ballmer, CEO of Microsoft, spoke recently at a panel discussion of a Gartner-sponsored conference, and was fascinating to watch. He blundered and spouted and was nearly incoherent. The one allegation he said that stuck with me was the claim that, in the first 150 days of release, one version of Windows had less security flaws than Red Hat Linux 6 during its first 150 days. It sounded fishy and artificial and contrived.

Ballmer Says Commercial Software is Better Because Someone’s Rear End is on the Line” is an article in response.

Powered by WordPress. Designed by Woo Themes

This work by Ted Roche is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States.