The Entrepreneurial Thought Leaders

I’m a book lover – I own nearly a thousand books now, and I even read many of them. I think that since there’s just so much to do and learn, and so little time, books are a fantastic way to know about things we might never get a chance to actually experience. Television can also be educational but I dislike it because it takes too much time to get through things – you can read at a much faster pace.

However, if there are times when you’re sitting in a train while commuting, or just driving to some place, podcasts can be absolutely fantastic. I love that the Economist has audio editions of their magazine (absolutely true to the printed form, and very high quality, btw). I haven’t missed an issue for nearly a whole year.

I want to share another great podcast resource – from The Entrepreneurial Thought Leaders seminar series at Stanford. I’m hugely thankful to my good friend Adrian Wible for telling me about this and his persistence in asking me to listen to them. Almost each and every one of them is like listening to a precis of some really important and interesting business book. Most are by very successful entrepreneurs, or venture capitalists, or professors from Stanford. Brilliant material.

They’re also available from iTunes; and I highly recommend them.

The Cluetrain Manifesto

I just finished reading this book called The Cluetrain Manifesto. I read about it on someone’s blog a long time ago, and had it on my reading list for a while. Then recently, my close friend Kiran recommended it to me again, and so I picked it up.

I liked it! Sure, it is a little repetitive at times – the book is kind of a collection of essays by a group of four authors – and they cover overlapping grounds. However, for most people the book will be one of two things – a) a whack on the side of the head, or b) a reinforcement of what they might have been thinking.

The basic premise is simple – the Internet has changed the way markets behave, and companies need to respond and engage the new markets in this new way as well. Nothing new, huh? Still, how many companies are truly doing it?

In fact, from the above, it might even seem a rather dated book. After all, it was written in 1999, when it was a fact that the Internet was new, and not well understood, and companies were jumping onto the bandwagon. The authors explain that the Internet is not just some new medium to advertise on, or set up websites that dispense corporate-speak. It is a place where people (existing and potential customers) can talk, have a conversation. And these people talk about companies, and share experiences about them. They swap reviews – both good and bad, they analyze companies’ strategies, they come up with ideas for improvement, so on and so forth. It is up to the companies to participate in these conversations and gather what they should from them.

Smaller companies are sometimes good at doing this. They actually know many of their regular customers by name, and gather plenty of feedback and ideas on what they could do more or better. However, there are plenty of companies out there, that even today, do not respect truly their customers, or think they can get away with being a corporation that doesn’t need to truly engage with their customers in a human-like manner. If you’ve ever been treated badly by a large company, say an airline company or a rental car company, then you know what I mean. Most people are pretty clear about the difference in service they should expect when they’re dealing with typical large corporations versus small, mom-and-pop outfits.

And that’s the point. Companies need to get off their high-horse of being a business, and become more like the normal people that work in them. After all, they’re customers too, from someone else’s perspective. Companies sometimes do this during the startup phases. And as they expand (when the distance between the producers and the consumers grows beyond a certain point), they lose this human-ness, and become a faceless corporation that is impersonal and forbidding. If the founders can truly inculcate this and the rest of the principles outlined in The Cluetrain Manifesto, they will find that it becomes another secret-weapon that can be wielded against their more traditional, large corporation-type competitors.

A decent read, I’m sure at least a couple of ideas will stick.

Lean Software Development and the Theory of Constraints

I’ve been trying to apply lean software development principles on my project for a little over a year now. So, when I recently re-read Mary Poppendieck’s Lean Software Development – An Agile Toolkit, I thoroughly enjoyed it and found I was nodding to myself a lot. I highly recommend reading this book because it explains in very simple terms what this whole lean process thing is about, and how it relates to software development. A knowledge of why Agile processes work and what they’re aimed at would help, but is not essential.

For those who don’t have the patience (or time) to read the full book – here’s my version of a summary –

– Strive to eliminate waste. Waste comes in many forms in the world of software development, all of these is waste – partially done work, extra processes that add no value, extra features that have little impact on business value, task switching because of multiple objectives or other reasons, waiting for something, having to go somewhere (to meet someone or fetch something) to get information, defects, and ‘management’ activities.

– Use a technique called value-stream mapping to understand where the process you’re using delivers value and (more importantly) to determine where it adds none.

– Amplify learning through feedback. This is easily done through short iterations and negotiating scope for each of them.

– Think about set-based development techniques.

– Delay commitment – decide as late as possible. At the same time, think about concurrent development.

– Deliver as fast as possible – this enhances learning, and delivers value at the same time. Use concepts from pull-systems and queuing theory.

– Understand the cost of delay – use a product model. Have an accountant on your team who can help with this, and make trade-off decisions in light of what the model says.

– Empower the team!

– Think about integrity – both conceptual integrity, and perceived integrity.

– Testing – TDD, automated functional testing, continuous integration – is key. Refactoring is key.

– Always optimize at a level higher than the perceived issue. Employ systems thinking.

– Embrace the idea of Customer Collaboration vs. Contract Negotiation.

I’ve found that as I started to apply lean software development methods, our processes started to become more and more natural, and that the team became more and more effective. As expected, the team members themselves began to look for new and innovative ways to optimize their workflow, and my job as a project manager became easier and easier from that perspective.

Speaking of optimization, I recall being introduced to the writings of Eli Goldratt by a really smart project manager I worked with in the past – Matt Gelbwaks. Goldratt writes about the Theory of Constraints – his books The Goal and Critical Chain are a really good start to the whole discipline. He has a really simple algorithm to optimize a system, based on throughput accounting

1. IDENTIFY the system’s constraint(s)
2. Describe how to EXPLOIT the system’s constraint(s)
3. SUBORDINATE everything else to the above decision
4. ELEVATE the system’s constraint(s)
5. If in the above process, a constraint has been broken, GO BACK to step 1 but do not allow inertia to cause a system’s constraint.

Applying the Theory of Constraints to improve my teams’ processes, while using lean software development ideas to drive agile practices has proved absolutely invaluable to me over the past year.

I’d be happy to hear from you if you tried similar things on your project… and about how they worked out…

The history of the Lua programming language

I remembered this rather nice article about the evolution of the Lua programming language when I mentioned it in a previous post.

It talks quite pleasantly about how Lua got started, how it underwent changes and where it is today. Quite a fascinating read about a language that was born in South America and is today one of the most widely embedded languages inside of video/PC games in the world. Speaking of which, it also makes for a very clear understanding of the difference between an extensible language and an embeddable one.

Worth the read!

Interaction Design

The Inmates Are Running The Asylum is a book that all software developers ought to read. It is about design – and don’t think architecture – but think interaction design.

Interaction design is one of the most neglected subjects within the field of software engineering – and yet is the crucial piece that can make or break a consumer software product. Interaction design is a process of researching users, their needs, their likes and dislikes, their work patterns, their business needs, their goals, profiling all of this, to build software that is cognitively friction-free. Without interaction design, software usually feels raw and clunky – with users having to adapt to the way it works. Software should be soft – it should be malleable enough to adapt to its users. Interaction design provides a way to fulfill that requirement.

Alan Cooper does a remarkable job in explaining this – and this book is a great prologue to his somewhat more prescriptive About Face. Check this book out, I’m hoping that if enough software people read it, software will stop being so darn frustrating.