13 December 2006

In demand

Ever laconic Seth Godin posts on what he sees in demand these days:

We don't need pilots. We need instigators and navigators, rabble rousers and innovators. People who can't follow a checklist to save their life, but invent the future every day.

I don't think Seth really understands what it means to be a great airplane pilot, but what he's trying to say is right. There was a time when folks who could do the "cog work" (e.g. follow this procedure, the same way, every time. etc.) were valued, but not any more. Moving away from the front line, I might say, what we need are leaders, not managers.

On the hive mind and the wisdom of crowds (or the lack thereof) Steven Johnson of the New York Times summarizes:

A swarm of connected human minds is a fantastic resource for tracking down software bugs or discovering obscure gems on the Web. But if you want to come up with a good idea, or a sophisticated argument, or a work of art, you’re still better off going solo.

There will always be a premium on creativity. You just can't engineer that. It's a human thing. There are problems you can solve with money, but being creative isn't one of them.

07 December 2006

On Context

There's been some talk recently about how MacBU might better develop software, and it reminded me of this story:

A long time ago in a faraway village lived a man who everyone did their very best to avoid. He was the type of person who believed that there was only one competent person in the world, and that one person was himself. Consequently he was never satisfied with anything. His shoes never fit right. His shirt never felt comfortable. When his food wasn't too cold, it was too salty, and when it wasn't too hot, it was too bland.

If a field wasn't sowed by himself, it was not sowed well. If he didn't close the door, the door was not closed properly.

In short, he made a career of frowning, lecturing, criticizing, and mumbling about the incompetencies of every other person in the rest of the world.

Unfortunately, the man was married, which made matters all the worse. No matter what his wife did, in his eyes it was wrong. No matter what the unfortunate woman cooked, sewed, or cleaned, or even when she milked the cow, it was never satisfactory, and he let her know it.

She tried very hard to be a good wife, but it seemed the harder she tried the less she pleased him. Finally, one evening she could take no more.

"I'll tell you what we'll do," she told him. "Tomorrow I will do your chores and you will do mine."

"But you can't do my chores," the man replied. "You don't know the first thing about sowing, hoeing, and irrigating."

But the woman was adamant. And on top of that, she was filled with a righteous anger that frankly astonished and frightened the man to the point where he didn't dare disagree.

So the next morning the wife went off to the fields and the man began the domestic chores. After thinking about it, he had actually convinced himself he was looking forward to it. Once and for all, he would demonstrate to his wife how things should be done.

Unfortunately, not everything went according to plan. In fact, nearly everything the man touched turned into disaster. He spilled the milk, let the pig get into the house, lost the cow, burned the dinner, and ultimately set the house on fire, narrowly escaping with his own life.

When his wife returned, she discovered her husband sitting on a pile of ashes, smoke still rising from his clothes. But the woman wasn't the type to rub things in. She helped him up, wiped the soot from his beard, fixed him a little something to eat, and then prepared a bed of straw for them to sleep on.

From that day forward, the man never complained about anyone or anything else for as long as he lived.

At different points in my life I've played the role of both people described in this story, so I can speak from experience when I say that there's no shortage of people who know the best way to develop software. The problem, however, is almost always one of context. What might work for one context, is absolutely the wrong solution in another. You can almost never judge correctly without knowing the context and you can not know the context without being a part of the process.

There are a lot of things that make developing software hard. I don't believe writing well designed, high quality software is easy for anyone, especially not for us who work on Mac software at Microsoft. But the challenge attracts some amazing people, for which I am personally grateful. It makes what otherwise might be impossible, doable. When I share with you what work is like for me, it's because not everyone can work on one of the oldest, most successful and most used Mac programs around. I figure you will find it interesting because, well, how do you go about testing 30 million lines of code? :-)

Today we had a nice visit from Sal Soghoian and Todd Fernandez from Apple. Among other things we talked about what's new with AppleScript and Automator and what requests we had for improvements to both. After the meeting I gave them a quick tour of the Mac Lab. We have now upgraded to where we have over 300 Mac minis and over 400 Macs total all dedicated to running AppleScript test automation. I recall Sal saying, "I'm on a serious AppleScript buzz!" I'm willing to bet it's the largest "AppleScript installment" he's ever seen!

Consider the implications of our automation test lab: There's all the hardware costs: the Macs, the KVMs, the switches, the power, the cooling, the Xserves, the SQL servers. Then there's a whole Operations team that keeps everything going. Then there's a whole Tools team that writes tools of all sorts to help our small team of testers and developers scale and manage the complexity involved. Then there's my team, the automation team, tasked with making our automation story successful. All this for what? So that we can ship to our customers a super reliable, safe, high quality product, specifically tailored and designed for the Mac. If this doesn't speak to the focused effort we are investing in making Office 12 insanely great, I don't know what does.

Others may balk at the effort required to design, build and test Office for the Mac, and I don't blame them. I'd probably do the same if I didn't understand the magnitude of what is involved first hand. We've got lots great new features in Office 12, only one of which is the support for the new file formats. It's hard to really express the scope and scale of things sometimes, but the Open XML based file format has been published and you can find the full spec online. It's a PDF 3975 pages long! Read that and you'll have all you need to understand the details of the new file format. It's a good example of what I like to call serious, professional software development at a massive scale.

You may never be a part of a software project as big as Office, but not too long from now, when you're using Office 12 on your Mac or a freely updated version of Office 2004, you won't care about all the details involved with getting every bit in those 3975 pages of Open XML spec correct, you'll expect things, like a Mac, to "just work". We want that too, which is why we do, what we do.

19 November 2006

The Cost of Focus

I just read this by Michael Bolton on testing, but I think it has more general application:

It occurs to me this evening that when test plans, test scripts, and testers look for particular problems with excessive focus, they do so at the expense of peripheral vision.

Contrast that with what Adam Richardson says about the importance of peripheral vision:

Bill Bradley is today known primarily as a politician in the US, but in his youth he was an outstanding basketball player. Among several notable abilities, he had a natural gift: his eyesight. Specifically, he had abnormally good peripheral vision. Whereas normal peripheral vision covers a horizontal field of 180 degrees, his covered 192 degrees - he could literally see behind himself. Vertically, most people can see 47 degrees upward while looking straight ahead. Bradley could see 72 degrees, meaning he could see the basket even when looking at the ground. These factors gave him an ability to see things on the court that others could not, and detect threats and opportunities earlier than others players. (For a nice essay about Bill Bradley, see this book by John McPhee.)

Peripheral vision is an interesting thing: it provides much less detail but much more sensitivity to movement than our central cone of vision (which is only about 7 degrees in diameter). Peripheral vision is essential when you’re in the jungle or on the savannah, spotting movement at the edges that indicate danger. But our medical tests for eyesight pretty much ignore peripheral vision, focusing instead on how much small detail you can resolve in your central cone.

Business analysis is often the same way. Movements at the edges that are ill-defined are ignored, and all tools and attention are focused on what we can see clearly with great detail that's right in front of us. But it’s the movements at the edges that can both be the most threatening, but also represent the new opportunities. This is where the disruptive innovations that Clayton Christensen talks about come from. By the time you can prove their existence in detail, it’s too late.

Wicked problems are very difficult to understand by staring straight into them and looking for clear detail, however. They need to be approached from the edges, sort of like doing a jigsaw puzzle where you find the edge pieces first. Having peripheral vision that is trained to be sensitive to the edges is a key capability (this applies both to product teams and to business units - wherever wicked problems occur).

So encourage staff and managers to pay attention to and nurture their peripheral vision - meeting with their “whacky” customers who push your products to the limit, talk to people who aren’t your customers any more and find out why, and pay close attention to disruptive innovators making cheap and “poor” products that your traditional customers wouldn’t touch. And if you think you're facing a wicked problem, don't expect hard numbers on it; by the time you've got solid data, it's probably too late.

Balance and timing once again seem to be the issue here. Focus, but not excessively otherwise you'll loose valuable peripheral vision which you'll need to find the next great ideas to focus on. It's often the free radical ideas that lead to the innovative idea. And if you are too focused, you'll miss them.

16 November 2006

Something Great

Consider this summary of the story of a horse named Snowman by Joseph B. Wirthlin:

Harry de Leyer was late to the auction on that snowy day in 1956, and all of the good horses had already been sold. The few that remained were old and spent and had been bought by a company that would salvage them.

Harry, the riding master at a girls' school in New York, was about to leave when one of these horses—an uncared-for, gray gelding with ugly-looking wounds on its legs—caught his eye. The animal still bore the marks that had been made by a heavy work harness, evidence to the hard life he had led. But something about him captured Harry's attention, so he offered $80 for him.

It was snowing when Harry's children saw the horse for the first time, and because of the coat of snow on the horse's back, the children named him "Snowman."

Harry took good care of the horse, which turned out to be a gentle and reliable friend—a horse the girls liked to ride because he was steady and didn't startle like some of the others. In fact, Snowman made such rapid improvement that a neighbor purchased him for twice what Harry had originally paid.

But Snowman kept disappearing from the neighbor's pasture—sometimes ending up in adjoining potato fields, other times back at Harry's. It appeared that the horse must have jumped over the fences between the properties, but that seemed impossible—Harry had never seen Snowman jump over anything much higher than a fallen log.

But eventually, the neighbor's patience came to an end, and he insisted Harry take back the horse.

For years, Harry's great dream had been to produce a champion jumping horse. He'd had moderate success in the past, but in order to compete at the highest levels, he knew he would have to buy a pedigreed horse that had been specifically bred to jump. And that kind of pedigree would cost far more than he could afford.

Snowman was already getting old—he was eight when Harry had purchased him—and he had been badly treated. But, apparently, Snowman wanted to jump, so Harry decided to see what the horse could do.

What Harry saw made him think that maybe his horse had a chance to compete.

In 1958, Harry entered Snowman in his first competition. Snowman stood among the beautifully bred, champion horses, looking very much out of place. Other horse breeders called Snowman a "flea-bitten gray."

But a wonderful, unbelievable thing happened that day.

Snowman won!

Harry continued to enter Snowman in other competitions, and Snowman continued to win.

Audiences cheered every time Snowman won an event. He became a symbol of how extraordinary an ordinary horse could be. He appeared on television. Stories and books were written about him.

As Snowman continued to win, one buyer offered $100,000 for the old plow horse, but Harry would not sell. In 1958 and 1959, Snowman was named "Horse of the Year." Eventually, the gray gelding—who had once been marked for sale to a low bidder—was inducted into the show jumping Hall of Fame.

For many, Snowman was much more than a horse. He became an example of the hidden, untapped potential that lies within each of us.

For me this story is both inspiring and challenging. Inspiring, because it makes me think I can do something really great. Challenging, because I don't know what that is exactly. Of course, everyone has their different ideas about what constitutes "something great", but more and more I'm starting get an idea. I've always loved this quote by Jenkins Lloyd Jones:

“Anyone who imagines that bliss is normal is going to waste a lot of time running around shouting that he has been robbed.

“[The fact is] most putts don’t drop. Most beef is tough. Most children grow up to be just people. Most successful marriages require a high degree of mutual toleration. Most jobs are more often dull than otherwise. …

“Life is like an old-time rail journey—delays, sidetracks, smoke, dust, cinders and jolts, interspersed only occasionally by beautiful vistas and thrilling bursts of speed.

“The trick is to thank the Lord for letting you have the ride"

And then M. Scott Peck in The Road Less Traveled:

Life is difficult.

This is a great truth, one of the greatest truths. It is a great truth because once we truly see this truth, we transcend it. Once we truly know that life is difficult – once we truly understand and accept it – then life is no longer difficult. Because once it is accepted, the fact that life is difficult no longer matters.

Most do not fully see this truth that life is difficult. Instead they moan more or less incessantly, noisily or subtly, about the enormity of their problems, their burdens, and their difficulties as if life were generally easy, as if life should be easy. They voice their belief, noisily or subtly, that their difficulties represent a unique kind of affliction that should not be and that has somehow been especially visited upon them, or else upon their families, their tribe, their class, their nation, their race or even their species, and not upon others. I know about this moaning because I have done my share.

Life is a series of problems. Do we want to moan about them or solve them?

I suppose I'll finish this way: I've been feeling very thankful these last few days. Thankful for my job and the people I've been able to work with over the years. Thankful for the enormous challenges we get to tackle and the support I've been given from so many people, not the least of which has been my family. So many times, things could have really turned out bad, and they didn't. And then some times they did, and we worked through that too. So, maybe that is something great, sustained effort toward worthy goals. Either way, I sure am learning a lot.

15 November 2006

Coding Blogs

This is part 3 in my "Blogs I Read" series. I hope you find it useful.

ADC Headlines - Apple - Feed

I find it really useful to keep on top of the new documentation that is added to Apple's Developer Connection website. I'll often find something new I didn't know, but mostly just seeing a "how to" or bit of sample code is enough to jog my memory when I come up against a similar problem.

Big Nerd Ranch Weblog - Big Nerd Ranch Folk - Feed

The Big Nerd Ranch started as a week long immersive training experience in Atlanta, Georgia. You focus on code intensely and remotely. The one fee covers food, lodging, transportation to and from the airport. It looks like they now have a "ranch" setup in Rome, Italy. I subscribe mostly because, well, I'd like to attend there the Cocoa training some day. Also, I think it's a great idea for helping people focus. I've heard that out on The Ranch, there's no internet connection and poor cell phone reception. It's amazing what cutting out distractions can do for a learner's capacity to gain understanding. I've been to a lot of training, but nothing like this, so I guess it really appeals to me. To top it all off, Aaron Hillegass author of arguably two of the best Mac OS X programming books, is one of the Cocoa instructors there.

Cocoa Dev Central - Scott Stevenson - Feed

This is my favorite learn-about-Cocoa site. Scott Stevenson has a clean, clear style and knows how to remove the unnecessary details making his Cocoa tutorials content-dense and easy to read. The site is well designed and just looks great and I admit, for me, that counts. It is really a one stop shop for learning about Cocoa for the beginner and advanced developer alike.

Mac OS Forge - Apple - Feed

What can I say here? I'm interested to see if Apple can make their second try at open source community work. I hope they can figure it out.

Mac OS X Internals - Amit Singh - Feed

Amit has been publishing extremely interesting and low level details about Mac OS X since at least 2003. I've always enjoyed his writing and recently he published a book named Mac OS X Internals. He doesn't post very often, but when he does, it's always worth the read. One of the main reasons I value Amit's writing is the way he contrasts and compares the Mac OS with other operating systems. If OS level stuff interests you, you'll love this blog.

Martin Fowler - Martin Fowler - Feed

Martin Fowler has been around for a long time, so his seasoned opinion holds a lot of weight for me. Seems like I am continually discovering "new" ideas and programming or computer science concepts that were discovered 20 years ago! He talks about software architecture, object-oriented analysis and design, refactoring, Unified Modeling Language, software patterns, and agile software development methodologies.

TextMate Blog - Allan Odgaard - Feed

And speaking of old ideas revisited, Allan has taken ideas from the venerable emacs command line editor and put and UI on them and then added some great new ideas of his own. Just when it seemed like BBEdit had the whole text editor market tied up, along comes TextMate and really ups the innovation ante. I'm a fan because: 1) I'm learning about the editor and the blog often shows me how to do stuff I didn't understand before and 2) I love rooting for the underdog. :-) If you spend a lot of time editing text on a Mac, you've absolutely got to check out TextMate.

14 November 2006

World Usability Day

I just found out that today is World Usability Day, and I couldn't help from laughing at the poster. Yeah, usability really matters. Enjoy. :-)

11 November 2006

The Anatomy of Peace

I recently listened to a BYU Devotional in which LDS Church President Gordon B. Hinckley simply related from his life "Experiences Worth Remembering." One of the last experiences he shared was this:

I had a long remembered experience with Mr. Shimon Peres of Israel. He was a former Prime Minister. He had seen much of conflict and trouble in his days. I asked him if whether there was any solution to the great problems that constantly seem to divide the people of Israel and the Palestinians. He replied, "Of course there is!" As I recall he said, "When we were Adam and Eve we were all one. Is there any need for us now to be divided into segments with hatred for one another?"

He then told an very interesting story that he said he had heard from a Muslim. The Muslim told of a Jewish Rabbi who was conversing with two of his friends, the Rabbi asked one of the men, "How do you know when the night is over and a new day has begun?"

His friend replied, "When you look into the East and can distinguish a sheep from a goat, then you know the night is over and the day has begun."

The second was asked the same question. He replied, "When you look into the distance and can distinguish an olive tree from a fig tree, then you know morning has come."

They then asked the Rabbi how he could tell when the night is over and the day begins. He thought for a time and then said, "When you look into the East and see the face of a woman and you can say, 'She is my sister.' and when you can look into the East and see the face of a man and can say, 'He is my brother.' then you know the light of a new day has come.

I'm currently reading a book named The Anatomy of Peace from which I chose the title for this post. One of the ideas presented is that when we treat people as objects, we are at war with them and bad things happen. When we start to see others as real people, not objects, the whole world changes before us.

Like so many things, it's simple, but very hard to do.

08 November 2006

Windows Vista releases to manufacturing

It's funny, here at Microsoft when we finish a project, we "release to manufacturing" which is implied to mean that we carry the "golden copy" of the product to the replication factory which they then use to manufacture millions of packaged copies for everyone. This manufacturing might start right away, but most people will not get their copy until next year. It's been a very long road for Vista, but it has finally RTM'd. Over the next few months Microsoft IT will be rolling it out to everyone here at work. Volume license business customers will get their copies by the end of this month, while regular PC users will get their copies on January 30, 2007.

From my perspective I'm glad it's finally shipped. I hope all my underwater stock options become wildly valuable! I'm also glad because since it's "done" there's a very good chance that Apple will finally fully disclose what ever secrets they were hiding from us at WWDC. MacWorld in January will be the perfect time for Apple to try to 1 up Vista, and I'm sure they know it.

I've been playing around with Vista and I've watched a few demos, but it's not on my main PC yet. Even with my limited knowledge of the features in Vista, there are two features I'd like Apple to copy right away: ASLR and Windows Meeting Space.


From Wikipedia:

Address space layout randomization (ASLR) is a computer security feature which involves arranging the positions of key data areas, usually including the base of the executable and position of libraries, heap, and stack, randomly in a process' address space.

Basically, this really has a chance at making Vista much more secure. I'm all for it. More info can be found here.

Windows Meeting Space

This is a very cool collaboration application included with Vista and referenced from Microsoft's Tips and Tricks document as follows:

Collaborate with a co-worker.

Want an easy way to share files and applications with a colleague or customer—even when you may not be part of the same network? Windows Meeting Space is a new experience in Windows Vista that enables you to start an impromptu collaboration session with other Windows Vista users. Simply open Windows Meeting Space and start a session. Windows Vista will automatically detect other Windows Vista users that are on the same sub-net infrastructure or close enough for you to create an ad hoc (direct PC-to-PC connection) wireless connection. Once you have invited them and they have accepted, you can share documents by simply dragging a document to the Handouts area on the bottom right which instantly replicates that file across the other meeting participants’ machines. Dragging the file to the presentation area on the left side starts application sharing, enabling the other participants to watch as you present that file. If someone has a good edit for your file, you can make that edit in real time, or pass control of the application directly to that participant for them to make that edit for you.

This tool works with any document or application and finds people near by just like Bonjour. It's a little less concurrent than SubEthaEdit, but for all your applications! Having something like this, system wide on the Mac would be very cool.

And yes, I think the MacBU is at least partially responsible for inspiring the cool new Vista box. :-)

06 November 2006

Impatience and Design by Counter Example

“Don’t worry about other people stealing your ideas. If you’re ideas are any good, you’ll have to ram them down people’s throats.” - Howard Aiken, IBM Engineer

This is my favorite quote for the day. Innovation, with all the ideas and execution that it requires, fails to happen for so many reasons, but most common in my experience are these two:

1. Design by Counter Example

2. Impatience

Design by Counter Example

Suppose you come up with some fantastic idea, you are excited about it, so you begin to share it with your coworkers and friends. If your friends are smart, they'll begin to analyis your idea for weaknesses and flaws. They'll do this not because they don't like you or don't trust you, they'll do this because it's what they are trained to do. Find the problems and worse, find the 100% solution, the solution that works everywhere. You'll know these people because they'll often begin their comments to you with "No, but..." or "What about..."

The problem with the "No, but..." response is that it sets up conflict, and no forward progress in idea generation can be made until the conflict is resolved. Worse, conflict resolution wastes time and energy and discourages more idea sharing. The "What about..." response almost always follows with some scenario or example that counters your idea in some way. Your response will often be an attempt to resolve that counter example, which when solved will be rewarded with a new and different counter example. Corner case upon corner case, what was a clear, bold and brilliant idea, gets designed into a complex, multifaceted feature that is costly to explain, build and test. If you share your ideas with a team of smart people, this can happen in a disastrously quick manner.


Impatience is perhaps the subtlest of innovation killers. You will need patience as you develop the ideas because it will be hard to teach your idea to others, and then once the vision is clear, it will take yet longer to actually implement it. Remember it took Steve Jobs 18 months to convince the record labels to let him build the iTunes music store. If you back down at any point in this long journey, that is when innovation dies. This is why I believe, in so many ways, it's all about the execution.

Ideas are important too, and when you are generating ideas, being creative, all too often a well meaning individuals will ask you to rate the ideas and place them in priority order for potential business impact. This is a good idea, but done too soon, it's like asking a 3 year old what valuable contribution he or she will make to the world, and bereft of any intelligible response condemning the toddler to uselessness.

This impatience to see whether an idea is good or not kills innovation because the real innovation happens generally not in one brilliant flash of light, but at the interaction of ideas, and often ideas interacting with others in the periphery. I first heard Steve Jobs coin the phrase, "connect the dots backwards" and I think this applies here. You can't tell what will be important until after the fact, after the interaction. What you need is a safe place for lots of ideas to interact with out getting shot down. It looks like this:

Creating an environment where ideas can patiently interact and people can interact with the ideas before making the "do or die" business decision is key. What's even more important than the ideas, is that you don't kill the idea generators and integrators, that is, the people! Consider this story related by Heike Bruch and Sumantra Ghoshal in the February 2002 issue of the Harvard Business Review:

"In a major U.S. oil company, for example, we witnessed a committed and enthusiastic manager gradually become apathetic. An IT specialist, he was assigned to an inter-disciplinary strategy-development task force that was charged with creating a new business model for an up-stream division. The team came up with several radical proposals, but they were met with lukewarm responses from senior managers. After several months, the team's ideas were diluted to the point that not even the IT manger found them interesting. What had once been an exciting task became a farce, from his point of view. Believing that no one was interested in new ideas, he concluded that he was foolish to have been engaged as he was. "I distanced my self," he says, "I knew that none of our innovating ideas would ever make it to implementation. So I continued working out concepts and ideas-but with no skin in the game."

To be fair, even the best organizations occasionally create cynics out of enthusiasts. But some organizations seem to make a practice of it by constantly sabotaging any flickers of creativity or initiative."

When creativity flickers, don't let the cold winds of cost benefit analysis prevail. Provide the fuel of saying "Yes!" and patience to wait and see, even if you must suspend your disbelief. This will give people the space and time they need to make great things happen. Remember it took Michelangelo years to complete the Sistine chapel and Goethe spent almost 60 years writing his masterwork Faust. Good things take time.

So, if you want to be innovative here's my advice:

  • Focus on execution, on making ideas reality. For every thousand great ideas, only one reaches someone with the courage to actually do something with it.

  • Stop saying "No, but...", learn to say "Yes, and...", find a way to talk about ideas that adds more and moves them forward. Give folks what they want. Suspend your disbelief.

  • Be patient, great things take time. The really great ideas are going to be a collision of ideas. Let them grow so they can interact.

02 November 2006

Great Marketing

I recently discovered Dragster, and on their front page the have this 19 second movie that consists of these 6 slides:

This is simply great marketing:

1. As much as I don't enjoy Apple's front page QuickTime movies, this really does catch my attention.

2. In 19 seconds I know exactly what the value this tool provides.

3. I'm introduced to both the name at the beginning and the end.

4. I'm introduced to the dragster icon twice, once in the Dock and the other time as the full logo.

5. The icon looks cool. Something you'd like to have in your dock just to show off.

6. The name is just great! It mixes something very tangible with the Mac gesture of drag and drop.

Great stuff. Maybe there are indie Windows developers this cool, but I just don't see them.

01 November 2006

Business Blogs

This is part 2 in my "Blogs I Read" series. I hope you find it useful.

Unitus Microfinance Blog - Unitus Employees - Feed

Unitus is a very cool company that focuses on alleviating global poverty by increasing access to microfinance. What I like best about this company is that they are proving that "doing the right thing" (helping the poor) doesn't just make sense in a non-tangible-good-karma-kind-of-way, it actually makes ROI business sense! We need more companies like this.

Sviokla's Context - John Sviokla - Feed

This is one of my favorite blogs. From his web page: "Dr. John J. Sviokla is vice chairman of Diamond Management & Technology Consultants, Inc., and serves on the firm’s Board of Directors as Global Managing Director of Innovation and Research. For the past nineteen years, Dr. Sviokla has been pursuing one simple question: How can executives create value with technology? He is a frequent speaker at executive forums and guest professor at institutions including Harvard, MIT, the London Business School, and Oxford." Every post is interesting, well written and thought provoking. Simply put, if you're interested in business, you'll want to read as many of his archived posts as you can.

the legal thing... - Michael Dillon - Sun General Council - Feed

You can't have a really successful business without getting involved with the legal side of things. It's very much the context in which the game of business is played. For "legal reasons" it's rare to find an interesting lawyer blog, but to find a General Counsel blogging, well that's some thing very unusual. It's a new blog, but so far it's been worth the read.

Wall Street Breakfast - Seeking Alpha Staff - Feed

One page annotated Wall Street Journal summaries. What can I say, it's quick and informative. It helps me put businesses and industries in context.

26 October 2006

Apple General Blogs

This is part 1 in my "Blogs I Read" series. I hope you find it useful. Infinite Loop - Ars Technica Staff - Feed I found Ars Technica before it had an RSS feed and it quickly earned a place on my bookmark bar. Infinite Loop is the Apple subsection or "journal" of their main site and they do a good job of finding interesting stuff Apple related. They put it best: "Infinite Loop is Ars Technica's journal devoted to Apple and Apple related ventures." My favorite part about their web site? Their tag line: "Serving the PC enthusiast for over 6 x 10^-2 centuries" Daring Fireball - John Gruber - Feed I really don't know where John came from, just that all of the sudden there was this guy who seemed to continuously have these very detailed and interesting Mac articles on his web site. That was a while back, now he's gone "pro" as a full-time blogger. His business model? Buy a shirt from him, and get full access to his daily links RSS feed for 1 year. I hope he's able to keep it up. His best post ever: Vacation, All I Ever Wanted in which he single handedly explains the joys of being a young Dad, the priceless nature of a single photo and the core reason all of us really need a bullet-proof backup system like Time Machine. FatBits - John Siracusa - Feed John Siracusa does excellent long form reporting of Apple and the Mac OS. Since we moved from Mac OS 9 to Mac OS X he has done the most extensive analysis of each of the major OS releases. Even with months of experience with the OS seeds we get from Apple, John still seems to find plenty new and interesting. John's blog is a classic quality over frequency type of blog. Planet Tao of Mac - Various Authors - Feed This is a cool collection blog of many Mac users around the world. I like it because 1) I was asked to be a part of it. ;-) and 2) It helps me keep my thinking about Apple and the Mac OS in a more world wide view point rather than the US centric standard. Slashdot: Apple - Various Slashdot Users - Feed Slashdot's tag line is: "News for nerds, stuff that matters" and that pretty much sums it up. It's also kind of nice to get my daily dose of MS hate and Apple love in one place. ;-) Think Secret - Unknown - Feed There are many Apple rumor blogs, and they all seem to have about the same "quality". I just picked one. It's a never ending pass-time to guess about what Apple might do next. So this blog fills that need, if you have it.

24 October 2006

Out of the Best Books

I've been reading blogs for over 2 years now. That's not very much time, but enough to really appreciate the conversation that is the "blogosphere." I'm only now realizing that because of my time invested in reading blogs, I'm not getting to read the books that normally I'm able to enjoy. Additionally, since I started working at Microsoft as a teenager, I've never finished my college degree. Now it's time to focus in earnest on completing that bit of my education. (Sidenote: If you have any tips for attending college and working full-time, send 'em my way!) So, in order to make more time in my life, I'm going to unsubscribe from many of my favorite blogs, not because of the content quality, but simply because for this next season in my life, I can't afford that luxury. So the next few posts are going to be a little meta-meta while I blog about blogs. :-) I figure that if I'm not going to read these excellent blogs anymore, at least a few of my readers might enjoy reading them in my absence. Further, it will be interesting from a personal recording standpoint when I come back, to see how my interests have changed. My process for choosing which blogs I read has been roughly this:

  1. Someone I trust points me to a new blog or blog post.
  2. I read the post and then skim the rest of the current posts, if most of the posts look insightful, I subscribe.
  3. If the author posts multiple times each day, I'll often unsubscribe, unless the posts are very short and very interesting. This kind of rapid fire posting might be good for traffic, but the randomization doesn't help me focus or think deeply about the topic at hand.
  4. Generally, I tend toward long form posts, rather than short pithy stuff. Not that I don't enjoy cleverness, it's just that from my experience most worthwhile topics can't be reduced to a simple sound bite without severe data loss.
  5. There's always a risk that an author will have a few brilliant posts and then degrade into less meaningful writing. When I see this happen, I unsubscribe.
I use NewsFire to read blogs. It's simple, small and stays out of my way. In NewsFire I have a set of blogs in my "Interesting" group. This is my holding bin, the place where I put new blogs I've encountered, but are currently "on trial" to see if they graduate to a final resting place as one of my standard blogs. My typical pattern is to skim posts in NewsFire to see what I want to take time to read and fully digest the ideas. If I do, I open the post as a new tab in Safari. When I'm done, I close NewsFire and process the remaining pages open in Safari. So, I hope you enjoy the next few pointers. And if you are the author of a blog I mention, don't be sad, just remember, it's not a "good bye", it's just a "see you later." ;-)

23 October 2006

WWDC Sessions on iTunes

I just got this email from Apple: What can I say? Apple, you just made my day. (And pushed me that much closer to a Video iPod...) It looks like there's more content on the way. Did I mention since I attended the conference, all of this is "free"? It will be interesting to see if ADC members who didn't attend will be able to purchase this content. I sure hope so. Update: For a direct link to the iTunes area, click here

20 October 2006

$30,000 Apple Logo

A few months ago we got a bunch of Intel Mac minis (Intel Core Solo). We got 64 for automation and a some others for testers to use. When I saw the pile of boxes sitting in the hall to be recycled, I knew I had to save them. We piled them into my office knowing that there would be something I could do with them, but I just didn't know what or when. A few weeks later, it hit me. I opened up OmniGraffle and sketched out the plan:

The Plan
For those of you not experienced with pixel art, what you see above is the Apple logo. I might add that it's very hard to come up with something that will look like the Apple logo with so few pixels. Seriously, try it. Once I got something that looked good, I got Joe to come and help me out. It took a bit of effort, but with Joe's help and some double sided tape, we got it finished:
My Office Apple Logo
I like to think I have the most expensive non-Apple-assembled Apple logo in my Office. This week we got our shipment of an additional 64 Intel Mac minis (Intel Core Duo) for automation. Hmmm, more boxes...

19 October 2006


Jonathan Rentzsch is putting on a small developer conference called C4. For various reasons I'm not able to go, but oh how I want to. I'm SO glad it's going to be re-broadcast like Evening at Adler was. Any how, I just found out that one of our Office developers, namely Olof Hellman, is making the trek all the way from Redmond to Chicago for the conference! I'm so jealous. The good news is that he'll be blogging about it on our team blog, Mac Mojo, so if you haven't subscribed to the Official MacBU blog and are interested in C4, I'd subscribe to the blog just for Olof's guest posts while at the conference.

17 October 2006

New Sony Bravia Paint Ad

I've posted before about how much I liked the other Sony Bravia ad and this new water-based-paint explosion ad looked really interesting. Today Sony released it. Check it out here. I'm not impressed. It's an amazing amount of work, to be sure, but it seems like it's too fast and ends too abruptly. Maybe that's what they were going for, but what's up with the clown? There is a good part at the end when all the "colored rain" comes down in different shades, other than that, not very inspiring. I would have liked to see more slow motion paint movement as well as different music that is less agitating. On the other hand, maybe it's just me and everyone else will just love the whole thing. Since many asked last time about the clean up, here's what they have to say:

Our latest TV ad - featuring massive paint explosions - took 10 days and 250 people to film. Huge quantities of paint were needed to accomplish this, which had to be delivered in 1 tonne trucks and mixed on-site by 20 people. The effect was stunning, but afterwards a major clean-up operation was required to clear away all that paint! The cleaning took 5 days and 60 people. Thankfully, the use of a special water-based paint made it easy to scrape-up once the water had evaporated. Keeping everyone safe was also an important factor. A special kind of non-toxic paint was used that is safe enough to drink (it contains the same thickeners that are sometimes used in soups). It was also completely harmless to the skin.

Woz at Microsoft

One of the cool things about working at Microsoft is the constant stream of interesting guest speakers. Recently it was Steve Wozniak. It was facinating to listen to him speak about his love for technology. I had my trusty MacBook Pro and took down some notes and fun quotes. On chip design: "I played a game: how can you design it better than before. I wanted to see if I could design something with half as many parts." On wanting a computer: I told my Dad, "I'm going to have a computer." Dad said, "It costs as much as a house." I was stunned and quickly replied, "Then I'm going to get an apartment." About his microprocessor, "I couldn't afford one, but I could build it. I could always build something for free." Woz was giving away his Basic schematics, then when Jobs found out, he said, "Let's sell it." On Human Computer Interaction: "It's a lot easier to design a computer than make it acceptable to people in their lives." On Apple's rank in early computer magazines: "Apple was always at the top of the list, you know, alphabetical order." On the small business owners in the 70s and 80s: "They didn't want a computer, they wanted a solution." On childlike learning: "What's fun for kids can be fun for adults and that's my philosophy." Someone asked what excites you? His response: "Products done really well from the people point of view." "Steve jobs never programmed in his life." Someone asked if he had any regrets to which Woz replied: "Regrets about Apple, no. Regrets about my own life? Yes, I wish I would have put floating point in Basic, but I wanted to get it done quick."

02 October 2006

Using Scrum in MacBU

Today marks the official beginning of sprint number 2 for the Automation Team. Last month was our first attempt at a modified Scrum. I mention "modified Scrum" simply because of the cruel fact that I don't know everything there is to know about the Scrum Methodology. We just kind of picked out what made immediate sense and did it. It's a good change and we are learning. While our team is the first team in MacBU to be using this Agile process, hundreds of teams at Microsoft have had great success with it. We've had daily standup meetings for a long time, but this was the first time we actually did the product backlog and sprint backlog so I thought I'd record some of my personal reactions to the experience. There's a lot to like about what we've experienced so far, and as we figure out better how to apply this "Agile" stuff, I'm hopeful things will get even better. Here are some of my first impressions about the process: The backlog provides an awesome communication vehicle. Before the beginning of September the four of us on my team got together and generated a big long list of all the things we would like to do. We put all of this in OmniPlan, and then selected a subset that we would tackle in September. This did several very good things:

  1. It got us all excited about the ways our team could contribute to the overall success of the software products we produce.
  2. Helped us "get on the same page" with respect to the meaning of the individual items. You'd be surprised how different people can interpret even the shortest sentence!
  3. Allowed everyone on the team to see exactly what everyone else had to do.
  4. Allowed me, as a lead, to post the sprint backlog in the Lab for everyone to see. If folks wanted to see what we were working on, or how much progress we were making, it became very trivial. Perhaps low tech, but effective.
Developers are less randomized and more focused. Part of working on an internal team that builds software for folks sitting in the office next to you is that you get a lot of requests and lots of feedback. This is good, but the flip side is it can also lead to lots of interruptions and cause your efforts to be spread so thin that your effectiveness suffers. With our focus set in the Sprint backlog, new requests simply wait until the next sprint. All the devs get to remain heads down getting stuff done. Cross Team Collaboration Improves. With the sprint backlog in place, when someone or some team comes to us to ask us to "Do X" we can immediately respond, "That's a great idea, does it need to happen this sprint?" Almost always, it can wait, and this does two great things:
  1. It allows time for the customer to really think about the request. By the time the next sprint rolls around what was life-and-death-urgent is now better thought out and prioritized more realistically.
  2. It gets our "customers" in sync with our rhythm of delivery. The theme becomes, "Get your ideas in the next sprint's backlog, and you'll see some action on it in a month." All the lobbying for changes and design discussions about what goes in next will happen with the Product Backlog owner (me in this case) while the rest of the devs are uninterrupted.
High quality things get done! This seems maybe a bit silly, but at the end of the sprint, even if you way over estimated your production capability, (which we did) you have something to show for your efforts. Not just working software, but reasonable easy to understand metrics (like units of work per day) that everyone can understand when you need to explain why it will indeed take 3 weeks to deliver a high quality solution next sprint. Things get better now. One of the most interesting things about this whole process is how it elevates and exposes problems in the stuff you are doing. As you look at the backlog and compare your velocity of production to what you thought you could do, immediately you and everyone else begin to consider, "Why does this take so long?" On the last day of the sprint, (last Friday for us) we got together in the Cafeteria and took some time just to reflect on how things went, what slowed us down, and what can we do better. What's great about this is you remember what you were doing and then we add to the next Sprint items that will increase our velocity. As Henry Petroski has said in To Engineer Is Human: The Role of Failure in Successful Design, we learn more from our failures than our successes. But only if we pay attention to the failures and figure out what to do right the next time. This is so much better than waiting until we ship Office to have our "Post Mortem" to discuss how the release went. Problems are fresh, and fixing them right away have a good chance of paying off in the current product cycle. All in all, I'm very happy with how Scrum is working for our Team. For October, the Tools Team and Lab Team are joining us in testing out the Scrum process. I hope it works out for them, as well as it did for us. P.S. If this kind of software development stuff interests you, there's a great overview talk I recently found by Ken Schwaber which was produced as part of the Google Tech Talk series. I really enjoyed it. Lastly, if any of you have any sage advice for a Scrum Master in Training, I'd love to hear it.

29 September 2006

Apple Keynote Bloopers

This is super funny mix of many of the Apple keynote bloopers. I'm sure it's been around a long time, but I just discovered it. I've helped with behind the scenes for demos and presentations at MacWorld for Microsoft. When you are doing the demo or working to setup things behind stage, it's amazing how challenging it is to get everything right. The most important tips for doing this kind of thing are:

  1. Practice, practice and practice.
  2. Have multiple backups: hardware, software, everything!

via João Bordalo

27 September 2006


Note: This is a re-post of my 1st post on our Official MacBU Blog, Mac Mojo. If you haven't added Mac Mojo to your blogs to read, I'd recommend it. I'll be posting over there along with about 10 or so other folk in MacBU. Check it out, I think you'll enjoy it. --- Hello! My name is David Weiss and I'm the Automation Test Lead in MacBU, which means that I build stuff to help us test our code better. It's a great job. I could give you a detailed introduction, but I've kinda already done that. I could talk about automation practices or our sweet beowulf cluster, uh, I mean automation setup, but today, I'm not going to talk about work, at least directly. Today, it's all about the food! Since the MacBU was organized in 1997, we've moved from building 17 to building 44 and then to building 115. Change is one of those constants here at Microsoft and physical location is not excluded. Building 17 was the long time abode of Office, Win and Mac. When we moved to 44 it was the first time we were physically separated from the Win Office team which allowed us to develop some of our own unique identity, but the best part of building 44 was the conference rooms, or the food associated with, the conference rooms. I don't know how it is at other corporations, but often there would be a morning or afternoon conference room meeting and catering would be provided. It didn't take us long to notice that after the attendees had finished eating and returned to their meeting, there was a small window of time where the food was available before catering would clean up the food and toss it out. Being the ecologically sound individuals we are, and dissatisfied with waste of any kind, we setup an email alert system. One of the team, we'll call him Matt, setup an email rule on his machine so that any email sent to him with a subject that contained the text "[Food]" was duplicated and forwarded to other super secret food recon agents. In this way, we remained successfully "below the radar" of counter intelligence units. Until, of course, Matt turned his computer off. When that happened, we were all downgraded to free-pop-only status. After about 2 days we realized that we had totally missed one of the key aspects to an Official Microsoft operation, and that is, of course, a whole bunch of letters stuck together in a crazy acronym and the FAQ explaining it. What did we name our operation?

MBUSWAT: The MacBU Sustenance Watch and Acquisition Team!
Our Mission Statement: To seek out and share information pertaining to free food available at work.
Generally the standard encryption technology used to prevent unauthorized eaters from viewing our confidential communiqués was white colored text. This worked until we found that conspiring developers had added a feature to expose our secret messages to prying eyes: Auto Preview. We increased our encryption standard to include about 3 lines of non-encrypted babble prior to the encrypted message. This method has been found effective to this day, even with modern email clients! Well, anyone familiar with food services and catering knows this one truth:
  1. Food quality degrades as the time increases in which the food sits idle, sad and unconsumed.
To combat this reality and better meet the cross group communication needs we developed a clear rating system (with easy to understand color coordination): Code Red: Food is available, but guarded by food service personal. Be wary of a status change. Code Yellow: Food is being consumed by conference room attendees. Soon we'll be able to move in. Code Green: Food is all clear. Act quickly, or you'll regret it. Code Brown: Food is still available, but due to prolonged exposure, it may taste like, well, not so good. Code Puke Green: Food is still there, but eat at your own risk, it looks or tastes nasty. With this plan in place, communication improved significantly, but alas, we continued to be plagued with the dependency on Matt's computer being fully operational. Since Matt, being the good tester that he is, often found ways to crash his computer (in the days of Mac OS 9) and hang or crash his email client, we needed to permanently sever "the Matt dependency". We did this by creating a distribution list on the mail server. The end result is that anyone who sent email to "food" would have that email sent to all who participated in the super-secret-group-mission of free food recon, disclosure and consumption. However, this efficiency gain significantly increased our exposure to being "outed" by the catering overlords, so while we stealthily kept the short name of food, we changed the friendly name of the alias to, "Mac Crossteam Discussion" which has kept us safe ever since. All of this lead to a namespace collision with the .NET team here at Microsoft. It all started with this fairly benign email:
From: Snax.Net To: Mac Crossteam Discussion Subject: New snacks reported at Snack.NET! A new snack in the Candy category has been reported in your building. Here is a description: So much peanut brittle you'll be sick for days. Log on to Snack.NET for further details! This email has been generated automatically. Do not reply to this email. If you would like to be removed from this list, please visit the Snack.NET website and unsubscribe. This has been a recording.
Of course, this kind of tempting notification led to simultaneous surprise, fear and hunger. Our covert ops team immediately got to work. Soon we discovered that Matt Stoecker was the author of a "test application" named "Snax.NET" which allowed for companywide snack notification. As he was testing the mail notification system, he used our alias. After Mr. Stoecker clarified and apologized, Agent Snook followed up with the salient question, "Can we still get the peanut brittle?" Agent B expanding on that theme continued, "I think Agent Snook makes a good point here. One cannot simply suggest the presence of peanut brittle and then not provide some easy way to access said tasty treat. I, for one, feel heinously bamboozled. And, I fear, this feeling of bamboozlement will only abate with copious quantities of peanut brittle..." Not long after this email exchange two guys from the Snax.NET team showed up with 2 buckets of peanut brittle! Complete office delivery is way better than having to go out searching for leftover catering! Today, the Snax.NET server has gone to that great big bit bucket in the sky, but here at MacBU, we are still on constant alert for what goodies might befall us. And now you know, the rest of the story. ;-)

25 September 2006

Making Good on a Mistake

I just read the following email for Apple:

From: iTunes Store Support

Sent: Saturday, September 23, 2006 2:41 AM

To: David Weiss

Subject: iTunes: Your recent TV show downloads

Dear David,

Due to a system error, you were recently charged for downloads that were meant to be free. You were incorrectly charged $11.94 plus tax for your recent download of the three ABC season finales on the iTunes Store. We will reverse the incorrect charges and you should see the credit within 7 days, depending on how quickly your credit card company processes the reversal.

Our customers are very important to us and we sincerely apologize for any inconvenience this has caused.

Please accept these three video codes good for any $1.99 TV show or music video from the iTunes Store as part of our apology. You can redeem your codes by just clicking the links below.







If you have any questions or concerns, please contact our customer service team by replying to this email.



iTunes Store Team


Here are some things that make me feel like I actually matter to them, amidst the gazillion other folks that purchase stuff from them:

1. It's signed by "Kate", not "Some Random iTunes Drone" or worse yet "iTunes Store Team". It's really signed by someone's name! Kate, I thank you.

2. It was their fault and they are aware of it, before I even figured out there was a problem. Isn't that how it's supposed to be?

3. They are fixing the problem (refunding my credit card) but also giving me $$ for the hassle. Folks it's 12 bucks!

4. The email is text only, short and to the point.

5. I can actually REPLY to the email like a normal person! None of this "do_not_reply@company.com"

It's these little things that count. I'm biased already, but stuff like this just makes a customer for life! I've talked about customer support before, but I will happily pay more for support like this. It makes my day and amidst the many things that don't work right every day, it's nice to get an email that reminds me that there are some things working correctly even if "the system" is not. Thanks Apple. Thanks Kate.

21 September 2006

Inventory and Shipping Costs

The entrepreneur in me just beams with excitement reading this announcement from Amazon:

Fulfillment by Amazon beta An Amazon Fulfillment Services Group Fulfillment by Amazon (FBA) is a new program that makes delivering your Pro Merchant Program and WebStore orders a snap. You send your new and used products to us, and we'll store them. As orders are placed, we'll pick, pack and ship them to your customers from our network of fulfillment centers. Simple fulfillment. Better customer service. Inventory Storage — You still own your inventory, but we warehouse it. Pick, Pack and Ship — When a customer places an order we pick, pack and ship it. Powerful Promotions — Your items can be combined with other Amazon-fulfilled items in one shipment, so customers save on shipping costs. With Fulfillment by Amazon, you can offer your customers Amazon Prime, free Super Saver Shipping on qualifying sales through Amazon.com. Customer Service — We manage post-order customer service, including the return and refund process, 24 hours a day, 7 days a week. How it works
  1. You send us your inventory - Label, pack and ship your items to Amazon.
  2. We store your inventory - When we receive your items, we'll store them until an order is placed.
  3. We fulfill your order - When an order is placed, we'll pick, pack and ship the item, and may combine it with other items in the same order.
  4. We manage all post-order customer service - We'll manage post-order customer service and handle returns as needed.
Wow and double wow. So what about the pricing? Seems reasonable to me. Maybe Amazon does personal storage next? ;-)

20 September 2006

You can do it!

My Dad just sent me this inspiring quote by Marianne Williamson from A Return To Love: Reflections on the Principles of A Course in Miracles

Our deepest fear is not that we are inadequate. Our deepest fear is that we are powerful beyond measure. It is our light, not our darkness that most frightens us. We ask ourselves, Who am I to be brilliant, gorgeous, talented, fabulous? Actually, who are you not to be? You are a child of God. Your playing small does not serve the world. There is nothing enlightened about shrinking so that other people won't feel insecure around you. We are all meant to shine, as children do. We were born to make manifest the glory of God that is within us. It's not just in some of us; it's in everyone. And as we let our own light shine, we unconsciously give other people permission to do the same. As we are liberated from our own fear, our presence automatically liberates others.
For me, at least, this is true and reading it reminded me of a great post by Seth Godin on ways to defend the status quo:
Top ways to defend the status quo
  1. "That will never work."
  2. "... That said, the labor laws make it difficult for us to do a lot of the suggestions [you] put out. And we do live in a lawsuit oriented society.""
  3. "Can you show me some research that demonstrates that this will work?"
  4. "Well, if you had some real-world experience, then you would understand."
  5. "I don't think our customers will go for that, and without them we'd never be able to afford to try this."
  6. "It's fantastic, but the salesforce won't like it."
  7. "The salesforce is willing to give it a try, but [major retailer] won't stock it."
  8. "There are government regulations and this won't be permitted."
  9. "Well, this might work for other people, but I think we'll stick with what we've got."
  10. "We'll let someone else prove it works... it won't take long to catch up."
  11. "Our team doesn't have the technical chops to do this."
  12. "Maybe in the next budget cycle."
  13. "We need to finish this initiative first."
  14. "It's been done before."
  15. "It's never been done before."
  16. "We'll get back to you on this."
  17. "We're already doing it."
Let these phrases be warning signs for your mind. There is greatness to be had, don't let it slip through your fingers!

19 September 2006

MSNBC Video Supporting the Mac

Starting today, all video on MSNBC will now be available on the Mac without the need for Windows Media Player or Flip4Mac installed. Here's how it works:

  • If you hit the site with Win Internet Explorer 6 or 7 you get Windows Media video
  • If you hit the site with Mac FireFox you get flash based video It doesn't look like it supports Flash in Safari, but that could be just because I haven't got the newest version of the Flash player. Slowly but surely other groups at Microsoft are "getting it" when it comes to supporting the Mac.

  • 13 September 2006

    Joel on His MacBook

    Joel Spolsky talks about his Mac at home experience:

    I have a few complaints though: OS X antialiasing, especially, it seems, with the monospaced fonts, just isn't as good as Windows ClearType. Apple has some room to improve in this area; the fonts were blurry on the edges. Also, I don't understand all these people who say that Macs never crash. I probably had to reboot the MacBook Pro (hard reboot -- hold down the power button for five seconds) about every two hours. It was always the same problem: the Wifi network would go down for a second, something which happens to everyone, but on Windows, it just comes back, while on the Mac, I get a spinning colored ball and everything is frozen. Everything. Forever. If I try to wait it out the beachball will still be spinning the next morning. If anybody is aware of this problem and knows of a specific fix I'd love to hear of it. It was like a Windows 3.1 deja vu all over again thing.
    I've only recently been getting the same behavior. I agree with Joel that it has something to do with the wireless, but I see this happen most often when I VPN into work. This didn't happen before 10.4.7, so I think this is a new bug introduced recently. Also, while Apple's sub-pixel text rendering has improved markedly, ClearType on Windows still is just a bit better, but some fonts seem to work much better than others. My basic understanding of how sub-pixel smoothing works leads me to think there are only so many ways to do it, so it's amazing to me that you can notice a difference.

    08 September 2006

    Mixing Carbon and Cocoa

    Oh now this is so, SO refreshing and from a "Cocoa" developer no less! I don't know how many times I've heard the comment that we've got to re-write all of Office in Cocoa as if that were some magic pill that turns all Mac applications into "pure" Mac applications.

    Wake up people! It’s 2006. It doesn’t matter what you program in, it’s how you get the job done. Arguing about whether to use Carbon or Cocoa is like arguing about whether to use a net or a hook to catch a fish. You use whatever the circumstances call for. If you don’t, you die. (This, from the vegetarian, city-dwelling Mac programmer).
    Once again, it's all about execution. Now I love Cocoa (We use it internally to build all our GUI based tools) I love the design patterns and consistency, and I love CoreData and bindings, but very often if you want to do something cool, you almost always have to drop down to the C API and well, more often than not, you're using Carbon. Remember what Steve Job's said when introducing Carbon? "We named the API Carbon, because that's what all intelligent life forms are made of!" I'm personally looking forward to the end of the whole Cocoa vs. Carbon debate. Sometime in the future, applications will be judged by what they enable you to do rather than the API under the hood. If you want to get that concerned about the nuts and bolts, consider this the next time you fly: Every part that makes up every plane, came from the lowest bid supplier. Life's too short, find the right tool for your job and enjoy the ride!

    Microsoft Cafeteria Tour 2006

    You may not know it, but the Microsoft Redmond campus has like 100 different buildings. Okay, maybe not exactly 100, but there are a bunch, and for every 3 or so buildings, there is a different Microsoft cafeteria. Some buddies and I decided we'd try to visit each and every one, in Redmond at least, and document the journey. Everyone's always talking about Google's swanky eats, so consider this your Microsoft guided tour of our swanky eats. ;-) You'll notice us following in great MS tradition by naming our project something as approachable and easy to remember and understand as "MSCT2k6". Of course, we couldn't do this without some kind of memorabilia, so you guessed it, shirts, mugs, bags and yes, the MSCT Rectangle Magnet. As our tour leader says, "Consume! It'll make you feel better, honest."

    07 September 2006

    On Knowing Stuff

    I just heard a funny story about a little boy in Columbus, Ohio and it goes like this: A traveler came along one day and said to the little boy, "My boy, where's the road to Cleveland?" The little boy says, "I don't know." "Well, where's the road to Cincinnati?" "I don't know that either." "Well, could you tell me how to get to Toledo?" "No", says the little boy, "I don't know that either." Then the man looks at him rather disgustedly and says "Well you are an ignorant little boy aren't you?" To which the boy replies, "I may be ignorant, but I'm not lost!" One of the great things about children is their willingness to communicate and try stuff out. They are not afraid to say, "I don't know" and yet they seem to have such a clear view of things. It's refreshing, frankly. They seem to be born with this right from the start. In so many ways they are superior to us older folk in their ability to candidly interact with the world around them. I've been watching the TED presentations that, little by little, are being put online and one of the best talks I've seen so far is the presentation on education by Sir Ken Robinson. It's only 20 minutes long, so take a lunch break and "give it a go." If learning is important to you, I think you'll really enjoy it.

    05 September 2006

    Work and Play

    From David Heinemeier

    You don’t have to work hard to work well. You don’t need sinister eyebrows or only 4-hour sleeps or a booked calendar to be serious. But somehow that image sticks so bad that we tend to view fun as the opposite of Serious Business Stuff(TM). It’s a false choice, not a real fight. And you accept its premise at your own peril. Fun is all about creativity, innovation, play, experimentation, progress, and seeing real things come to life. If you make fun an enemy of business, you’re judging all these desirable concepts by association.
    I just had lunch today with one of our Excel testers and while we were discussing some testing ideas, she just blurted out, "I'm so in love with pivot tables! I just love them!" I laughed, but I loved to see the enthusiasm about of all things, pivot tables! Work can be play indeed!

    24 August 2006

    Be yourself

    I just found a great quote:

    Be who you are and say what you feel, because those who mind don't matter and those who matter don't mind. - Dr. Seuss - US author & illustrator (1904 - 1991)
    Do you matter? Despite it being a pedestrian principle, our patience with the differences we have with others is a good indicator.

    23 August 2006

    My Dream App

    So a new website has launched that intends to use the "wisdom of crowds" to identify the best ideas for a new "dream" Mac application. The registered users get to vote on all the ideas to narrow down the field, then judges will decided on 3 winning ideas. The net result will be 3 new Mac applications that will prove the, ahem, wisdom (or lack thereof) of those participating. I think it will flop. I hope it's wildly successful.

    Great ideas are NOT the limiting factor in software development! It's so much more about execution! Further, the driving forces behind great execution are much more multifaceted than a simple paper specification about how some application should behave. My favorite part of this process is:

    Customer: Please build X.
    Developer: Okay.
    (Time passes)
    Developer: Here is X!
    Customer: I know what I want, and X isn't it.

    It's everything that happens after this conversation that's important, not before. I liked what Daniel Jalkut says:

    This contest will do nothing except put a heavy burden on a small development team to turn somebody else’s ideas into the type of application that can usually only be inspired by the developer’s own dreams. Even when a team pursues a dream - their dream - success is far from assured.

    21 August 2006

    In hope of an iPhone...

    Here is a phone from Synaptics. The coolest part about the phone? It has no keys, just one big touch screen canvas. I guess, if you are going to remove stuff in a drive for simplification, removing the key pad is about as far as you can go. On the other hand, this just puts more burden on the software designers of the interface to use the touch-pad well. My experience with touch screens has not been that great. The biggest problem I see is that without a pointer device, it's hard to get feedback on what you've touched because your finger obscures what you are touching. One way to solve this, is with huge buttons, that allow for a color change that you can see around your finger or thumb. The problem with big buttons is, well, they're ugly. Here's to Apple solving the feedback problem along with a clean and beautiful UI.

    16 August 2006

    Web Development for My Dad

    This is kind of a test, since I don't know what kind of expertise exists with you my faithful reader, but I need some advice, or rather, I need some advice for my Dad. He's 55+ and looking at getting back into the workforce and one option that has piqued his interest is web development. The question is this: What should he use as his web platform and why? Options that I've looked into are: Ruby on Rails on Mac OS or Linux WebObjects on Mac OS ASP.NET on Windows PHP on Mac OS or Linux Witango on Mac OS or Windows Note: I'm sure I've missed some others, but I think these are the big players. Keep in mind that he's used the Mac OS all his life as the basis for several of the businesses he's started over the years, so he'd like to stay developing on the Mac if at all possible. But it's not the end of the world if he's got to switch platforms. This has got to be a question others have asked, so if there's some web page that answers this directly, I'm sorry I haven't found it yet, but please leave the URL in the comments. Am I the only one that finds making a rational comparison in web development platforms difficult?

    15 August 2006

    Steve Portigal on Innovation

    From Core77:

    [Michael] Bierut felt he started off being too "clever" - which I hear as new for new's sake - and that wasn't the right thing to do. I don't think innovative means shocking, obviously new, different, and all that. I think innovation can be invisible and brilliant and seamless to adapt to, with that whiff of exhaled "ooh!" that happens afterwards. To a graphic designer, the word may mean something else.

    But what is MacBU?

    I just got the most cordial email asking the most simple question: "What is MacBU?" Anyone who has spent any time at Microsoft knows the penchant demand for acronyms and jargon, it's so prevalent that at one point someone created an internal glossary just so people could keep up with the alphabet soup. That project has since disappeared, I think simply because it couldn't keep up! The "MacBU" is the nick name we use to refer to our business unit at Microsoft. Our fully qualified name is the Macintosh Business Unit. We develop Office; Word, Excel, PowerPoint and Entourage, Remote Desktop Connection and Messenger. There are other Mac products at Microsoft, but they are not part of the MacBU. We say "MacBU" like "Mac boo" and often write "MBU" but say MacBU. For completeness, we also use XL for Excel, Erage for Entourage, PPT for PowerPoint, RDC for Remote Desktop Connection and Msgr for Messenger. Every character counts, you know. Word doesn't have an abbreviation, because it's, well, Word. Yo. Now you can be all hip to the local lingo!

    14 August 2006

    David Anderson: Software Development and the Theory of Constraints

    I just watched a video on Channel 9 where Robert Scoble interviews David Anderson about the work he's doing at Microsoft. I thought it was super interesting and thought you might enjoy it as well. The movie can be downloaded here. The following are some of my favorite quotes from the video:

    My work focuses on applying the teachings of two management science gurus, one is Eliyahu Goldratt and other one is W. Edwards Deming. Goldratt has something he calls the Theory of Constraints which basically says if you can identify the bottle neck in your process your should focus all your management attention, all your investment dollars in alleviating that bottle neck in what ever fashion is appropriate. And he has some guidance on how to do that. Initially that started in manufacturing, and then he had a solution for project management, there was one for distribution channels and so on. I took all this theory and figured out how to apply it to software engineering. Some people said, "Well, that can't possibly work!" and, um, it does!
    I think if you can reduce the team size down to something small that makes a big difference. If you can put four guys in one room and they can talk to each other all the time in really high fidelity that makes a big difference. But there's a certain scale of things where that doesn't work.
    Speaking of domain specific languages as applied to the quality process:
    It's a really cool use of domain specific languages in the Team Architect product and it's a fantastic way to actually have quality insurance in your quality insurance group!
    Productivity goes up when you focus people on their production rate and don't force them on this conformance to plan concept. And If that's one thing you could change to make a big difference is stop estimating and start measuring velocity.
    If I walk through the building at 7:30 at night and the half a dozen people there all have the debugger open and they've been debugging for the last 8 hours, that's a fairly good indication to me that there's a problem.
    Good management, good organizational engineering makes for happy well balanced people that have a life and that's what I think we're all looking for optimally.
    He has a blog at Agile Management Blog and his book is named Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results. I just added it to my list of books to read. P.S. If you want to view this on the Mac, download the free Windows Media QuickTime plugin Flip4Mac.

    09 August 2006

    Moving on to AppleScript

    I've been super busy here at WWDC 2006, but it's that good kind of busy. Lots of new technology to learn and understand. It's been great! I did take some time yesterday to review some of the feedback online about our announcement to ship the next version of Mac Office without support for VB. This was a tough decision and one of those wicked problems that happen from time to time in software development. I think Erik's explanation of the challenges involved is one of his best posts yet. If you care at all that we are removing VB from Mac Office, read his post before you pass judgement. There's a lot of context to be had in there. Saying goodbye to Visual Basic Rich Schaut follows on with a post about what money can't buy and the challenges of software development in general. He then makes this comment:

    But that does not mean we are unaware of the pain this will cause to a significant number of users. If you think we are not aware of that pain, consider this. David Weiss can give you a better number on this, but our testing methodology has always made extensive use of scripts for automated tests. Not just a couple of scripts, but thousands of scripts per Office application. At one point, all of those scripts were written in VB/VBA. In order to carry that testing effort forward into the era of Universal Binaries, every single one of those scripts had to be rewritten in AppleScript. I don't think it's even a remote exaggeration to say that our use of VB/VBA was at least a couple orders of magnitude greater than even our most automated customers. Do we know your pain? You bet we do.
    This is absolutely true, we feel the pain. When we removed VB, immediately we lost more than half of our automated test bed. We've been carefully building back up our automation in ways that make sense, but it's a huge loss that those scripts no longer worked. That said, we know that AppleScript is capable and something we can depend upon long term not only for our testing efforts, but also for workflow customizations that our pro customers will use and build upon. Just last night I was at a WWDC party and I was introduced to a developer who had written a very cool script in VB to automate some of the work he and his team does on a regular basis. He was obviously concerned about what loosing VB would mean to him and his team with the next version of Mac Office. Everything he was doing with VB could be done in AppleScript and when we explained how AppleScript Studio provided a real IDE and UI workshop for developing custom solutions, he was very excited. If you have custom VB scripts, may I suggest looking into AppleScript as an alternative solution? There are great resources on building AppleScript automated workflows and it really is the Mac standard for inter-application communication. We are always looking for ways to make our AppleScript support better, so if in trying to make your VB solution work in AppleScript, you run up against a wall, let me know either in comments or via email. I think you'll be surprised at how much can be done with AppleScript today.

    08 August 2006

    Wicked Problems

    I was reading about wicked problems recently and found this fantastic quote:

    Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them. – Laurence J. Peter
    It's often so easy to criticize without context.

    06 August 2006

    Veni. Vidi. Codi.

    I just got my WWDC 2006 T-shirt and it has just these three words on it:

    Veni. Vidi. Codi.
    Does anyone know what they mean? Is this some Latin thing I should understand? It seems like it should mean: I came, I saw, I coded, but I'm not sure. I thought I'd run it through the translation widget, but no Latin, so I tried Italian and all I got was: Any ideas? Why would Apple code this in another language? Update: This cool latin phrase was totally lost on me, but oh well. Here's the info, and the translation was "I came, I saw, I conquered". May you all be the wiser.