So my son gets picked up by his Nana and Papa. During the drive, he cries out, “Moosic! I want moosic!” (To fully appreciate his word for music you have to extend the “oo” and emphasize the ‘k’ sound) Nana understands the request and promptly tunes the car audio to a classical station on the FM radio band. A pause. “No, moosic!” Nana knows that his Dad really enjoys jazz and was always fascinated by music in general growing up; so she quickly turns the dial to KKSF 103.7. Almost instantly, “Ah, moosic” with a bob of the head and a smile. …Really makes this Dad proud!!
Later on in the same week–this one actually–I had the privilege of caring for my son before going into the office in the morning. Again, “Moosic!” is the cry. No problem, I’m on this…just happen to have a U2 CD on the top of the entertainment center…pop it in…hit play (first track: Zoo Station)… A pause. “What’s that?” I ask, expecting satisfaction. “Noise” my son replies. Well, the song does start out sounding a lot like noise; so, he has a point. Dutifully, I replace Bono with a different English band, Down to the Bone. The head bobs and the smile breaks out: “Moosic!” …Brings a tear.
If you use Visual Studio 2003 to develop your C# projects, then you should consider JetBrains’ ReSharper refactoring add-in. Currently this tool is available in Early Access Program form here. The current build is 83 (M2 was 81) and includes support for the following refactorings: Rename, Move Type, Change Signature, Introduce Variable and Extract Method. ReSharper takes a different approach to refactoring than does such support in Visual Studio 2005 (currently available in Community Technology Preview May-2004 form).
- Visual Studio 2005 Beta 1 has been available since the beginning of July 2004.
- This article has been published detailing refactoring support in Visual Studio 2005. Its author, Andrew Troelsen, has written several excellent books on .NET for Apress.
- Juval Lowry also wrote an earlier article on C# 2.0 refactoring, which is to say how Visual Studio 2005 will support refactoring of C# code.
- TheServerSide.NET ran a series of articles on refactoring support in Whidbey, too.
- The ReSharper 1.0 released yesterday–sixteen days past due, but worth the wait. The final release build was 101. (RC1 was build 94; RC2 was build 96; RC3 was build 98.)
Recently my copy of the June issue of Fast Company (FC83) arrived in my mailbox. The issue focuses on the critical role design plays in business innovation and competitive fitness–the idea of design as a metaphor for the future of work. Here are the takeaways from my read (ref.  and ):
- Design is about what people want today and leading them to what they will want tomorrow.
- Design’s purpose is to not only show us the future but to bring us the future.
- Behind every design is a thought process that transcends the design itself. Every design process confronts a time problem, a material problem, and a functional problem.
- Where there is meaning, there is design.
- Involve design on the front end (i.e. up front).
- There is an emotional side to design. How does a product or service make me feel? Do I feel clever? Do I feel like I’m an insider? Or do I feel dumb and on the outside? Am I drawn in or am I pushed away by the experience? Do I want more or have I had enough?
- Truly innovative products speak to their users’ emotions. When you make an emotional connection with your customers, you win their loyalty.
- What aspects of my products and services can become more fashionable and less pedestrian? Think about what the cell phone has become. Think about products like Apple’s Mini iPod.
- Use a constant round of fresh, unfamiliar challenges to inspire maximum creativity.
- Distinctive look and feel will give customers a compelling reason to buy what is essentially a commodity.
- Sometimes conventional wisdom might not be so smart after all.
- Design is inherently optimistic. That is its power. -William McDonough
- Concerning edgecraft (i.e. the methodical, measurable process that allows individuals and teams to identify inexorably the soft innovations that live on the edges), Seth Godin says: Of all the edges I know, embracing amazing design is the easiest, the fastest, and the one with the most assured return on investment. -from The Best Things In Life Are Free, which is an excerpt from his new book Free Prize Inside!
- Design is about removing the unnecessary.
- Immersive design involves close study of how something is used in the real world. It requires deep commitment.
- Before you can execute the design, you’ve got to live the design problem.
- Think about how you want your products and services to make your customers and partners feel instead of thinking about how you want your customers and partners to feel about your brands.
- We can’t accept the notion that our dreams are constrained by our budgets. We have to believe, as designers often do, that nothing can’t be done, that constraints merely increase the challenge and excitement. We can’t be governed by narrow roles that limit our participation in creative work. We must be collaborative and iterative. And we can’t derive our status from empire building, or managing a big staff or a big budget. Status is won by meaningful contribution, by personal fulfillment and growth. -John Byrne, FC editor from his FC83 editorial column
It will be interesting to see how Stanford’s School of Engineering launches its new “Design School” due in 2007, headed by IDEO’s David Kelly. While I couldn’t find a direct reference to this program mentioned in FC83, I did locate the site for Stanford’s current Center for Design Research (also here).
Earlier this week, I was in Redhill, UK at Nutfield Priory as a member of the Microsoft Architect Advisory Board (MAAB). Five focus groups spent two full, intense days at the Nutfield Priory collaborating on issues facing architects today. My group spent its time on Smart Client Architectures, and it was surprising how quickly the members of this group–the largest of the five–reached consensus on common vision of making it easier to build smart clients, which are admittedly hard to build today. Unlike some of the other areas focused upon by MAAB members this past week, which are five, even ten years out in their realization/implementation, smart clients are here today, driven by the growing demands of information workers, IT administrators, and software development staff.
David Hill joined our group as the representative architect from Microsoft. His suggestion that smart clients are rich clients done right resonated. Easily the most important feature to deliver in smart clients is deployment. Smart clients must be easy to deploy; if they aren’t the whole sell is a complete non-starter. However, deployment is not a one-time event; it’s a process. The process begins upon initial installation of software and continues throughout the life of the software and the role of the user.
Unfortunately there tends to be a default reaction when a new application is required in the enterprise–build a thin client (browser-based application). Not all user experiences are meant for the web, though. While this may seem like an obvious statement, it’s clear that today’™s businesses knowingly and, worse yet, unknowingly sacrifice the productivity of their employees, partners and customers to the web. Do you need to work in your application offline? Without a network connection, the web disappears; so does the ability to do critical business that may be transacted on cached data. Is the responsiveness and richness of your application critical to decision making and support? What if the available network has only low bandwidth and/or high latency; will your users perceive your software, your service, your brand in the same manner as if there were high bandwidth and little latency? Will sales be lost, will collaboration cease, and will customer satisfaction drip away?
To be clear, our work has just begun on this important facet of architecture. The roadmap will be incremental. Be looking for material to be published by this focus group, and by the MAAB in general. Keep an eye, for example, on the following resources:
“A leader is trusted. A leader takes the initiative. A leader uses good judgment. A leader speaks with authority. A leader strengthens others. A leader is optimistic and enthusiastic. A leader never compromises his absolutes. A leaders leads by example.” -Mike Abrashoff
“Ultimately, the most effective measure of a leader is the performance of his unit in his absence.” -Gen. Peter Shoomaker
“Leaders have three essential roles in relation to the people they lead: to challenge, to build confidence, and to coach. Leaders help people pursue bigger goals. They affirm people’s talents, and they reward effort. They mentor, and they provide feedback.” -Paul Thornton