I recently wrote a post on YAGNI and asking "Why" Before adding features which led to quite a bit of criticism and questions through a couple of comments, email and personal one-on-one discussions.
If you drop me a comment on this blog, usually I’ll respond to it as a comment because I feel it helps in maintaining continuity of on-going discussion. But then, the YAGNI post received a comment that was different. By the Time I had completed writing the reply to the comment I had already crossed a couple of pages and it sounded like it deserved a new post.
Rohit Jain responded to my post with a rather opinionated but interesting comment. By The time I had read the comment I was busting with a temptation of a six year old who knows the answer that was just asked by the teacher.
Just so that you don’t have to swap back and forth I post Rohit's comment here:
"Why vs. Why Not" is an exciting topic. There is much to argue, much to disagree & much to settle at for.
Still it's precious, for it involves exchange of thoughts, exchange of visions, exchange of desires, exchange of expertise and so many other things.
But... when you ask "Why YES?” you at the same time also mean "Why not NO?” :) They are always twinned. Things are not always as they look to be, things are as you want to see them.
As for YAGNI, it's true. You need to focus, focus on needs first. You need to learn to control temptations, b'coz it's endless. You need to know what to do and what not to. That's a very thin line, but is a life saver at times... worth following. We all do because it unarguably makes processes successful.
But ain't it that an Innovation is a child of creativity? That's why we hear of companies giving "paid" time to their staffs for their own creative projects (things that company hasn't seen yet, don't need either....but still they care for).
The world will not end if new innovations are not born. The world is running & it will. People will take birth, people will live happily ever after, and they will die to rest in heaven. But we have innovations to ease our life, to make it a little better, a little easier. We never needed iPod, we enjoyed listening music on a heavy, fat & ugly looking gramophone player. But then we saw evolutions. And now, iPod is in everyone's wish list. I can't help commemorate the statement, "Needs are created". That's another exciting topic to argue :)
Taking out one line from my own blog site: "When you ask others 'why?', ask Yourself 'why not?'. Most of the questions will be answered automatically."
Still, needless to say that "Why vs Why Not" is always useful, for everyone. Because that helps, helps grow.
The 'Why not?' guy :)
While the comment is fairly constructive in criticisms and deserves a reply I feel Rohit was a little mixed up with contradicting thoughts and ideas. This post is my humble attempt to put these conflicting and confusing thoughts and ideas in right perspective. Let's take each part of the comment, dissect it and try to answer it in the sprit of sharing ideas and learning something new.
> We all do because it unarguably makes processes successful
The comment starts by seeming to suggest that YAGNI as this thing that makes a 'process successful' almost seeming to suggest that the guys who talk about YAGNI are guys who are so-anti-innovation that they are completely so-not-cool.
The way I see it, answering the 'why' has nothing to do with making the 'processes successful'. To me, 'why' is the the fundamental question that needs to be answered before you do anything. Of course, the answer to the 'why' can very well be 'because it’s fun' or 'because I like it' and that's perfect; but if you can’t answer the 'why', you are probably just wasting your time.
Early on in my career I started asking questions like: Why do we need to wear a tie to office? As I grew up as a developer the 'why' related questions became more and more profound and at the same time much more subtle. I asked why most organizations out there can’t trust their employee, why people seek refuge in documentation, why people need to spend fixed amounts of time in office and even why managers can't or shouldn't write code. If you read this blog regularly you will realize that this blog asks a lot of 'whys'.
My Post on Johnny Knapsack’s story is interesting in this context. Johnny Knapsack kept running with a Knapsack on his back without asking 'why' he needed the knapsack till he lost the most important race of his life. You can read the post here and the original story here.
The post and how I use the story is fascinating in this context because the post uses the story as an example of how you should move away from a rigid formal process by asking more 'whys'.
Clearly asking 'why' has nothing to do with following the process or being un-cool.
> Ain't it that an Innovation is a child of creativity?
This is the part where the comment does what I refer to as playing with words. I do this a lot myself. Playing with words to confuse the person on the other side during an argument is an interesting technique we learnt during our debate lessons in school. Let's play with words, now; shall we? Ever heard of proverbs like 'Necessity' is the mother of invention'? You need to be able to define 'why' you are innovating whatever-it-is-that-you-are-innovating before you innovate.
On the other hand the comment doesn't really explain how asking 'why' kills innovation or creativity.
The History that I know and was taught in school, tells me that most innovations have constantly happened because some kick-ass-guys (and girls) with really smart brains were able to tap into genuine needs and wants of people. After they did that they were able to answer 'why' people will need or want what is being invented or innovated.
Software History that I've been a part of during the early windows days has taught me that there have been a few products which were built with the 'why not' mentality and most those that I can think of have failed miserably. Ever heard of Microsoft Bob? When you say 'why not' and try to replace your desktop with a barking dog who is not even very funny, you really don't expect your customers to put up with your idea of something being 'cool' just because you asked 'why not' and decided to go ahead and build it anyway.
37Signals have been sited by many as leaders when it comes to recent day innovation in software and they have a one line “why” attached to every single product that they build:
What does your app stand for? What's it really all about? Before you start designing or coding anything you need to know the purpose of your product — the vision. Think big. Why does it exist?
Notice the word 'why' in the quote? These guys have given a lot of innovative products to the world and the basic premise on which their products are built is asking 'why' before they start building the product and then asking the same 'why' as every feature they add.
When you’re hooked on with the idea of building something, being asked 'why' seems like an attempt to kill your creativity, which is exactly what the comment seems to make it sound like, but more often than not that is clearly not the case. Creativity and innovation happen by constantly asking yourself 'why' not just saying 'why not' and doing things even before the 'why' has been answered.
The idea that asking 'why' kills creativity is blatantly wrong. Simple.
> That's why we hear of companies giving "paid" time to their staffs for their own creative projects (things that company hasn't seen yet, don't need either....but still they care for).
This is where I feel that the comment really mixes up Freedom, Process with the whole 'Why Vs. Why Not' thing. I will assume the comment talks about Google which is often sited as a popular example of a company that gives twenty percent free time to employees to chase their dream projects.
The first time I heard the idea I loved it. I went out telling everyone about it. I really think that every company out there, that can afford it, should do it; companies like 3M had done it way before Google Started it. I personally recommend it highly. Having said that we need to remember that the basic assumption here is that the employees would have answered the 'why' themselves.
Everyone loves Google; me included. Having said that, I've never been at Google to see for myself how things are. While, it's perfectly ok to learn from these companies and get inspired it's also important to remember that how you do things is not about how Google does them.
I know these things sound perfectly glamorous when you hear them but it may or may not be as glamorous in reality as it seems:
In other words, it’s your job to carve out 20% of your work week for a project. If you don’t carve out the time, you don’t get it. Your project needs to be tacitly approved by your manager. Whatever it is, is owned by Google. If you’re organized, you can “save up” your 20% and use it all at once. It’s not unheard of for people to have months and months of “20% time” saved up. Most people don’t actually have a 20% project. Most managers won’t remind you to start one.
On the other hand take a look at any Google Products including the search engine we all love and YAGNI is evident in every single part of their design. Do you think they can't afford to make a fancy looking User Interfaces for their products? Obviously not. Simply put, their User Interfaces are simply sticking to YAGNI. That is what sets them apart.
Bottom line, I’m sure Google would have pulled the plug on this who free-time-thing if their employees were busy building BOBs in their free time. Google continues this practice because Google Employees come out with Google Maps which provide direction to people and Orkut which helps friends connect with each other in turn building communities. All Google Products built on free time or as experiments have a core cause of existence and answer the 'why' very-very distinctly; and you know what? They follow YAGNI too! Every single one of them that I have seen so far does.
> The world will not end if new innovations are not born. The world is running & it will. People will take birth, people will live happily ever after, and they will die to rest in heaven. But we have innovations to ease our life, to make it a little better, a little easier.
This is the point where you feel like literally telling Rohit that he needs to slow down. Here's my response to this line in the comment:
Hold on. You seem to be jumping the gun here. You seem to have mixed up innovation with asking “why” and you seem to propose the idea that anyone who asks “why” is anti innovation which I clearly have a problem with because that’s wrong; blatantly wrong. In fact the reverse is often true.
Here’s how Wikipedia defines innovation:
The goal of innovation is positive change, to make someone or something better. Innovation leading to increased productivity is the fundamental source of increasing wealth in an economy.
Necessity truly is, the mother of invention and putting invention into practice like it has never been put before is called innovation. When you can answer the 'why' people need what you’re building chances are you are on to innovating something; if you can't, there's a high possibility that you're wasting your time and most probably their time as well. You know what? Unless your users can answer 'why' they should use your application or even read your blog; they just don't care.
Scott Berkun’s Video on Myths of Innovation which he gave at Google is interesting. It's interesting because Google is often sited by many as Mecca of innovation. The First Myth Scott breaks in the video is that innovation is absolute. He explains that innovation is in-fact, relative. In the video he explains that Innovation is the process of implementing an invention depending on the 'needs' of people.
His example is simple. Bringing electricity or water to an area which doesn’t have it is innovation for the people who live in that area even when most areas in developed countries around the world today, might not consider it innovation.
Asking 'why' people will need what you're building is the fundamental building block of innovation.
> We never needed iPod, we enjoyed listening music on a heavy, fat & ugly looking gramophone player. But then we saw evolutions. And now, iPod is in everyone's wish list.
Read this part of the comment again; seriously; Do it. Read it again; slowly. It’s ironic because it’s a question which answers itself.
Apple had a concrete answer to the 'why' everyone needs an iPod. Because the gramophones were heavy, fat & ugly. There. The question answers itself. Simple. On A side note, who is saying don’t build iPods, Eh? Apple had very good reasons to make the iPod; changing the way music industry works was one of them.
Now, Let's throw in some facts, shall we?
The comment picks an interesting example. The iPod.
I love the iPod. We all do; but for the not for the reasons comment sites. The comment almost seems to make it sound as if a couple of really hip-and-happening teenagers got in a room and said 'why don't we build a MP3 player' and then they suddenly started off building everything they could and changed the world resulting in an iPod to emerge out of nowhere. In a real world where I live, innovation is not that easy. In fact, Apple uses YAGNI extensively in their products which is what sets them apart. Ever wondered why most iPods don’t have a FM Radio? Dale Jensen explains:
Who needs an FM receiver when your iPod holds the greatest radio station that there is - perfectly aligned to your tastes, with no commercials, and no annoying DJs? That's the innovation - the bit that frees us from other's decisions, other's limits and other's expectations. The iPod is what you are, not what someone else wants you to be.
Innovation by Asking 'why' and then sticking to YAGNI, simplicity and class; that is what sets Apple apart.
By now if you haven’t noticed how grossly wrong the comment is in its premise, let’s talk about MacBook Air, one of apples latest innovations, which they prefer to call 'Thinnovation'
Apple is surprisingly disciplined about asking themselves 'why' even before they add hardware to their latest notebooks. It lacks an optical drive, has very few ports, has internals that cannot be upgraded and lacks a swappable battery. As a commenter describes:
But now, today, we’ve got the MacBook Air, a laptop so thin and light it’s named after a shoe. At just three pounds, it fits inside a manila envelope, and is practically guaranteed to bring about envy in those with heavier laptops for at least the next three months. It’s not perfect — no Ethernet port, no FireWire port, and no swappable battery — but you know what? I’ll take it.
Apple could have said 'why not' and have easily decided to slide in that FM Radio in iPods and slide in those few extra ports in Mac-Book Air; but YAGNI to a large extent, is what makes Apple Products so desirable, classy, appealing and 'innovative'. Most people see Apple and Google as these cool and happening companies and don't even realize these facts. Of course these are cool and happening places, because they have the self discipline to constantly question everything that they indulge in.
> "Needs are created".
Who’s arguing with that? But if you can’t say why people will need what you’re innovating; people probably won’t. Create the needs, but answer 'why' they will become needs and 'why' others will need what you are building before you go in a dark cave and start building something. If you can't then how do you even know it's a 'need' that you're creating and not just crap?
> "When you ask others 'why?', ask Yourself 'why not?'. Most of the questions will be answered automatically."
I could rephrase this as:
When you ask others 'why not' answer the 'why'. Most of the questions will be answered automatically. Call me arrogant, but I make a personal hobby out of playing with words and philosophies. I practically have a cupboard full of books which talk about the meaning of life, universe and everything. I read them all night. But you know what? When it comes to getting down to hard realities of life, The answer is 42!
On a serious note, while these words and ideas are nice to play around with, truth is that simplicity, personal commitment, personal discipline, continuous focus and hard work lead to innovation. Notice that I use the word 'personal' (not externally imposed). Unless you can concretely ask yourself 'why' you are doing something and then answer that why, the commitment and and focus doesn’t happen magically. Saying 'why not' and adding features randomly often takes away the simplicity which is often the soul of any innovation.
The comment seems to resonate a tone that there are two things you can do; you can either meet your dead-lines and meet processes or be innovator and change the world. In the real world however, a lot of innovations are often created because of real life limitations. The guys at 37Signals explain:
There's never enough to go around. Not enough time. Not enough money. Not enough people.
That's a good thing.
Instead of freaking out about these constraints, embrace them. Let them guide you. Constraints drive innovation and force focus. Instead of trying to remove them, use them to your advantage.
While it's easy to say, that you had a time-crunch and other limitations which is why you couldn't innovate, another way to look at it is that limitations often breed innovations.
> Why vs Why Not" is always useful, for everyone. Because that helps, helps grow
Do You know what helps people grow? The smack down learning model where you basically start with strong opinions are weakly held and throw a few punches at each other. On a serious note, I really believe that it's one of the best learning models out there which is why this post wears a highly opinionated tone.
The comment seems to mix up innovation, creativity and a lot of other things with asking yourself 'why' and seems to create a confused mesh of ideas. It's great because it keeps a lot of discussion points forward but it's confusing and misleading. I cannot get myself to agree on it because it's based on the premise that asking 'why' is anti-innovation which of course is blatantly wrong. That's where it starts and then it goes all over the place about how asking 'why' prevents changes from happening on this planet; which again, is clearly not the case.
The comment seems to break the world into two kind of guys; the we'll-change-the-world guys who go around doing things without answering 'why' they are doing them in the first place and build random stuff and change the world and the why-are-we-doing-this guys who basically don't innovate, stick to the process and get projects completed. That's where the premise of the comment goes wrong. The comment basically misses the fundamental point that you can constantly ask yourself 'why' in a fun way, continue innovating by answering those questions relating to 'why' and be pragmatic.
That's how the folks at apple Keep the iPod simple and not get carried away by their desire to build cool features. If they didn't restrain this desire, you would probably have hundreds of features in your iPod and you probably wouldn't love it all that much.
That's how folks at Google keep their User Interface Simple. That's one of the reasons why they beat Yahoo which was then the dominant search engine. They did by using YAGNI and simplicity to their advantage.
Most innovators are surprisingly clear about answering questions pertaining to the 'why' when it comes to their innovation.
I’m standing by the premise that answering the 'why' is much more important than just saying 'why not' and then building stuff. I'm standing by this premise unless of course someone out there can let me know 'why' I should change my premise.
You don't ask why, you don't get innovation. It's that simple.
Disagree? Let’s have a smackdown battle of thoughts.