Analytics

Tuesday, February 9, 2010

Steve and Jerry


If you're aspiring to create software of your very own, something the world finds useful and you find fulfilling, read Steve McConnell's Code Complete. It's hefty, but full of good advice backed by research. I can't speak for the whole book yet. I'm on page 67 of nearly 900. But he's already convinced me that requirements are worth the time it takes to write them. So read it! You can thank me later.

Your second piece of unsolicited advice comes from Jerry Seinfeld: work on your project a little every day. I've tried the Big Bang work schedule, working from 9 - 1 AM once a week, and I've tried the Little Bangs work schedule, working from 9 - 10 PM every day possible. Little Bangs works much better. In my experience, they are more productive, more encouraging, less stressful, and less tiring. But don't take it from me. Take five minutes to read this, then get your little bit of work in today!

Friday, April 4, 2008

Book Review: Everything Is Miscellaneous by David Weinberger

Everything is miscellaneous. Sounds obvious, right? Boring, even. If it weren't for rave reviews from some sources I respect, I never would have picked up this book. And I certainly wouldn't have made it past the first few pages, which discuss the finer points of silverware drawer organization. But I have a neurotic tendency to finish books I start - and I liked Weinberger's previous book - so I kept with it.

By the end, Weinberger completely dissects the implications of the title. Everything is miscellaneous, so don't try to categorize. Put all your information in a giant heap, attach simple metadata (tags) to elements that you find interesting, combine it all, and let the web sort it out. This is the secret behind Flickr, Google, Amazon, and zillions of other extremely useful, innovative, and seemingly magical web sites. The power to sort through miscellaneous, unorganized data is a new phenomenon, powered by the internet, and is quickly replacing previous organizational methods that were built to organize objects within limited physical space (such as the Dewey Decimal System and the card catalog system).

This is a wonderful book for anybody designing software, a process that inevitably forces the designer to decide how best to store information and display it to the user. Weinberger provides a clear answer: organize minimally, if at all. Let customers define their own categorizations. Provide few limitations. Create an easy-to-use, simple, enjoyable experience. The better the experience, the more customers you'll attract. The more customers you attract, the more information they'll give you. The more information they give you, the more useful the information becomes. The more useful the information becomes, the more powerful your application becomes. The more powerful your application becomes, the more customers you'll attract. A virtuous cycle indeed.

Friday, March 14, 2008

Oozy Plans

So, you work at a big software factory. It's pleasant enough, in a very sterile, non-evil, Office Spacey way. But your company isn't the best at project planning. You fall into a trap that lots of large companies fall into when they try to put together software projects. The project works something like this:

Step 1: Executive or non-technology department (Marketing, "The Business Unit", etc.) dreams up great idea.

Step 2: Idea dreamer upper tells technology group to build The Thing (oh, and how long do you think it will take?).

Step 3: Technology group assigns project to a project manager.

Step 4: Project manager - well-meaning but perhaps under pressure - gets a few reliable heads into a room and quickly puts together The Plan, complete with a code freeze date, a testing complete date, and a release date. Don't worry, this plan is just a SWAG. It isn't written in stone.

Step 5: Project manager presents SWAG to executives.

Step 6: Executives write project plan in stone.

All is well until the developers begin designing and building the project and discover it's going to take approximately nine months longer to complete than they have time for, assuming everyone works nights and weekends. At this point, the project managers begins thinking and comes to the conclusion that Just a Few More Developers will do the trick. Or maybe we'll Just Get Lucky and it will all work out in the end.

Step 7: The Mythical Man Month ensues.

This is a good way to create very high turnover or build a large unwieldy project that is useless at best and unmaintainable at worst. Fortunately this problem is easy to fix, but the solution is not always obvious and takes a little discipline.

Insert:

Step 3.5: Project manager locates developers (the actual people who will write the code).
Step 3.6: Project team builds spec. Developers get to help.
Step 3.7: Project manager asks developers for detailed estimates of the time it will take. No task is allowed to exceed 16 hours.

Yes, steps 3.x take a little time, sometimes months. But you'll have to do these steps anyway and if you do them before step 4 instead of after step 6, you're going to get a schedule you can actually rely on. You know, the kind that hurts your hand when punch it. The kind that doesn't ooze all over the floor when it's dropped. And your developers will probably come up with creative solutions you never thought about that will save you loads of time and money. Plus, they'll enjoy themselves more and feel like they have some control over their lives and stay at your company and you'll get very large bonuses for the rest of eternity because your team will be so phenomenally productive.

Friday, November 30, 2007

Oy

My 2-year-old son recited an entire book to me tonight. I gave him a handful of prompts, turned the pages, and did nothing else. It was frightening - even though I know he's listened to that story 8,000,000,000 times - because I wouldn't have the slightest chance of repeating anything in that story from memory. And I can read. And he can't. I think.

I know my kids will eventually be better than me at lots of common tasks, until eventually they dominate me in things like bowel control and saliva removal. But I'm disappointed that I'm losing ground already.

Thursday, November 29, 2007

This is about you

Scientific American has a great article about how kids learn. There are nuggets in there for everybody. No matter how old you are, if you think this story doesn't apply to you, you are either deceiving yourself or you are very very very well-adjusted.

Sunday, November 25, 2007

The (possible) Dungy Exception

An addendum to my previous post on parenting:

Some professions require a lot of time away from family. Sometimes, these situations are unavoidable - either because of unfortunate circumstances or because of a spiritual calling. These parents have a doubly difficult task: to work hard at a demanding job, yet be physically, emotionally, and mentally connected to their spouse and children as often as possible. It can be done, but one must be always on guard for warning signals and open to changing course, even if it means overcoming fear or ego.

Consider yourself blessed if you never find yourself in this position.

Book Review: Tony Dungy's Quiet Strength: The Principles, Practices, & Priorities of a Winning Life

Tony Dungy's Quiet Strength: The Principles, Practices, & Priorities of a Winning Life is a memoir about Tony's faith and NFL coaching career. His story starts slow but hits a quick pace by the end, where Tony enters some of the most emotional moments in his life: his son's suicide and his Super Bowl season.

I agree with Tony's values, but there's a disconnect between his message and his actions. The demands of his job make it nearly impossible for him to be an effective father. He discusses this in the book and surely continues to struggle with it.

In almost every other aspect of life, Tony is a great role model and his words contain important messages for all Christians, particularly fathers. But fathers should be cautious to do as he says, not as he does. Be there for your wife and children.