February 26, 2015

For many small software consultancy companies, here is the perennial dilemma.

“Whether to remain a consultancy company or to become a product-based company?”

For two obvious reasons. It is very hard to scale consultancy companies. Real money (and glory) lies in becoming a successful product-based company.

There are a few examples of such successful transformations. Basecamp (previously 37Signals) started as a consultancy company and successfully transformed itself in to a product-based company. Same goes for Fogcreek (creators of FogBugz and Trello).

Such examples are very few and most consultancies fail to do this transformation. Digicorp has been one of such companies so far. We have launched some really goodideas in the past but have failed to make something big out of them.

I am sure there are hundreds of small consultancies who have failed like us. But why?

Why it is very very difficult to transform your organisation from doing one type of work (software consultancy) to doing different type of work (making your own software products)?

The strange thing is, we are not even talking about acquiring different kind of skills here. Software consultancies already have people creating brilliant software products for their clients but the same people are not able to do the same for their own organisations. What is wrong here?

Well, finally I have found a plausible answer or at least a perfect language to describe this phenomenon.

“If an established company doesn’t disrupt, it will fail, and if it fails it must be because it didn’t disrupt.”

There is an irony in the entire argument as it is circular. Read below paragraph and you might get a gist of the book.

“An organization’s capabilities reside in two places. The first is in its processes — the methods by which people have learned to transform inputs of labor, energy, materials, information, cash, and technology into outputs of higher value. The second is in the organization’s values, which are the criteria that managers and employees in the organization use when making prioritization decisions. People are quite flexible, in that they can be trained to succeed at quite different things. An employee of IBM, for example, can quite readily change the way he or she works, in order to work successfully in a small start-up company. But processes and values are not flexible. A process that is effective at managing the design of a minicomputer, for example, would be ineffective at managing the design of a desktop personal computer. Similarly, values that cause employees to prioritize projects to develop high-margin products, cannot simultaneously accord priority to low-margin products. The very processes and values that constitute an organization’s capabilities in one context, define its disabilities in another context.”

“A process that is effective at building scalable software products for our clients, for example, would be ineffective at building disruptive ideas like [write our own product ideas here].”

Even if we put right people at the right places, it will not help us building“disruptive technologies” i.e. creating our own products. Our processes and values won’t allow the right people (whos) to prioritise correctly.

That is why there is a word “dilemma” in the book’s title. The sameResources-Processes-Values (RPV Framework), which is crucial in building software products for our clients are becoming roadblocks in creating products for our consultancies.

The author has proposed a solution also for the same but it is probably the story for another post.

What do you think? Is your organisation going through the same transformation and failing?

September 18, 2014

A lot of programmers quander if they should be programmers all their life or become managers. They love programming so much, they loath the idea of being a manager and why should they?

By sheer serendipity, I believe I have found an answer to this riddle.

I came across this masterpiece from Paul Graham today, which is essentially a transcript of the Richard Hamming’s talk at Bellcore on 7 March 1986.

Richard Wesley Hamming was an American mathematician whose work had many implications for computer science and telecommunications.

The entire transcript is very long but we just need to read his answer to the question,

Would you compare research and management?

Hamming’s answer:

If you want to be a great researcher, you won’t make it being president of the company. If you want to be president of the company, that’s another thing. I’m not against being president of the company. I just don’t want to be. I think Ian Ross does a good job as President of Bell Labs. I’m not against it; but you have to be clear on what you want.

Furthermore, when you’re young, you may have picked wanting to be a great scientist, but as you live longer, you may change your mind.

For instance, I went to my boss, Bode, one day and said, “Why did you ever become department head? Why didn’t you just be a good scientist?” He said, “Hamming, I had a vision of what mathematics should be in Bell Laboratories. And I saw if that vision was going to be realized, I had to make it happen; I had to be department head.”

When your vision of what you want to do is what you can do single-handedly, then you should pursue it. The day your vision, what you think needs to be done, is bigger than what you can do single-handedly, then you have to move toward management. And the bigger the vision is, the farther in management you have to go.

If you have a vision of what the whole laboratory should be, or the whole Bell System, you have to get there to make it happen. You can’t make it happen from the bottom very easily. It depends upon what goals and what desires you have. And as they change in life, you have to be prepared to change. I chose to avoid management because I preferred to do what I could do single-handedly. But that’s the choice that I made, and it is biased. Each person is entitled to their choice. Keep an open mind. But when you do choose a path, for heaven’s sake be aware of what you have done and the choice you have made. Don’t try to do both sides.

Enlightening, isn’t it?

Now instead of researcher, think from a programmer perspective here. Everything will make sense.

Let me rephrase some lines from a programmer’s point of view:

When your vision of what you want to do is what you can do single-handedly (solving interesting problems by programming), then you should pursue it.

This is the path you should chose if you want to remain programmer all your life, which is definitely a life worth spent.

The day your vision, what you think needs to be done (in programming), is bigger than what you can do single-handedly, then you have to move toward management. And the bigger the vision is, the farther in management you have to go.
I guess this is when you decide to become a manager from a programmer.

August 12, 2014

The hard thing about hard things is the most powerful business book I have read in recent times. It is written by Ben Horowitz, co-founder and general partner of Andreessen Horowitz, a Silicon Valley–based venture capital firm. Previously he was cofounder and CEO of Opsware, formerly Loudcloud, which was acquired by Hewlett-Packard for $1.6 billion in 2007.

Ben tells a gripping story of his own entrepreneurial journey in the first few chapters. An amazing roller-coaster ride from which he came out as a winner. It sets the pace of the book so make sure you read it from the beginning.

In rest of the chapters, he enumerates various difficult situations, which arises in the life of a CEO, and provides his opinions about them with the help of anecdotes from his own hard-earned rise.

Every chapter in this book is an invaluable lesson for a CEO but you should identify key takeaways for you and your company, which you can start working on immediately.

So here are key takeaways for Digicorp according to me.

Takeaway – 1

Take care of the people, the products, and the profits – in that order.

Taking care of the people is the most difficult of the three by far and if you don’t do it, the other two won’t matter.

Taking care of the people means your company should be a good place to work but what is a good place to work? Keep reading.

Takeaway – 2

The difference between a good place to work and a bad place to work

In an extremely powerful conversation between Ben and one of his company head, he illustrates the difference between “a good place to work” and “a bad place to work”.

[You have to read the entire chapter from start to finish to feel the impact of this conversation but still I am writing part of the relevant conversation here.]

“In good organizations, people can focus on their work and have confidence that if they get their work done, good things will happen for both the company and them personally. It is a true pleasure to work in an organization such as this. Every person can wake up knowing that the work they do will be efficient, effective and make a difference both for the organization and themselves. These things make their jobs both motivating and fulfilling.”

“In a poor organization, on the other hand, people spend much of their time fighting organizational boundaries, infighting and broken processes. They are not even clear on what their jobs are, so there is no way to know if they are getting the job done or not. In the miracle case that they work ridiculous hours and get the job done, they have no idea what it means for the company or their careers. To make it all much worse and rub salt in the wound, when they finally work up the courage to tell management how fucked up their situation is, management denies there is a problem, then defends the status quo, then ignores the problem.”

Takeaway – 3

Why companies should train their people and why it is the boss’s job

Few arguments to answer the first part of the question.

Productivity

Training is, quite simply, one of the highest-leverage activities a manger can perform. Consider for a moment the possibility of your putting on a series of four lectures for members of your department. Let’s count on three hours preparation for each hour of course time—twelve hours of work in total. Say that you have ten students in your class. Next year they will work a total of about twenty thousand hours for your organization. If your training efforts result in a 1 percent improvement in you subordinates’ performance, you company will gain the equivalent of two hundred hours of work as the result of the expenditure of your twelve hours.

Performance Management

If you don’t train your people, you establish no basis for performance management. As a result, performance management in your company will be sloppy and inconsistent.

Product Quality

As success drives the need to hire new engineers at a rapid rate, companies neglect to train the new engineers properly. As the engineers are assigned tasks, they figure out how to complete them as best they can. Often this means replicating existing facilities in the architecture, which lead to inconsistencies in the user experience, performance problems, and a general mess. And you thought training was expensive.

Employee Retention

During a time of particularly high attrition at Netscape, Ben decided to read all of the exit interviews for the entire company to better understand why people quit hi-tech companies. After putting economics, aside, he found that there were two primary reasons why people quit:

They hated their manager – generally the employees were appalled by the lack of guidance, career development and feedback they were receiving.

They weren’t learning anything – the company wasn’t investing in the employees.

An outstanding training program can address both issues head on.

Why it is boss’s job?

Training must be done by a person who represents a suitable role model. The person standing in front of the class should be seen as a believable, practicing authority on the subject taught.

Takeaway – 4

Management Debt

While you may be able to borrow time by writing quick and dirty code, you will eventually have to pay it back—with interest.

This is called a “Technical Debt”.

Like technical debt, management debt is incurred when you make an expedient, short-term management decision with an expensive, long-term consequence.

I am just listing out three of the more popular types among startups. You should read the entire chapter for the details.

Putting two in the boxWhat do you do when you have two outstanding employees who logically both fit in the exact same place on the organizational chart?

Over compensating a key employee, because she gets another job offer

No performance management or employee feedback process

Takeaway – 5

Programming Your Culture

So what is culture? Does culture matter? If so, how much time should you spend on it?

Any technology startup must do is build a product that’s at least 10 times better at doing something than the current prevailing way of doing that thing.

The second thing that any technology startup must do is to take the market. If it’s possible to do something 10X better, it’s also possible that you won’t be the only company to figure that out.

If you fail to do both of those things, your culture won’t matter one bit. The world is full of bankrupt companies with world-class cultures. Culture does not make a company.

So, why bother with culture at all? Three reasons:

It matters to the extent that it can help you achieve the above goals.

As your company grows, culture can help you preserve your key values, make your company a better place to work and help it perform better in the future.

Perhaps most importantly, after you and your people go through the inhuman amount of work that it will take to build a successful company, it will be an epic tragedy if your company culture is such that even you don’t want to work there.

Read the chapter to learn about the “shock value” mechanism to build a culture and how following companies have done it.

Desks made out of doors – Amazon

$10 per minute – Andreessen Horowitz

Move fast and break things – Facebook

I consider above five as key takeaways for Digicorp from the book, that means we should immediately start working on it.

You figure out your own after reading the book and share it with the world.

This book is so powerful that I don’t have enough words to describe its importance for a CEO and her company. This books officially enters our “Books we love” list and Ben Horowitz officially enters our “People we respect” list.

For Digicorp, this book is equally important and relevant as “Rework” and in some cases even more.

August 8, 2014

We are big fans of Joel Spolsky and one of his companies, Fog Creek. It is a software company specializing in project management tools. One of its main products is FogBugz.

Couple of years back we evaluated FogBugz for project management and bug tracking. We were impressed with the product and customer service but did not buy the paid version. Cost was the main factor.

Few days back, my colleague Kuntal evaluated FogBugz once again and asked for a discounted one time price as monthly subscription cost was coming out to be USD 900/month.

Here is what he wrote:

Hello Will,

We are now evaluating the Software at DIGICORP that can help us with Project Management, Bug Tracking and Documentation. FogBugz has been our choice for a long time. Unfortunately we have not been able to start using a paid version. I wanted to know what is the best case deal for us from your end.

Following is our requirements.

We would like to use the whole software along with Wiki and Time Tracking.

We would like to score 12 on 12 on Joel Test so we want the best tools money can buy so FogBugz is the choice;

We are today total 100 persons in the company, we will grow up to 120 persons with in next 6 months.

The monthly pricing for on demand version comes around 900 USD which is too high for our budget.

What is the best we can get in one time cost?

We are big fan of Joel, we have also made an Android App for Joel on Android.

Can you please revert to us with some really discounted price for our organisation?

Thanks,
Kuntal

The very next day, we get this reply from Fog Creek.

Hello!

Thanks for reaching out to us! I’m sorry that our pricing may not work out for you but it is our policy to offer our published prices to whoever wants to buy our software, without any arbitrary or promotional discounts.

We find this helps keep us in the business of making software rather than deciding who gets what price. It also keeps you from wondering if you got the best deal on our software. If you pay the public price, you know you got the best deal we offer.

By doing away with negotiations, we actually enable our sales and support team to spend a LOT more time with each customer understanding their needs and helping them succeed with our software.

We’re so certain that you’ll love our software and will find it to be an excellent value that we are proud to offer the industry’s best unconditional, no-questions-asked money-back guarantee for a full 90 days.

If you are still interested in pursuing this, I’d be happy to help you out.

Thank you!

All the best,
Will Everett

Isn’t it beautiful? We simply loved the reply.

I am sure, a lot of companies don’t discount the price for their customers (For e.g. Basecamp which we use at Digicorp) but never so far we received a polite “NO” like this.

Above all they are not faking it. They really mean it when they say,

By doing away with negotiations, we actually enable our sales and support team to spend a LOT more time with each customer understanding their needs and helping them succeed with our software.

May 15, 2014

We were approaching this milestone and we knew we would have to do something significant. It is certainly not a small feat.

According to the U.S. Small Business Administration, about one-third of businesses survive to their 10th year [unverified claim].

But at the same time not so great as well. A lot of companies are in business for decades. So there has to be a strong reason for celebrating this milestone.

Why should Digicorp celebrate 10 years in business?

This was a very tough question and the “Why?” part was very important to us.

Initially I was looking at this event as a good marketing opportunity to tout our past accomplishments and create more business opportunities with our existing clients. I couldn’t convince others of the same and later on I was also not very sure about it.

Primarily because we don’t think we are successful, at least not by the traditional definition of success. Read “Why grow?” chapter of REWORK to understand more. [OR you can read that chapter in this article]

Finally after a lot of arguments and discussions, we found a right reason to celebrate.

To express our gratitude to all who have helped us reach here.

“You didn’t build that” – it is not so controversial statement for us as a company. Without our family, friends, staff, clients, partners, mentors, and well-wishers, we wouldn’t be here.

So we were done with the “Why?” part. Now comes the “How?”.

Well, for me the one word to define the entire event was “Elegance”

Because guests will judge our company, our products, our solutions, and our people by the way we organise this event.

If we do it shoddily, it does more harm than good.

Elegant does not mean formal but something which is done with “taste”.

It means more care, more preparation, and more time.

It has to be thought through down to the last detail.

So how did we do it?

First, the venue. After doing some research we finalised “Courtyard Marriott” as the venue, one of the most elegant hotels in our city.

We hired a professional video production team to shoot a video showcasing our transformation as a company. It also included our thank you message to all.

We decided to come up with some interactive installations in line with our goal of the event i.e. to express gratitude. Secondary purpose was to “WOW” our guests. They should remember something about the event for a long time.

We personally gave reminder calls a day before the event.

We received guests at the entrance and directed them to the main hall after expressing our gratitude.

Timeline walls allowed guests to write their own memories with Digicorp for e.g. when they first interacted with Digicorp etc.

We premiered the video at 8PM and hosted dinner after that.

And yes, one of the most important thing at the end. We planned to gave away 100 REWORK – the book which has changed the way we run Digicorp.

“Walls of Wishes” were setup for guests to write their wishes / feedback.

Well, it was not perfect. We faced major issues with the book vendor (for procuring 100 REWORK), one of the interactive installations crashed mid-way, we couldn’t meet all guests etc. but overall we consider this event a success. Not because more than 400 people turned up and everybody enjoyed the dinner but because we could express our gratitude to everyone the way we wanted to.

June 21, 2013

Due to the nature of my business, I come across various situations where I have to justify one technology platform over the other because client insists on one over the other. Mostly their reasons are not sound but I don’t blame them as software is not their primary business.

Few months back I was asked to prove that ASP.NET is better than PHP for a custom project. I put together few things gave pointers to client. I am happy with what I gave and thus sharing with you all here.

So here is how it goes:

There are multiple points to be considered in this scenario.

1. First of all there is nothing better or worse. Only better or worse for a specific task.

We need to understand that the existing ERP is developed using Microsoft technologies. Some of them pretty old.

Backward compatibility of ASP.NET with these technologies is much better than PHP without any doubt.

2. Although both the platforms can work well with all databases, preferred database for ASP.NET is SQL Server and for PHP it is MySql.

3. If somebody is giving an example of Facebook (which most people do in justifying PHP over anything else), they need to understand that:

Facebook uses a re-written PHP and a transformer+compiler called HipHop which transforms PHP code to highly optimized C++ code and then compiles with gcc.

We are talking here about the PHP we get for application developers from PHP.NET (as it is).

So example of Facebook is not at all relevant in our scenario.

4. They aren’t even the same thing. PHP is a dynamic scripting language. ASP.NET is a framework.

That said, PHP is very good at creating web pages with limited functionality. Basic static pages with some small dynamic content. Once you get beyond that, then you start looking for code “pieces” to use. A grid. A menu. Simplified database access libraries. Template Engines. Data caching libraries. Content caching libraries.

When you are done, you’ve basically hacked together your own custom PHP framework.

ASP.NET has all that in place, and quite honestly much much more. The larger the project, the better ASP.NET does. It’s got more overhead in terms of learning and coding, but as the project complexity increases, ASP.NET code complexity is fairly linear. PHP code becomes exponentially more complex and time consuming.