today’s lessons

I received a copy of The Pleasure of Finding Things Out. I’m only 86 pages into the book, and I’m already loving Richard Feynman. He was a truly brilliant man.

No doubt Feynman felt responsible in part for the development of the atomic bomb. His first hand account of his time in the Manhattan Project is gripping and hilarious. This man’s efficacy and his light-hearted perspective are inspirational.

And the one thing that Von Neumann gave me was an idea that he had which was interesting. That you don’t have to be responsible for the world that you’re in, and so I have developed a very strong sense of social irresponsibility as a result of Von Neumann’s advice. It’s made me a very happy man since.

Feynman reminisced about his father’s influence on his childhood learning. Here is a notable passage that demonstrates how well his father’s views align with my own.

there was a picture of the Pope and everybody bowing in front of him. […] Why are they all bowing to him? Only because of his name and his position, because of his uniform, not because of something special he did, or his honor, or something like that.

Recognitions of symbol versus substance catch my attention.

Like any advanced thinker, Feynman’s ability manifested in a diverse set of ideas.

Because of the success of science, there is, I think, a kind of pseudoscience. Social science is an example […] We get experts on everything that sound like they’re sort of scientific experts. They’re not scientific, they sit at a typewriter and they make up something like, oh, food grown with, er, fertilizer that’s organic is better for you than food grown with fertilizer that’s inorganic – may be true, may not be true, but it hasn’t been demonstrated one way or the other. But they’ll sit there on the typewriter and make up all this stuff as if it’s science and then become an expert on foods, organic foods and so on. There’s all kinds of myths and pseudoscience all over the place.

I may be quite wrong, maybe they know all these things, but I don’t think I’m wrong. You see, I have the advantage of having found out how hard it is to to get to really know something, how careful you have to be about checking the experiments, how easy it is to make mistakes and fool yourself. I know what it means to know something, and therefore I see how they get their information and I can’t believe that they know it, they haven’t done the work necessary.

That is priceless.

road to utopia

into the fast lane

In the long term, I still firmly believe that it is modestly priced, high volume consumer services like telephony, television, video on demand, music, gaming, and e-commerce that will be the Utopian goal. There are many obstacles that must be overcome first: political reforms (regulation, laws, licenses, spectrum), radical changes to content provider business models, network infrastructure investments (fiber, packet radio, and IPv6), cost reductions to high end gear (optical CPE routers, IP enabled home theaters), and a critical mass of adopters. There are too many factors to accelerate artificially; it must happen as a natural progression.

Consumers are notoriously frugal. They generally purchase the minimum to satisfy their needs. Anything beyond what is good enough becomes a luxury. To succeed in this market, it is crucial to provide services perceived to be essential rather than merely luxurious. Without that economy of scale, a provider cannot recuperate the cost of building out the infrastructure to neighborhoods.

In the meantime, there are high value services that can address immediate needs. Businesses are always in search of productivity gains and improving efficiencies.

  1. Collaboration – With enterprises extending their global reach, workers in remote offices will need to collaborate more effectively. Video-conferencing, remote white boarding, groupware, and other real-time collaborative work tools will significantly reduce the need for in-person meetings. Expensive, time-consuming travel will become largely unnecessary.
  2. Teleworking – Urban traffic congestion, costly office facilities, and a diversely distributed global workforce are all forces that will encourage greater use of telework. Effective online collaboration and improved broadband access will enable workers, who want the convenience of working from home, the ability to do so without any compromise in productivity.
  3. Business Integration – This is already underway. Supply chain management and other forms of business-to-business (B2B) integration are improving the ability to outsource. Concentrating on core competencies implies contracting out non-core work to business partners, who do consider that work to be their core competency.

Enterprises are willing to invest in incremental improvements to business efficiencies, because there are measurable returns. The capital markets exert great pressure for such improvements to be demonstrated each and every fiscal quarter. This market can be penetrated without having to incur sizable short-term losses, unlike the pricing that is necessary to penetrate the consumer market. Whereas information technology is often considered a luxury to consumers, it is clearly essential to many businesses.

The productivity gains at work become catalysts for workers desiring similar lifestyle improvements at home. Online collaboration with remote coworkers leads to online collaboration with family and friends. Telework leads to home workers applying the technology already installed towards personal entertainment. General availability of the technology tends to stimulate new opportunities as users discover new ways to apply it. It is this manner of cultivating markets that will lead us to the end goal.

success and failure

Fear of failure is paralyzing. It is the one source of impotency that can prevent all forward progress. Success becomes the most imperative, when there is a great deal to lose. It is also when it is the most difficult to act towards achieving success.

We should not forget that success is a strategic vision. There will be tactical failures along the way. Often, failures are necessary in order to gain the requisite knowledge that leads to ultimate success. An unwillingness initially to go forth and learn from failure would be the critical error that would make success impossible.

There is a tendency to mitigate risk by introducing rigid processes. If we go through these tried and true steps, then we will have satisfied ourselves that we did everything in our power. As an organization matures, its processes become more rigid and ingrained into the culture. They also become more invasive and fine grained. Every thought and action becomes regimented. The more procedures to follow, the less we rely on individuals to think. When individuals do not think for themselves, innovation ceases.

Institutionalized processes are put in place to ensure that best practices are documented. Organizations talk about continuous improvement and point to the procedures that allow for innovation to feed back into the quality system. We must realize that quality is something that we trade for at the expense of innovation and time to market. A quality system also seeks to prevent failure from occurring. Stifling the opportunity to learn from our mistakes is a fatal error. That can be a detriment to long term success.

mission: difficult

The reason I hesitate to accept a critical role in the organization is because I am not that dedicated to the cause. Four years ago, I completely devoted all of my time and energy, and it went for nought. Looking at the big picture: it’s not worthy of my full potential. This begs the question: if not this, then what?

What cause would I dedicate myself to, in order to satisfy my own desires? Here is my answer.

There are many evils in the world to be fought. There are also much good to be pursued. How to choose? One must look deep into oneself and choose that which is a reflection of one’s own values. For me, it is clear what my mission must be. My mission is to enable individuals to have unfettered access to whatever information they desire, whenever and wherever they want it. This implies a number of subgoals and requisite technological advances.

Eliminate bandwidth bottlenecks in the last mile. This means having fiber to the home. Bandwidth is important but mobility is also key. Information has to be at your disposal anywhere. 3G wireless will deliver 2.4Mbps to your handset possibly in a year or two. That’s a good start. Better yet, end-to-end quality of service must be available on demand.

With a big enough pipe comes the next step: filling it. IP and the digital network must be everywhere. Telephony, video conferencing, music, television, movies, books, baby monitors, security cameras, space probes, medical examinations, and money itself must converge.

This is not primarily a technological revolution; it is a political one. Ubiquitous bandwidth and networking remove the barriers to freedom to information. Instantly everyone has cheap access to information and a means to put out their own message with global reach. Control over the access, distribution, and content is decentralized.

One of the things I feel almost murderous about is content regulation. The state regulates television programming. Any broadcaster, who wants to distribute content to Canadians, must obtain a license to a channel. Every license is constrained to deliver a specific type of content. The licenses are scarce to control who may offer content. Another by-product is the artificial manipulation of the types of content that are offered. In effect, consumers are only allowed to watch what they allow; and only from the providers they permit to operate. When all content is packetized information, there are no borders, regulators, and censors that cannot be bypassed. Fuck the FCC, CRTC, and the People’s Republic of China.

I also have problems with industry collusion. For example, the movie industry wants to use region coding and the encryption technology of DVDs to control the distribution channels for the content. This keeps the content providers in line, because their content cannot be delivered without the industry’s say-so. This also keeps the consumers in line, because they control all access to the content. A cheap, ubiquitous content distribution network, which is open to all providers and consumers alike, breaks the stranglehold. Fuck the RIAA, the MPAA, monopoly telephone and cable companies.

Finally, the world must bend to every will. Personalization is essential to realizing a value proposition, which will entice people to adopt the technology. Given bandwidth, mobility, and intelligence in the content distribution network, what do you want out of it? What each person wants is what must be.

I want to be able to pull out my handset, while walking around downtown, to figure out where to have dinner and what movies are playing at the cinema. I want to have the entire resources of my office available through my notebook computer, wherever I may be. I want to watch any television program or movie at whatever time of day is convenient for me; not based on the programming schedule determined by some broadcaster. All information should be available through a client-pull (e.g., web browser) model, as opposed to server-push (e.g., tv). I want to be able to listen to any song at any time. I want to tell my handset that I am shopping for shoes today, and for every shoe store I pass to inform me of their products that match my search criteria. I want to walk into my favorite store or restaurant and be served in the manner I like; for them to know my name, my preferences, and my habits without ever needing to ask me. I want an empty wallet, except for one device, which gives access to my identity, medical information, insurance, loyalty rewards, credit, and money—all securely. I want the world to adjust to me, when in my presence. I want that for everyone individually.

So if you are out there and you share my vision, talk to me. We have a mission.

proprietary J2EE

I am less than impressed with this article.

The author is arguing that proprietary extensions threaten the promise of standards based application portability—that Java’s promise of “write once, run anywhere” is dead, and was never a reality anyway. This demonstrates to me a tremendous lack of vision.

The J2EE platform is growing as a language. This means starting small and collecting the best contributions over time into a larger, more capable language. The language evolves with the community that uses it. A standards based approach to application development suggests that if you constrain yourself to using only the standard features and interfaces, then you should be portable to any implementation. Generally, that is true of J2EE; standards based portability is certainly more a reality with J2EE than on any other equivalent platform (e.g., Microsoft .NET).

Proprietary extensions by application server vendors are expected. Applications written to the standard will still be portable, because they do not depend on proprietary extensions. In time, the scope of standards will expand, as technologies mature and become commonplace. The industry’s best practices become encoded into standards, because the market demands it for portability (reducing costs). Innovation (proprietary extensions) will happen further out into the leading edge, where technologies are unproven. Vendors can differentiate their product based on quality of implemention and value added features. The latter requires extending beyond the standard features.

The article paints a picture of a static standard, which is being eroded. In reality the J2EE standard is constantly evolving to expand its capabilities. Application server vendors are moving in lock step to embrace the newest standard; often, their products have already implemented the standard by the time it is officially published. In reality, J2EE application portability is continually improving rather than being threatened due to this natural evolution.

revolutionary in an evolutionary world

This is a follow-up to cost-value entanglement.

Product management is notorious for being risk averse. This often comes from a history of dealing with frequent failures to deliver on time and with quality due to chronic cost-value entanglement. This initial architectural failure cripples a product forever, unless the root cause of the problem is recognized and corrected. Risk aversion grows as the product becomes brittle, and development becomes unwieldy due to ever-increasing code complexity.

Architecture is often thought of as a design function, but this is far from accurate. Use case and requirements analysis are specification activities, which are central to product architecture. It is most important to identify how its users interact with the system and what functions a system performs. These aspects of the system should be encapsulated by its facade, the boundary between the externally visible behavior (interfaces) and its internal implementation. Poor product specification and poor separation between interface and implementation are the architectural manifestations of cost-value entanglement.

This leads to product management demanding a meticulous “evolutionary” approach to development, meaning only small patchwork enhancements are permitted. Significant redesign and technological improvements are impossible, because internal changes will disrupt the externally visible behavior, breaking things for the installed base of users. Such unreasonable constraints can be alleviated by disentangling the facade from the internals. Clearly identify the externally visible concepts in a precise model to support human understanding and interfaces for programmatic access. This enables evolving the facade independently of radical redesigns to the internal implementation. Without this flexibility, revolutionary change is impossible, if quality and time to market are to be maintained.

leaders and followers

I have noticed that there are those who blaze the trail, and lead the world kicking and screaming into the frontier. Then, there are those who are willing to follow, but have little to blaze for themselves. Finally, there are those who refuse to follow, but have no skills to lead either.

What do we do, when we want to learn something? Research what others have done before. The vast majority of things can be accomplished without a deep understanding of the problem or solution; it just requires emulating success. Someone else did the hard work of understanding, and documented a procedure and a simplified explanation that others could absorb and reproduce. That is how humans work. To become a successful trailblazer requires a deep understanding for oneself, but also the ability to distill that into simple explanations and instructions that ordinary people can absorb. The sophisticated knowledge will probably be taken to the grave, but it is the idiot’s guide that will endure the ages.

Ordinary men need traditions and procedures to emulate. Otherwise, they wouldn’t be able to even feed themselves. Imagine the vast knowledge and investment in thought that was required to invent the cooking recipes that we know today. Many people would starve today if they were responsible for acquiring that knowledge themselves through creative thinking, rather than by emulation. Traditions, rituals, and procedures bring comfort to us, because it relieves our burden to think. Most people are incapable of advanced contemplation; emulation is their only recourse. It also instills a common denominator in a society’s culture, and it binds them together psychologically.

We grow up emulating our parents and neighbors by decorating a tree, putting up lights, singing songs, exchanging gifts, and gathering with loved ones. There is comfort in these mindless activities, because they are familiar and safe. This manner of blind emulation leaves us vulnerable to less benign inclinations, like smoking or religion. Ritualistic activities give me no comfort at all. Tis the season to celebrate the most basic survival technique: mindless emulation.

cost-value entanglement

With software, the value is in the concepts (model), brand (reputation), people (experience), and customers (installed base). Not so much the design or implementation artifacts. Often we place too much focus on the code, because it is the most tangible manifestation of our investment. This is a grave error. The code is the result of the sunk cost, but it is not the true value of a software product. The value lies in the capabilities enabled by the software. The software is the means, not the ends. The code must be free to evolve rapidly and radically. If it is not, it will not be able to survive in this ever-changing business environment.

Software organizations that are code-centric have long product release cycles, slow response times to changing requirements, and poor agility to scale the business to expand its market. Code-centric organizations rely heavily upon a skilled development team’s intimate and long-standing relationship to the code. This leaves them vulnerable to competition and employee turnover.

We must be value-centric, not cost-centric in identifying goals. The value is the ends, whereas the costs are the means. The costs (code) must be very flexible, adjusting with agility to the times. The value must be durable. The value must be identified, disentangled from the costs, represented tangibly and separately, and communicated widely. Cost reduction implies discounting investment in code. Decoupling value from code as much as possible allows costs to be reduced without impacting the value.

Complexity grows with code size. Costs grow nonlinearly with code complexity. When you suffer from cost-value entanglement, then code complexity will sink your entire product in time. Entanglement takes away the ability to significantly redesign and reorganize the code, because it puts the value at tremendous risk. Without the freedom to significantly redesign, eventually the product will collapse under the ever-growing weight of its code complexity.

strategic messages

Since the beginning of April, my primary mission has been to document the Reference Architecture specification, which will drive our business. One important lesson I learned in the past year, while observing the executives direct the organization, is to deliver simple messages. People need simple terms to remember complex chains of thought. That is why naming (branding) is so crucial to success. It is also a key to the success of any strategy.

The mission that I set myself to accomplish was to distill the myriad strategic messages handed down from executives into two simple messages. Then, to expand those messages into a technical architecture for executing on the strategy. As I was waiting for the bus today, I came to the realization that these two strategic messages are as applicable to ordinary life as they are to the success of our business. So I present them here.

Focus: Concentrate your investments on your core business. Understand your strengths and use them to your advantage; avoid over-extending yourself into endeavors that expose your weakness. Do what you are good at, and leave all other things to those, who are better at doing them. Compete to win; do not bother fighting battles that you cannot win. You have limited resources and time—invest them wisely. Don’t waste your time and money.

Agility: The pace of change is mind-boggling today, and it is accelerating. Prepare to adapt quickly to a changing environment. Designs that encapsulate variation will win out over those that entrench how we understand things today. Evolution weeds out those, who cannot adapt to change. Embrace agility or become extinct.

Focus and agility. These two words are worth about usd$130 million to us. You get them for free.

look forward, look back

It’s amazing how we have the ability to look back in time. Not just in memories. Not just through archeology. These are only remnants of what actually existed in history. However, the laws of nature have bestowed upon us the ability to actually witness the past in its full glory. In fact, we can see right this moment if we look hard enough as far back as the moments following the Big Bang. And a second later, if we look 3*10^8m further into the distance, we can see exactly the same moment again.

Try to come to grips with the fact that everything you witness in the present has actually occurred some time in the past. Then extend the scope of your observations beyond your immediate vicinity. Look further out and deeper into history. Here and now you are able to see the past unfolding before you. It’s profoundly mind blowing.

Insights into innovation