When it comes to developing software, I have seen my share of weirdness. I have also seen my share of weird software. If there is one thing that I believe in right now is that the user experience is the only thing that matters.
You could go through a lot of pain and misery but if the product does not come out right, it all goes to the dogs. Users a pretty unforgiving and unforgetting about how they feel about software. The more famous you get the more the importance one must associate with how things are presented.
Here are a few things I have learned.
1) When building software, users will curse you if the application crashes. Users will actively haunt you if they lose their work because of your application
2) When making persistent changes, make sure that there is a way to recover from issues if they are found
3) Launch new features with the option of turning them off as and when required. That way down time will be reduced
4) Ask yourself if Agile is really what you need. Don’t go by the hip words and jargon
5) Use the fast good and cheap principle when you can’t decide on deadlines
6) Have a process in place and then audit the process. Not all processes are good or necessary. Process overhead is a significant issue
7) Reduce and eliminate communication where it is not required
8) Define a product owner for every feature. He/she is the person who will have the vision for the product/feature
9) QA is not an after thought
10) Consider using existing libraries. Yes I would suggest using STL. If you notice that STL is slow/bulky prove it by profiling
11) Do not go by your gut when fixing performance issues. Use a profiler. Narrow it down and only then start fixing, if at all, bottlenecks
12) A single line of “That sounds simple to implement” doesn’t mean it is simple to implement. Never allow product owners to dictate the estimates. Product managers exist for a reason
13) … more to come 😀
Remember my fellow software wizards, if you give the users a good user experience they will remember you. If you give them a terrible user experience they will not forget you.