Posted On: Sunday, 05 September 2010 by Rajiv Popat

We have all seen these emails. Emails from your Vice President where he wants a certain Fred to look at your project and provide “inputs”.

You know the famous architecture team story by Joel Spolsky.

That kind of inputs.

Before you know it, "consultants" with terrible blind spots who are awesome at playing the jargon game and who have zero knowhow about the domain, zero understanding of your team dynamics and zero expertise in the technical space are meddling in every decision your team is taking.

Well not exactly those consultants, but if you have been through an architecture review meeting with external consultants you know exactly what I am talking about here.

Every small change is questioned and discussed in meetings that no productive programmer would want to attend in the first place but then you suddenly find yourself in these meetings spending hours defending the most common sense driven decisions you took.

You know your car is going round and round in circles. You are not getting anywhere. The fact that you are going around in circles is common sense. You have too many drivers fighting to take control of the driving wheel.

Obviously, you are not moving ahead. Obviously, throwing in more drivers is not going to solve the problem. Obviously, you need to pick a single driver to drive your project. Obviously, you need to check his track record closely before you pick him. Obviously, you need to learn how to trust him. But then again, obviously, obvious is not so obvious, especially when it comes to big organizations that are trying to pretend to be even bigger than they really are.

If you run a team or an organization, remember that every time you get more than one driver at the wheel you run the risk of getting nowhere. So the next time you invite those external consultants to review a project that is moving just fine or fu@#k up a department that is moving along smoothly, think twice.

Here is my humble word of advice from the forefronts of software development: Pick a single capable trust worthy driver. It doesn’t matter who you pick, as long as the person is competent and trust worthy.

Then move to the back seat and let the person you picked drive without bothering him.

You may not get to your exact destination. You might get just a little closer to it. But then at least it is better than moving round and round in circles.

I wish you good luck.


Comment Section

Comments are closed.


Posted On: Saturday, 04 September 2010 by Rajiv Popat

Do you want to really see the worst of software that exists on the surface of planet earth? A few funny examples aside, chances are, that you are not going to find it online. If you are looking for some genuine gems of stupidity, lack of vision, bad design or just down right stupid implementations,  go look at the applications that power the intranet of some of the so called big enterprises or the fortune five thousand.

Khoi Vinh takes the famous analogy of duck typing: "If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck" and turns it into a rather interesting satire on enterprise software. He calls it: "If It Looks Like a Cow, Swims Like a Dolphin and Quacks Like a Duck, It Must Be Enterprise Software"

Khoi also provides his logic on why he believes enterprise software stinks even after the countless dollars that are poured into the efforts of building these applications. He explains:

This is partly because enterprise software rarely gets critiqued the way even a US$30 piece of shareware will. It doesn’t benefit from the rigor of a wide and varied base of users, many of whom will freely offer merciless feedback, goading and demanding it to be better with each new release.

Shielded away from the bright scrutiny of the consumer marketplace and beholden only to a relatively small coterie of information technology managers who are concerned primarily with stability, security and the continual justification of their jobs and staffs, enterprise software answers to few actual users.

Given that hothouse environment, it’s only natural that the result is often very strange.

Of course, most people who take the buying decisions in the enterprise world are going to have blind spots but If you are a programmer with basic ethics and self respect who happens to build software for the enterprise, the first question you need to ask yourself is this:

How do you take the same software, shred off the elements of complexity out of it, stop bitching about performance and add a touch of genuine magic, simplicity, genuinely kickass speed and interactivity to your applications.

Google Apps does it with its paid offering. They take the simple, easy to use, light weight applications designed for end users, tested by millions of live real life users and offer it to the enterprise with added features, more space and a premium price.

If you look into the approach it is rather simple and straight forward. You build for the end consumer. Then once you have enough people using it for free, you let enterprises adapt it and pay for it. You stop bitching about performance and you actually build fast applications. You focus on simplicity, ease of use, easy adaption and you build with the purest of intent.

As rework the famous book by the guys at 37Signals describes, the suits at enterprises that make the buying decisions and sign off paychecks don't wake up in morning wishing they had more slower, sloppier or complicated applications.

So if you are a developer or a technical manager, stop using the fact that you build an enterprise application as an excuse for slapping together random text boxes, drop down lists and option buttons, frameworks, building weird things and calling them enterprise applications. Continue to master the art of simplification. Even your enterprise users will love you for it. After all, working on Enterprise software is not an excuse for building software that sucks. Seriously.


Comment Section

Comments are closed.


Posted On: Friday, 03 September 2010 by Rajiv Popat

You there; if you are reading this you probably have something you can teach us; something you can build or maybe a story to tell. Some insightful content, some meaningful software or a product that can change our lives in the tiniest of ways, maybe just for a couple of days.

Maybe you can make us smile. Maybe you can make us laugh. Maybe you can make us take a pause from our routine, mediocre, mundane lives and nudge us to think. Maybe you can give us a tool or a utility that you were working on last week.

The real question is, are you giving us any of that? 

If not, why?

You are afraid of failing. Aren’t you?

Actually, you are shit scared.

You already know that the 'I don't have time' is the lamest of excuses you have given yourself for years, haven't you? 'I want it to be really good before I release it' - that is a lame excuse too.

Of course you want to spend time and sign stuff you put online. Put finishing touches to it. Polish it. Make it the best you can. All you need is a little bit of time. Newsflash – you are never going to have that ‘little bit of time’.

Remember, you don’t have to be the best to have an audience. You don’t even need an audience. Just being loud, being opinionated and adding a little bit of genuine value with an intent that is pure and clean, is all we, you readers, followers, subscribers, audience (or whatever it is that you want to call us) expect from you.

Show us what you’ve got. We don’t want you to polish it for hours. We don’t want a formal website with professionally done videos surrounding it. We don’t want marketing weasels selling us crap. We don’t want impotent words or formal introductions of your product.

Show us a little bit of yourself through your product, service or whatever it is that you have to offer.

Make it Raw. Unedited. Real.

Even if it is as raw, unedited and real as the videos from Khan Academy.

Salman Kahn from Khan Academy explains this rather articulately in his video on the topic.

Normally, I would have quoted from the video, but this one is fairly inspirational and I would rather than you take the twenty minutes and see the video for yourself

The takeaway from all of this?

If your intent is pure and you are adding value, we will listen. And if you continue doing it long enough, consistently we might even spread the word for you.

Now go give us something meaningful, cute, smart, sexy, funny, or simple and informative.

Give us a little bit of you.

The you that moo's and the you that is purple.

I wish you good luck.


Comment Section

Comments are closed.


Posted On: Sunday, 29 August 2010 by Rajiv Popat

I have blogged out the importance of consistency time and again.

Kickass builders and story tellers keep jabbing.

The metaphor is that of running or working out. If you are not consistently shipping, you are not in growing.

Having said that, every single one of us, go through bouts of nothingness and depressions where we are just not in the zone. Seth Godin describes the problem and the solution in a rather articulate and concise way in his post on the topic. He explains:

Some days, even the best dentist doesn't feel like being a dentist.

And a lifeguard might not feel like being a lifeguard.

Fortunately, they have appointments, commitments and jobs. They have to show up. They have to start doing the work. And most of the time, this jump start is sufficient to get them over the hump, and then they go back to being in the zone and doing their best work.

Momentum is incredibly useful to someone who has to overcome fear, dig in deep and ship.

Momentum gives you a reason to overcome your fear and do your art, because there are outside forces and obligations that keep you moving. Without them, you'd probably stumble and fall.

Slowly exercising your creative mussels and growing out of your comfort area is a simple way to get started. You can even use you insecurity to nudge you on the path. At times a counter which humiliates you in public might do the trick.  On other occasions a simple turn of switch in your brain or being shaken up by an idea might work too.

The tools are numerous. Pick a few that you are most comfortable with and use them. What ever it is that you do, always remember that nature designed us to become lion lunch the moment we became sedentary and that implementation hasn't been redesigned yet.

So keep the momentum going, even if it is just one step you are taking each day.

Oh and yes, a lot of talking is not a step forward. Do something real. Work on something concrete. Ship.

Consistently.

I wish you good luck.


Comment Section

Comments are closed.


Posted On: Saturday, 28 August 2010 by Rajiv Popat

You look at the stupidity that happens in your organization and you tell yourself, "WTF! Why cant they see something as clear and stupid simple as this?".  And then after a few meetings you stop giving a f@#ck, slip into hibernation and start doing your 'job'.

Scott Berkun describes the situation rather articulately in his post about the topic of fighting management incompetence. He explains:

The big incompetence crime committed by VPs is leaving incompetent managers in place for too long. My theory: by the time the CEO knows a VP stinks, the whole org has known about it for months. The smart people have been making plans to leave or are working to cover their assses. By the time the CEO gets around to taking action, it’s way too late. And often the action taken is whitewashed: no mention is made of how the VP or middle manager utterly failed (e.g. “Fred has decided it’s time for something new.”) The denial lives on, the lie propagates, making it easier for more denials and lies the next time around.

But then the real question that continues to confuse and amuse me is this; why do so many people so high up in the pecking order of really big organizations prefer to live in the state of denial? Are they complete morons, down right idiots or arrogant pompous fools who managed to peck on others and climb the corporate latter of prickdom?

The answer however, might be none of these. John Cleese on his video about creativity might have hit upon the answer using simple science and logic. He explains:

To know how good you are at something, requires the same skills as it does to be good that thing. Which means if you are accidently hopeless at something, you lack exactly the skills that you need to know that you are absolutely hopeless at it.

And this is a profound discovery. Most people who have absolutely no idea what they are doing have absolutely no idea that they have no idea  of what they are doing.

It explains a great deal of life. It explains particularly Hollywood. But it also explains why so many people in charge of so many organizations have no idea what they are doing.

They have a terrible blind spot.

And the problem with teachers may be that the teachers do not realize that they themselves are not very creative and therefore they may not value creativity even if they can recognize it.

The approach mostly explains why kickass developers find it painful when they are asked to work with non-technical managers who had never coded or were never really good at coding in their entire life.  It also explains why so many people high up in the pecking order of countless organizations around the world do not see what every developer who walks the corridor of the organization sees.

So the next time you are asked to lead a team, work on a project, or lead a department take a long pause and ask yourself if you are really good at what you are going to be leading people on. I know there is an impulsive voice within you dying to say - 'of course I know what I am talking about!' - but hold it. Relax. Give it some soak time. Be really honest about it. What are your credentials on that specific topic?

You might have been an amazing programmer. That does not make you a good manager. You might have been an amazing manager, that will not make you a good entrepreneur. You might have been a really successful entrepreneur, but that that may not make you the best programmer. You might have built an amazing system, that does not make you a person who can drive a community.

Before you decide to get actively involved and lead from the front, think. Sometimes handing the driving wheel to someone else who knows how to drive is a way better option. Seriously.


Comment Section

Comments are closed.


Posted On: Friday, 27 August 2010 by Rajiv Popat

Jack triggers a casual conversation about his need for mentorship

Yes, that mentorship where he is looking for an 'in office mentor' to handhold him and help him grow technically. He feels he is not 'growing' because he does not have a mentor who can train him.

He talks at length about the glory of his past mentors as you listen in silence. You happen to know and respect some of these guys that he is talking about, personally. Five minutes into the conversation and you have realized the absurdity of it all.

Respecting someone for his talents and wisdom is perfect but when people start putting other human beings on a pedestal higher than themselves and start hoping that these mentors will show them the way, strange things happen.

You look at Jack wondering if you should tell him to snap out of the Matrix. You wonder if he is ready for the red pill.

That red pill.

Then you do it. You ask him to name one hugely successful project of one of these mentors that he is talking about actually led from the forefront.

Silence. Crickets chirping.

Ok, how many times did this mentor of his actually conduct a training where he wrote code that inspired Jack?

More crickets.

Newsflash! These mentors were just as lost and confused as Jack himself or me.

Ours is a business where we mix way too many things together. We mix authorship with authority, years of experience with technical competence, a condescending attitude with power or wisdom and respect with mentorship. We see people with power or authority and assume that just because they were able to get themselves in a position where they can demonstrate power or authority, we need stop questioning and start following them.

The red pill in the software development world is about challenging the validity of every human being you learn from. Question everything that they have to say. Look for your own facts, take your own decisions and make your own judgment calls.

As you read this, you are either nodding your head in agreement or shaking it in disagreement. I am not going to try and convince you one way or the other because becoming your mentor is the last thing that is on my mind. I am not good enough to mentor anyone and I have no misconnections about that.

If I can just collaborate with a few interesting minds around the world, learn something from them, teach them a thing or two and exchange ideas worth sharing with them, I have done my part.

Now stop cribbing about not having a mentor at your workplace. Go find the best alpha geeks and loud characters out there and collaborate with them. Mentorship is not a one way street. It's cluster-fuck of hundreds of minds engaging in countless battles of ideas, facts or techniques and learning from  those battles. These battles can cause a few scars but once you get the point they are so worth the scars they cause.

Now the real question you have you ask yourself is:

Are you man enough to put yourself out there and participate?

Go on. Connect with the best of the minds you can find and then learn from them. I dare you.


Comment Section

Comments are closed.


Posted On: Sunday, 22 August 2010 by Rajiv Popat

Remember that book you promised you said you were going to write? Remember that technical blog you were going to post on regularly? Remember the little open source framework you said you were going to work on? Of Course you are working on all of that. But then, do you remember when it was that you first said you were going to write a book? Three months ago? Five Months ago? A Year?

Thought so.

Time has strange attributes attached to it particularly when it comes to the speed at which it moves. You are not going to win the fight against time, so don’t even try.

But then, as a geek you have tools at your disposal that help you realize just how pathetically slow you are moving. One simple tool is using twitter to announce the number of days since you started a task. I recently started doing this with the book project that I started working on:

The idea is to make it a point to go to twitter and post a message with every passing day telling yourself that one more day has passed. You can either leave it at that, or get creative and mix it up with celebrating doneness, announcing frustration at random distractions or announcing nothingness.

Either ways, if you can just logout for just five minutes every single day to remind yourself how fast time is moving by, chances are that as time moves by you will disconnect for longer durations and get something real and productive done.

So go ahead, make a not to yourself and tell yourself how many days has it been since you said you were going to work on whatever it is that you said you were going to work on in your free time.

Of course you will end up making a fool of yourself when the number of days start moving phenomenally high for simple things, but then, at times, self humiliation in public can work really well.  Try it.

I wish you good luck.


Comment Section

Comments are closed.


Posted On: Saturday, 21 August 2010 by Rajiv Popat

You are a geek. An alpha geek. Don’t get me wrong. It is absolutely cool to be the guy that acquaintances call up when their computers stop working. It is also absolutely cool to be the guy that folks in office approach when some firefighting needs to be done. And it’s also absolutely cool to be the guy that relatives count on when they need help with installing software or automating their backup.

But beware young geek. The same geekness that makes you “wanted” will turn you into a battery if you don’t master the art of logging out.

Logging out is not just the art of disconnecting twitter. Logging out is not just the art of not checking your emails. Logging out is not just the art of putting your phone on silent. Logging out is a state of mind where you announce politely but firmly (making it very clear that you mean business) to the world that surrounds you, that you refuse to be turned into a mindless robot attending to things at hand.

You can typically logout as much as your life permits but typically a few hours a day is usually good enough.

When you are logged out, you do not take phone calls. You do not check emails. You do not talk to colleagues who walk up to you seeking your help with tweaking the server configuration. You do not help relatives fix their laptops. You do not respond to people on twitter.

When you are logged out, you are usually doing what matters the most to you at that point of time. When you are logged out, you resist the temptation of logging in. When you are logged out, you are in the flow. When you are logged out you have picked one thing, just one thing that you are going to focus on for the next couple of hours and that one thing is what occupies a good part of your mind.

It could be anything. Something you always wanted to work on or a work related problem that you had said you will attend to for months. Anything that you absolutely want to work on.

Most folks who need stupid favors from you might get annoyed at the idea of logging out but if you cannot be a in logged out state for a couple of hours a day, you are just being utterly unfair to yourself.

The logged out state of mind is what keeps your geekness smart. The logged out state of mind is where you geek comes to life and does some serious intellectual exercise. The logged out state of mind is where all the real work happens.  The logged out state of mind is where things are built and then shipped.

Go ahead and logout for a couple of hours every day. Your true friends and genuine well wishers will understand. The others just want their computers fixed and will either wait or call geek squad.


Comment Section

Comments are closed.