Just finished reading the book The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise by Martin Abbott, Michael Fisher. The book draws on authors’ experiences working at PayPal/eBay and other Internet companies, and covers many aspects of scalability including people, organization, process, and technology. According to Yishan Wong, who used to work under the authors and is now an engineering director at Facebook, “the opportunity to directly absorb the lessons and experiences presented in this book is invaluable to me now working at Facebook.”
I read the book Who Says Elephants Can’t Dance by former IBM CEO Lou Gerstner several years ago. For people don’t know the author, Lou Gerstner became IBM CEO in 1993 when the company was on its way to losing $16 billion. The book is about his insider story of IBM’s historic turn around. Unlike other books by top executives, the book was really written by the author himself.
The book is just great with insightful observations and thoughts. So when I saw it in library weeks ago, I borrowed it back home again. This time I found something new or something that I didn’t pay enough attention the first time. Lou actually had the buzzword “cloud” in his book of 2002. Let’s see what he had to say about the cloud:
It had to be in one of these early discussions with Dennie that I was introduced to “the cloud” – a graphic much loved and used on IBM charts showing how networks were going to change computing, communications, and all manner of business and human interaction. The cloud would be shown in the middle. To one side there would be little icons representing people using PCs, cell phones, and other kinds of network-connected devices. On the other side of the cloud were businesses, governments, universities, and institutions also connected to the network. The idea was that the cloud – the network – would enable and support incredible amounts of communications and transactions among people and businesses and institutions.
Comment: The meaning of the cloud seems limited to networking, and quite different from what’s known today. Networking is still important today in the new cloud because the connectivity is a must for accessing cloud services.
I just read a book by Ram Charan What The CEO Wants You to Know? Using Business Acumen to understand how your company really works. Having grown up in India, the author has earned D.B.A and M.B.A from Harvard Business School, and has taught at Harvard and Northwestern.
In the book, Ram coined a new term “business acumen” to describe the fundamental capabilities for business success. He claims, “Every business is the same inside, cutting through to cash margin, velocity, growth, and customers.”
Here are more quotes from the book:
When you come down to it, the business is very simple. There are universal laws of business that apply whether you sell fruit from a stand or are running a Fortune 500 company. Successful business leaders know them. They have what I call business acumen – the ability to understand the building blocks of how a one person operation or a very big business makes money. You, too, may learn the fundamentals of cash, margin, velocity, return on investment, growth, and customers.
You can develop your own business acumen. While these ideas may sound complex, they are not. Think more about your best teacher in a subject like chemistry. Once you understand that the atom was made up of protons, electrons, and neutrons, you then had the fundamentals to solve any problem in chemistry. I want to show you that it’s the same with business . When you know the fundamentals, you can “get” the basics for how any business works.
This made me think what the CTO wants you to know, and what “technical acumen” is. Here is my paraphrased version:
Just read part of the book Founders At Work over the weekend. Although I haven’t decided to be a founder of a startup company, I found the stories there are trully inspirational. You can read part of the book at Google book.
One interview with Hotmail cofounder Sabeer Bahatia is very interesting with his thoughts on the differences of software and hardware designers:
Are Your Lights On?: How to Figure Out What the Problem Really Is by Donald C. Gause; Gerald M. Weinberg
The Design of Everyday Things by Donald A. Norman
“But, they seem nothing to do with software!” You say.
You are right. But remember the blog title has a keyword “top.” If you want to stand out in any profession, some of the extra skills may well be outside your typical set as others expect.
The same is true for software profession. I assume you already know the basics of software programming, process, design patterns, etc., so another programming book doesn’t help you much to the top technically.
Let me explain why and how these two books help you.
When I start to use a new API/SDK, I always look for the object model diagram before digging into the API Reference. With that, I can have a good overview of the API, from the concepts to the structure. This can save a lot of time.
Unfortunately, we don’t find such a object model diagram in any official document. The following is the UML diagram from my book VMware VI and vSphere SDK.
Inspired by the book Made to Stick – Why do some ideas thrive while others die? by Heath brothers, I would like to give it a try on software platforms rather than the ideas covered in the book. Although the computer industry is still relatively young compared with other industries, it’s quite dynamic and we’ve seen some platforms came and died while others came and thrive. So, what are the general characteristics for such sticky platforms?
The authors of the book summarized the 6 principals to make ideas stick, meaning the ideas change either the thoughts or/and behaviors of the receivers. These principals are Simplicity, Unexpectedness, Credibility, Concreteness, Emotions, and Stories. They are shortened to SUCCESs for easy memory.
Most of these principals don’t apply on software platforms. Unexpectedness, for example, may be the last thing you would like to see of a software platform. For software platform, we definitely need predictability, among other qualities.
After thinking the problem over, I summarized 4 basic principles for a software platform to stick: Simplicity, Extensibility, Ecosystem, and Developers, in short SEED.