Difference between a software developer and a good software developer

What is the difference between a software developer and a good software developer?

A good developer:
  1. develops software keeping target audience in mind
  2. does not get attracted to include unnecessary features which clients may not need now
  3. releases often and puts it before client
  4. communicates clearly with clients and more often
  5. does not bother clients for small decisions, makes decisions for them (fewer configuration options thus less code, less maintenance)
  6. is a better copywriter (useful help text on forms, careful selection of words for labels, no spelling mistakes)
  7. puts usefulness before technical superiority of the software
  8. is probably a lazier person and thus gets innovative to finish work quickly
  9. takes care of its users when things go wrong
  10. has a better sense of design (UI)
Above is not an exhaustive list and it is in no particular order. 

All credit goes to 37Signals team for enabling me to think clear and put me on the path of learning once again.

Comments [1]

Less is More. Say NO to Bloated Software.

As a Customized Software Development company, we have to build software as per client's requirements. It is as simple as that. 

Due to popularity of Facebook, Twitter and all such Social Networking sites, many of my clients want features like them in their website or application. Now I am a big fan of social networking stuff as you might know but I am not a big fan of having these features unnecessarily.

For that matter no software should have features which are not "really really really important" (at least in first version)

Software is becoming too complicated now a days and I am not sure how long people will be able to tolerate such complicated software.

Clients keep asking to add features to their software to please their clients or users and its a vicious cycle. Because of that their software becomes too big, too complicated and too bloated to handle and maintain.

And Software companies like us keep profiting from such feature requests, helps client make their software bloated and then profit from maintaining that!

I am not a big fan of such practices and I am not sure how long will they last.

I am in love with philosophy of a company called 37signals.com.

"Less is More"

If you would like to build a successful software you should start with very little functionality.

Just build the core functionality of your software and put it before your audience. That's it. Have them use it first.

Do not focus on anything else which is not core. They are not important right now.

Doing less has its own advantages. 
  • Less is flexible. 
  • Less is easy to understand. 
  • Less is less complicated. 
If you are planning to build a software, I suggest you to list down all the features you want and ask this question to yourself for each feature.

Do you really really need this? Are your users not going to use your software if you do not have this?

This question will help you filter out most of the unwanted features and you will make it a slick, to the point system. That is a path to success in software world.

I have borrowed all these knowledge from a books called "Getting Real" and "Rework" by 37Signals.com founders. Highly recommended for anyone who is related to Software and Entrepreneurship respectively.

Comments [7]

Photos of World's Cheapest Car "Tata Nano" Factory in my city Ahmedabad

TATA NANO 
 

 
Tata Nanos
being built at Tata Motors' plant for the Tata Nano at Sanand, Gujarat,
 inaugurated on June 2, 2010

 

 
Tata Nanos
being built at Tata Motors' plant for the Tata Nano at Sanand, Gujarat,
inaugurated on June 2, 2010

 

 
The Assembly
Line at Tata Motors' plant  for the Tata Nano at Sanand, Gujarat,
 inaugurated on June 2, 2010

                         
Click here to download:
Photos_of_Worlds_Cheapest_Car_.zip (1242 KB)

             
Click here to download:
0Photos_of_Worlds_Cheapest_Car_.zip (504 KB)

                 
Click here to download:
1Photos_of_Worlds_Cheapest_Car_.zip (879 KB)

Comments [0]

Slow Down!

(I am not aware about the source of this article so don't know whom to give credit but a nice one, I got it from my bank relationship manager!)

"It's been 18 years since I joined Volvo, a Swedish company. Working for them has proven to be an interesting experience. Any project here takes 2 years to be finalized, even if the idea is simple and brilliant. It's a rule."

Globalized processes have caused in us (all over the world) a general sense of searching for immediate results. Therefore, we have come to posses a need to see immediate results. This contrasts greatly with the slow movements of the Swedish. They, on the other hand, debate, debate, debate, hold x quantity of meetings and work with a slowdown scheme. At the end, this always yields better results.

1. Sweden has 2 million inhabitants..

2. Stockholm has 500,000 people.

3. Volvo, Escania, Ericsson, Electrolux, are some of its renowned companies. Volvo even supplies NASA.

The first time I was in Sweden , one of my colleagues picked me up at the hotel every morning. It was September, bit cold and snowy. We would arrive early at the company and he would park far away from the entrance (2000 employees drive their car to work).

The first day, I didn't say anything, neither the second or third days. One morning I asked him, "Do you have a fixed parking space?

I've noticed we park far from the entrance even when there are no other cars in the lot."

To which he replied, "Since we're here early we'll have time to walk, don't you think that whoever gets in late will need a place closer to the door?" Imagine my face.

Nowadays, there's a movement in Europe named Slow Food. This movement establishes that people should eat and drink slowly, with enough time to taste their food, spend time with the family, friends, without rushing. Slow Food is against its counterpart, Fast Food and what it stands for as a lifestyle. Slow Food is the basis

for a bigger movement called Slow Europe, as mentioned by Business Week.

Basically, the movement questions the sense of "hurry" and "craziness" generated by globalization, fuelled by the desire of "having in quantity" (life status) versus "having with quality", "life quality" or the "quality of being".

French people, even though they work 35 hours per week, are more productive than Americans or British. Germans have established 28.8 hour workweeks and have seen their productivity driven up by 20%..

This slow attitude has come to the notice of USA , the pupils of the fast and "do it now" brigade.

This no-rush attitude doesn't represent doing less or having a lower productivity. It means working and doing things with greater quality, productivity, perfection, with attention to detail and less stress. It means re-establishing family values, friends, free and leisure time. Taking the "now", present and concrete, versus the "global", undefined and anonymous. It means taking humans' essential values, the simplicity of living.

It stands for a less coercive work environment, more happy, lighter and more productive work place where humans enjoy doing what they know best how to do.

It's time to stop and think on how companies need to develop serious quality with no-rush that will increase productivity and the quality of products and services, without losing the essence.

In the movie, 'Scent of a Woman', there's a scene where Al Pacino asks a girl to dance and she replies, "I can't, my boyfriend will be here any minute now". To which Al Pacino responds, "A life is lived in an instant". Then they dance the tango!  

Many of us live our lives running behind time, but we only reach it when we die of a heart attack or in a car accident rushing to be on time. Others are so anxious to live for the future that they forget to live the present, which is the only time that truly exists.

We all have equal time throughout the world. No one has more or less. The difference lies in how each one of us does with our time. We need to live each moment. As John Lennon said, "Life is what happens to you while you're busy making other plans".

Congratulations for reading this email till the end of this message. There are many who will have stopped in the middle so as not to waste time in this "Globalized" world...

Comments [10]

Single biggest advantage you may have over your competition

Most important lesson for all the Entrepreneurs:

Always be available for your customers. 
 
As an entrepreneur tough time will always be there for you. Customers will be yelling at you and they will lose confidence in you or your team at some point. This is all part and parcel of the game. But one thing which will keep you adorable always is "If you remain available always!"
 
Yes when your customer screams and complains, be there, be available.
 
On email, on phone, always 24x7
 
This will be the single biggest advantage you may have over your competition.
 
Listen to what they have to say and try your best to resolve the issue. Even if it is not done respond in time. 
 
Lesson learned personally from a very dear client of mine who is not happy with my team recently but she said 
"You are still the most preferred vendor for me because you always pick up my call"
 
Now that's good for me, isn't it?

Comments [3]

Developers: Start Building Your Reputation Now Before It's Too Late

A question to all the developers who may read this post

How many of you know stackoverflow.com

If you do not know it yet, it is a real shame because it is the best Q&A site out there in the market where you can get quick answers to your technical questions. Experts and some great developers are sitting there round the clock answering all the questions they can answer.

You know why they are doing it? 

To build their reputation. 

As a developer nothing is more important for you other than your reputation. Every answer you give here, based on the ratings from other people of your answer you build your reputation.

This is the new CV for developers. You just give your profile on stackoverflow.com as your resume and it will speak for you. Forget those long CV.doc which no one real reads in any case.

For e.g. this is my reputation

Now I am not a hardcore developer so for me it is ok to have a very low reputation as above but for you (developers) it is not.   

Following is the kind of reputation you should aim for yourself in couple of years.

I know money is important and all but surely time will come in your life when it is not, reputation will be more important at that time and more money will not come without that.

So don't just chase money earlier in your career (especially fresh developers in India), be in the race for building reputation as well, because in few years that will be the only thing which will count. Mark my word for that.

Comments [5]

Bing iPhone Application Bug

If you are using Bing iPhone Application for searching good things on the internet :) (because of its lenient nature) then beware, clearing the search history from settings might not be good enough. Somebody can still catch you and see all your old search history. 

Here is how it happens after you are done with searching:

1) You clear the search history from settings.
2) You get the confirmation. (You think you are done here, right? nobody can catch you now, but no wait)
3) Click on "<" arrow at the bottom and there it is. Your old search results are there :) (not one but all of it, keep clicking on back button)

Check out above 3 steps in below screen shots.

     
Click here to download:
Bing_iPhone_Application_Bug.zip (99 KB)

Comments [0]

How to become a world class Computer Engineer

Reasons for writing this post:
  1. I feel I have not done enough to become a good computer engineer. May be I did not have someone who could guide me properly. We were only the second batch of Computer Engineering at Nirma Institute of Technology, Ahmedabad, so we had no mentors in the industry.
  2. Second reason, may be we were not mature enough. 
  3. Third reason, 3 Idiots was not released at that time :)
  4. So this post is dedicated to all the fellow computer engineering students (especially in India) who are still having a good time by bunking the classes but not doing good enough to become a world class computer engineer otherwise.
But what can I do?

1) Have the right infrastructure
  1. Get yourself a decent laptop. (I prefere Mac but any decent Dell laptop is also ok)
  2. Get yourself a nice internet connection with highest speed available. (Take a cut from your pocket money if you have to but this is a must)
  3. Get yourself an iPhone (I know it is expensive in India but you will have to use world class gadgets to become world class engineer)
  4. Make your home or hostel room WiFi enabled. (This is not expensive. You will get a decent router in 2-3k.)
  5. If you are not able to do any or all of the above things, don't worry you can still become a good computer engineer. So hang on and keep reading.
2) Learn to use Google Reader
  1. Google reader will become the best companion of yours for lifetime if you use it properly.
  2. It is nothing but a cool RSS reader from Google using which you can subscribe to blogs to get latest updates and posts. So if you have a gmail account you are ready to go. What? You do not have a gmail account yet!! Go get one right now. Stop reading. Open a gmail account now and come back. I am waiting. 
  3. I am still waiting. 
  4. Ok great, so you have a gmail account now, good. Watch this video . It explains in plain english how to use google reader.
  5. As a side project: Watch videos related to RSS, World Wide Web, Twitter, Social Media, Computer Hardware, Computer Software, Web Search Strategies, Wikis, Social Bookmarking, Social Networking, Blogs, Podcasting and Cloud computing on http://www.commoncraft.com/ (Now you understand why I told you get the fastest internet connection available?). You don't have to see them all at once but do check them all and understand.
  6. Done? Ok so you are ready to become a world class computer engineer now. 
  7. Now you understand Google Reader, so it's time to subscribe to interesting blogs. Subscribe to following blogs.
    1. Techcrunch.com (King of Technology Blogs)
    2. Gigaom.com (Michale Arrington of Techcrunch considers Om as his Guru)
    3. ReadWriteWeb.com 
    4. Pluggd.in (Indian Techcrunch)
    5. JoelOnSoftware.com (a must read for programmers)
    6. CodingHorror.com (another must read for programmers)
  8. There are many such blogs but to start with these are ok. You will keep finding other interesting blogs as and when you will come across some.
  9. Getting used to read on computer takes time and patience so just keep reading it.
  10. So I guess we are done with Google Reader part here. This means you have to open up Google Reader as soon you bunk the classes or as soon as you get the time to check your mails.
3) Academic Earth
  1. Do you want to see how professors teach in Harvard and Stanford? Do you want to see how their lectures are conducted? You can now, we were not able to do that in our time. 
  2. Go to www.academicearth.org and you will see videos of actual lectures and courses of Harvard, Yale, Stanford. Now you know whose lectures to watch after bunking the classes or after getting back to home.
  3. You do not want to miss the chance of studying in these universities without going to US to giving them millions in fees right? and guess what? Attendance is not compulsory here :)
4) Learn any web language quickly and start building.
  1. I would suggest PHP or Ruby. ASP.NET C# is also fine if you already know something about it. 
  2. And start building something on it. It can be anything. But start programming on web now. Most of you are never going to write a program C, C++ or COBOL in your lifetime. I would not advise against learning them though.
  3. After you know something about web programming, read "Getting Real" from 37Signals
  4. Now again build something using whatever you learned from the above book.
5) Assume you are in Sillicon Valley 
  1. I know this sounds little weird but that's the way it is.
  2. The best of the minds in the world are there and you do not want to miss out on that right?
  3. Thousands of things happen everyday in Sillicon Valley and you can remain updated by reading above blogs I mentioned.
  4. So start feeling the air :) 
6) Start asking why?
  1. When you are attending a lecture or reading anything, have a habit of asking why?
  2. For e.g. Why we have to study "Strength of Materials" when most of us are going to write web applications in PHP or ASP.NET?
  3. When you ask why often, you start understanding the logic, the reason behind doing anything.
  4. Same as they have said in 3 Idiots, don't learn to get marks but learn to know something, to achieve the excellence. When you start asking why, you start on the right path.
7) Understand computer hardware
  1. Most people thinks this is boring and unnecessary.
  2. May be it is, but it will certainly make you better programmer, even if you will never touch the inside of the computer again. 
  3. Basic understanding of hardware is necessary to understand how computer works. 
  4. You have to understand following 100% without any doubt in your mind. 
    1. How your high level programming code becomes 0s and 1s and execute?
    2. The text which you are reading now is also consisting of 0s and 1s only then how come you are reading the alphabets here? 
    3. FYI I am still not 100% clear on this. But I will be one day. Till then I am not a good computer engineer.
I guess I have get you started here. 

By following any or all of the above steps you are destined to become world class computer engineer. By no means I am asking you to stop whatever you are doing right now in your college.

These are additional things you have to do. It takes hard work to become world class right?

You are always on your own to achieve the path of excellence. Friends and Tutors can only guide you, they can not make you one. 

I would request my fellow classmates to add points in this post. I believe our batch 99CE in Nirma Institue of Technology had one of the best and brightest minds in the world. Do you have any doubt? Well this guy is one of them. 99CE people are in MIT, Google, Apple, Barclays, Bank of America to name a few. They are spread across the world and are on their way to become future leaders. 

I would also request people who have read this post and feel they can add something here to help students of computer engineering. My aim is to have great people coming out of Indian Engineering Colleges. 

Last words, by no means above list is exhaustive and complete. There are "n" number of ways to achieve excellence. These are my personal views and I have learned them long and hard way. I hope to make your journey little easier by this post.

Comments are whole heartedly welcome.

Update: To become world class you will have to learn language of the world "English". Here is how you can do that.

Comments [40]

First, organize 1,000

Interesting!!

via Seth's Blog by Seth Godin on 12/23/09

Kevin Kelly really changed our thinking with his post about 1,000 true fans.

But what if you're not an artist or a musician? Is there a business case for this?

I think the ability to find and organize 1,000 people is a breakthrough opportunity. One thousand people coordinating their actions is enough to change your world (and make a living.)

1,000 people each spending $1,000 on a special interest cruise equals a million dollars.

1,000 people willing to spend $250 to attend a day-long seminar gives you the leverage to invite just about anyone you can imagine to fly in and speak.

1,000 people voting as a bloc can change local politics forever.

1,000 people willing to try a new restaurant you find for them gives you the ability to make an entrepreneur successful and change the landscape of your town.

Even better, coordinating the learning and connections of this tribe of 1,000 is not just profitable, it's rewarding. If you can take them where they want to go, you become indispensable (and respected).

What's difficult? What's difficult is changing your attitude. Instead of speed dating your way to interruption, instead of yelling at strangers all day trying to make a living, coordinating a tribe of 1,000 requires patience, consistency and a focus on long-term relationships and life time value. You don't find customers for your products. You find products for your customers.

Comments [0]

Double the Revenue without Doubling the Headcount

Few months ago we decided that we want to double the revenue without doubling the headcount.

Today one fellow entrepreneur asked me on twitter whether our strategy is working or not.

Well I don't have the figures to prove that but it seems to be working right now. He was not interested in figures and just wanted to know how we are going about it.

So it prompted me to write this article. I am sharing some tips which I think are the core of our new strategy.

1) Start saying "No"
As a young IT service company it is very difficult to say "No" to new opportunities. You need more and more projects to keep rolling. Till a certain period it is ok to follow this strategy. More projects generate more references and more references generate more business.

But if you want to climb up the value chain, at some point of time you will have to say "No" to smaller opportunities. For e.g. Projects amounting less than US$ 500

You may have different definition of smaller projects for your company. But once you have that in place start saying "No" to projects which fall in that category.

2) Work only with your ideal clients

Make two lists of clients
1) For whom you love to work for
2) For whom you hate to work for

Stop working for clients in the second list as soon as possible. They are not your ideal clients and you are not their ideal vendor. You both are not doing justice to each other.

By doing this you will have more time and energy to work with your ideal clients. You will be able to please them more with your dedication and quality of work and you will generate more business. It means more satisfaction and more money.

Find out characteristics of your ideal clients and keep them in mind while adding a new client in your portfolio.

3) Stop working on loss making projects
This happens most of the times in fixed cost projects. It is very easy to underestimate the requirements and quote less to clients to get the projects. Generally when you realize this mistake you have lost lot of money and energy on that project.

Identify such projects today and stop working on them. Convince your clients that you can not work on this anymore as you are not doing justice to the project.

99% of time client will be happy with your decision. Why? Because in any case he/she is not happy with the way things are going. Client will be better off without that project.

4) Work with the best people
Above conditions are also true for the people you have in your team. One only likes to work with people who gel well with each other.

If your employees are not happy with the work and with each other, productivity is going to take a nose dive.

Get rid of difficult people to work with and reward the best talent you have.

5) Have a simple strategy and make everyone aware of that
Most companies have complicated strategies which nobody remembers, not even the management.

Having a simple strategy makes everyone's life easier. You can have policies and processes based on the simple strategy. When somebody is in doubt to let the decision be based on the strategy.


For e.g. One of the most successful airline company Southwest Airlines calls itself  a "Low Cost Airlines". That's it. "Low Cost Airlines". So now when somebody is in doubt whether to add one more Olive to the meal to make customers happy, he/she has to see whether it goes with the strategy of "Low Cost Airlines"!

So these are the few simple steps which we have taken to increase the efficiency and thus the revenue without increasing the headcount.

We are still learning and by no means is this list exhaustive or a sure shot way to achieve efficiency. It is a race to perfection which never ends.

If you are an entrepreneur please share your thoughts on this topic.

All of our strategies have come from recent books I have read or reading. One is "Made to Stick" by Dan and Chip Heath and other is "Book Yourself Solid" by Michale Port. Excellent books, must read for any entrepreneur or communicator.


Comments [6]