A New Look

Filed Under: Design


Welcome to the new look of rainwillow. I hope that you like it. This re-design brings a responsive design to rainwillow so all of the content should be easily accessible and viewable regardless of the device that you are using to view it. If you are using a desktop browser you can see this in action by simply changing the size of your browser window.

Even more than with the previous version of the site, I have tried to make this a very content forward presentation with minimal chrome and clutter. And the wider presentation area means that I can embed a few things that I couldn’t before without using a modal pop-up. I am looking forward to making use of that.

There will likely be some kinks and issues that will take a little time to work out. I have changed some of the javascript tools so that everything is now based on jQuery. This means that some of the existing modals will fail until they are updated since they rely on onclick events but the handler will no longer be present.

All work benefits from feedback. I would really appreciate hearing from you about what you think of the design, what aspects do you like and what could use a little more work. I’d especially like to hear about things that are broken on your device or browser. So please, reply to this post or send me comments and let me know what you think.

787 – Premature Modularity?

There’s a thought provoking article by James Allworth at the Harvard Business Review about the problems that Boeing is facing with the 787 Dreamliner. He posits that the problems come from trying to modularize a complicated problem too soon, leading to both the schedule delays that occurred and the current problem surrounding the aircraft’s grounding.

with the 787, it appears that Boeing tried a very different approach: rather than having the puzzle solved and asking the suppliers to provide a defined puzzle piece, they asked suppliers to create their own blueprints for parts. The puzzle hadn’t been properly solved when Boeing asked suppliers for the pieces. It should come as little surprise then, that as the components came back from far-flung suppliers, for the first plane ever made of composite materials… those parts didn’t all fit together.

The linked pdf file in the quote above provides a lot more information about the process and supply chain that Boeing used for the 787, which resembles more the process used in the automobile industry than what has previously been used for new aircraft. The rationale for this approach was to reduce cost and risk – typical advantages of modular versus integrated architectures.

Having extensive experience writing engineering specs, and witnessing first hand the issues that crop up when independent development groups create products from those specifications, I am a little awed at Boeings approach. In the networking/telecom world we’d do interops where companies with products implementing new standards could take them to be tested against each other in a developer-only non-competitive environment. Even though the specs were jointly developed there could still be significant interpretation differences in the products.

Idea Exploration

“It is characteristic of scientific life that it is easy when you have a problem to work on. The hard part is finding your problem.”

Freeman Dyson, from Creativity, by Mihaly Csikszentmihalyi

Where do innovations come from? What is the genesis of the creativity that leads to their invention? When I first started writing about innovation I compared innovations to solutions, which themselves begin with problems. Without a problem, there is no solution, only a possibly interesting idea. However the analogy breaks down a little when we try and identify the comparable concept for innovation that problem was to solution.

One obvious starting point for innovations would be they begin with market and customer needs. Indeed many authors argue that. They would say that without those needs, there is no innovation, only a possibly interesting invention. But those authors are missing the point when it comes to creating new products and services that create and shape industries and markets.

Market and customer needs serve as a starting point for a very specific kind of innovation; sustaining innovations. This is the type of innovation that keeps products on the trajectory their customers demand. Although sustaining innovations can involve the development of breakthrough technologies, they always represent a change to an existing thing, an increment of a digit in a version number. They are never the basis for new enterprises.

New enterprises are not initially driven by customer needs. They are driven by a vision. Customer and market needs are discovered in tandem with the fulfillment of the vision using a process of customer development1. The focus of this article is where and how those creative visions originate.

In a recent interview, Jonathan Ive, Apple’s Senior Vice President of Industrial Design, was asked whether Apple is trying to solve a problem when they come up with product ideas such as the iPod. He answered:

“There are different approaches – sometimes things can irritate you so you become aware of a problem, which is a very pragmatic approach and the least challenging.

What is more difficult is when you are intrigued by an opportunity. That, I think, really exercises the skills of a designer. It’s not a problem you’re aware of, nobody has articulated a need. But you start asking questions, what if we do this, combine it with that, would that be useful? This creates opportunities that could replace entire categories of device, rather than tactically responding to an individual problem. That’s the real challenge, and that’s what is exciting.”

One of the challenges in any creative activity, is finding and choosing ideas to pursue. Ive explicitly rejects obvious problems, which represent customer and market needs, as the starting point for ideas that could represent significant opportunities. Instead, he talks about exploration and about opportunities where no one has articulated any needs. Continue reading…

Inventing On Principle

Filed Under: Creativity

Tags: ,

Bret Victor talk at CUSEC 2012 in Montreal

Bret Victor gave a sublime talk at the Canadian University Software Engineering Conference back in January. It is so good because it works on two completely different levels. The focus of the talk is dedicating your life to fighting for a principle. And because Victor’s principle is that creators need an immediate connection to what they are creating, he demonstrates some delightfully cool tools for software development that illustrate this principle. The first couple of demonstrations relate to software that is designed to produce visual output, but at 16:45 into the video he demonstrates more abstract applications of his ideas, including binary search and an example for the development of a hardware circuit.

Victor acknowledges that fighting for a principle is not typically heard as motivation in technical fields. It is more associated with social causes. But principles can provide motivation, and guidance on issues to tackle, for people in all careers. Daniel Pink made a similar point in his book Drive: The Surprising Truth About What Motivates Us, based on the research of Edward Deci and Richard Ryan. Pink defines and discusses three basic intrinsic traits that motivate people in the work they do; to be self-directed and have autonomy, to learn and grow and achieve mastery, and to feel that what we do has meaning or serves a larger purpose. Pink believes the drive for self-determination can be more powerful and effective than external rewards and punishments.

The value of purpose and meaning is also underscored repeatedly in psychologist Mihaly Csikszentmihalyi’s book Creativity: Flow and the Psychology of Discovery and Invention, which was based on interviews with over ninety notable creative people from the Arts, Sciences, business, and politics. For example, when asked: “Of the things you have done in life, of what are you most proud”, all but one of the Nobel prize winners gave intrinsic reasons for why they were proud. Of course reasons why someone is proud may be different from their original motivations but often reasons do reflect motivations.

Perhaps most notable are some of bioligist Jonas Salk’s responses where he talks of dedicating his life to improve the lot of humanity. Victor, in his conference presentation, specifically says that what he means by principle is not this type of broad generalization. But perhaps for someone who created the first polio vaccine, thus saving the lives of countless children, such a statement can be considered a guiding principle.

As Bret Victor notes in the video below, social activists fight by organizing, but technologists can fight by inventing.

Bret Victor – Inventing on Principle from CUSEC on Vimeo.

As a personal aside, one of the reasons that I migrated away from software, first towards protocols and algorithms, and then to architecture and system design, was the distance between the work that I did and my ability to see its effects and impact. Back when I first started developing real time embedded systems we needed to download compiled code into In Circuit Emulators in order to test a system. It was a time consuming and disjoint process, trying to visualize how the assembly code you saw using the ICE translated into the C Code you had written. And there was different timing using the ICE than executing the code with the processor, so there could still be latent problems remaining. These demos brought software development alive for me again and the video is well worth watching simply for them.

Integrated versus Modular Architectures

One of the issues associated with Apple over the years concerns product architecture. Apple takes a more integrated approach to product design than their competitors, being the only personal computer vendor and one of the few smart phone vendors that develop both the hardware and operating system of their products. Technology trends are towards modularity but there can be distinct advantages in hybrid architectures that include integrated pieces. In this article I’ll focus on the trade-offs between integrated and modular product architecture, and explain when and how integration benefits.

Product architecture is the specification of all of the major components of a product, the relationships or interfaces that exist between them, and the detailed definition of those interfaces. There are many dimensions along which to evaluate the quality of an architecture, depending on the type of product under consideration. Some of the earliest evaluation criteria for software architecture had to do with coupling and cohesion.

Good designs would minimize the coupling between components and maximize each components internal cohesion. These designs are called modular and they promote the ability to develop, change, and refine individual pieces independently. This independence shortens development time and reduces the cost of supporting and maintaining the product. These qualities led to both object-oriented programming and the layered/modular design of communications networks and protocols. Modular architectures can involve design tradeoffs to use adequate but not optimal standardized interfaces and third-party components.

The opposite of modular architectures are integrated architectures. The hallmark of integrated architectures is close coupling between elements, efficiently synthesizing and consolidating functionality. Changes to one element can often require changes to others where there can be undocumented dependencies between elements. Although this makes such architectures more difficult to develop and maintain, it can allow these architectures to achieve greater performance because all of the components can be tuned towards that goal. Modular architectures sacrifice performance for flexibility.

Pure examples of integrated or modular architectures seldom exist in real products. The rapid advancement of technology precipitates the need to quickly evolve products and minimize costs. This results in a bias towards modularity for products and services, especially those directly incorporating electronic technology. Modularity also enables platforms, and the ability for complex ecosystems to add significant value to products.

This architectural trend towards modularity is not restricted to products but also affects the whole value network of products. Product modularity leads to standardized interfaces and component specialization by different companies. Component interfaces become supplier interfaces. What a customer sees is the culmination of the labour from many different companies.

A natural evaluation criteria of an architecture is how well the architecture allows the product to meet the needs of its users. Good architectures should promote the product capabilities that its customers value. However the things customers value change over time. This leads to the intriguing thought that architectures should change over time as well in order to respond to the product’s users changing needs. Continue reading…