TurboTax Design FAIL « Scott Berkun
I was thinking about exactly Turbo Tax example today evening and saw this post. Déjà Vu. We get software requirement for complex order processing applications saying "build me an app which is as easy as Turbo Tax". That application, built as easy as Turbo Tax, to do the processing in sequential steps with hints/questions and directions might work for simplest cases, but when it starts deviating from the normal happy path is when things will start getting complex. Slowly such an easy application will start getting complicated with multiple enhancements to handle more and more complex functions to the point it will start deteriorating. After a while it will go downhill when the original users who used it for the happy path will find it unbearably complex.
The trick is to remember why it was built in the first place and keep that balance through the numerous enhancement cycles. The face should still be recognizable through numerous nose jobs.
We used Turbo Tax this time around, had a tough time transferring tax credits from a previous year into this year, and had to spend hours on a simple tax return. In Turbo Tax's defense, other sites could not even handle that scenario.
Tuesday, March 09, 2010
Sunday, July 05, 2009
reading list
My bathroom reading has picked up speed these days (or means longer bathroom breaks) and I am finishing more books. Most of the books completed recently were some that I was postponing for maybe years because I thought it was self-help or bit cheesy, but the nice thing is I liked most of them.
1. Good to great : why some companies make the leap, and others don't / Jim Collins
This was topping many of the reading lists and recommendations, but had postponed. But it was interesting read. I could use some of these advice when I start my company.
2. Tuesdays with Morrie : an old man, a young man, and life's greatest lesson / Mitch Albom
Again one of those I keep seeing in top selling racks in supermarkets. But it was a good read. I only wished if I had a mentor whom I could be so close to talk so freely. This lead to whole series of day dreaming about playing mentor roles to young kids, which could be life changing for some not so blessed with educated parents or expensive schools.
3. The alchemist / Paulo Coelho
It is one of those books I was prejudiced against due to no specific reason. But I enjoyed reading this. I wish I knew exactly what I wanted and had the courage to follow that till the end.
4. Getting things done : the art of stress-free productivity / David Allen
I went through the latter parts of the book in minutes, but first part was interesting. I have an inbox with zero mails and trying to follow do / defer / delegate / delete for one week now.
5. Execution : the discipline of getting things done / Larry Bossidy and Ram Charan
More of getting things done - good read, bit more painstaking to finish though. One thing I noted was to never finish a meeting without clarifying the actions, seeing through to the end of something and staying committed.
6. Brave New World / Aldous Huxley
Another one that kept appearing in recommendations. Didn't like it much though, thought it was kind of dated.
7. A Tree Grows In Brooklyn / Betty Smith
This is one I felt could have been edited better. I felt the childhood was covered in authentic detail and was nostalgic, but remaining story seemed a bit hurried or disconnected somehow. I would still recommend it though, especially to those who loved to finish one book a day as a kid and getting lost in some strange world.
8. Watchmen / Alan Moore
My introduction to graphic novels. It is a great book and one I would have finished in one sitting if it was 10 years back when life was much less complicated. Need to find more of graphic novels.
1. Good to great : why some companies make the leap, and others don't / Jim Collins
This was topping many of the reading lists and recommendations, but had postponed. But it was interesting read. I could use some of these advice when I start my company.
2. Tuesdays with Morrie : an old man, a young man, and life's greatest lesson / Mitch Albom
Again one of those I keep seeing in top selling racks in supermarkets. But it was a good read. I only wished if I had a mentor whom I could be so close to talk so freely. This lead to whole series of day dreaming about playing mentor roles to young kids, which could be life changing for some not so blessed with educated parents or expensive schools.
3. The alchemist / Paulo Coelho
It is one of those books I was prejudiced against due to no specific reason. But I enjoyed reading this. I wish I knew exactly what I wanted and had the courage to follow that till the end.
4. Getting things done : the art of stress-free productivity / David Allen
I went through the latter parts of the book in minutes, but first part was interesting. I have an inbox with zero mails and trying to follow do / defer / delegate / delete for one week now.
5. Execution : the discipline of getting things done / Larry Bossidy and Ram Charan
More of getting things done - good read, bit more painstaking to finish though. One thing I noted was to never finish a meeting without clarifying the actions, seeing through to the end of something and staying committed.
6. Brave New World / Aldous Huxley
Another one that kept appearing in recommendations. Didn't like it much though, thought it was kind of dated.
7. A Tree Grows In Brooklyn / Betty Smith
This is one I felt could have been edited better. I felt the childhood was covered in authentic detail and was nostalgic, but remaining story seemed a bit hurried or disconnected somehow. I would still recommend it though, especially to those who loved to finish one book a day as a kid and getting lost in some strange world.
8. Watchmen / Alan Moore
My introduction to graphic novels. It is a great book and one I would have finished in one sitting if it was 10 years back when life was much less complicated. Need to find more of graphic novels.
Monday, June 22, 2009
procrastination
It is 6 months since the "back again" post; I think about writing something very often but usually don't get around doing that. I must have covered the topic multiple times in this blog itself. It is a strange variety of problem though: - if I keep something pending for doing later, I may never do it even if it keeps paining me consistently. It is not that I forget it also; it is on my mind very often. One classic example is my Chemistry lab report during college. I missed submitting it in the first two sessions or so, then didn't feel like doing it next two times, soon it was 2-3 months and I was getting in trouble. Then one day I made up a story that we moved house and lost my lab report in the move - it was somebody else's story. I don't remember whether I convinced my professor, but somehow he allowed me to submit a new one which I painstakingly made with hours of hard labor. Anyway, there are many stories of this sort where it even meant sour relationships where I failed to call for a longest period which was just postponing the call, nothing to do with my not wanting to call or anything else. If only they knew my chronic problem, they would understand when I say I thought about calling often which would be the truth.
What must have pushed me through all these times is that I somehow get things done in the last possible minute; when I really start something, it usually works out well even if it is late and finally god must have also compensated by pairing me with a better half who is my exact opposite in this matter.
Anyway, this post is another promise to myself to return to this more often.
What must have pushed me through all these times is that I somehow get things done in the last possible minute; when I really start something, it usually works out well even if it is late and finally god must have also compensated by pairing me with a better half who is my exact opposite in this matter.
Anyway, this post is another promise to myself to return to this more often.
Monday, January 26, 2009
back again..
It has been more than 2 years since I stopped blogging. My usual update to all the friends is, "everything is just the same", but not this time. Life has completely changed. I am a father now - it feels very strange saying that because in a way I still think I am 20 and still in college. My baby girl is going to be two years old in two months or so and it has been a wonderful two years.
I never imagined it will be this much fun and I will adore her so much. I am one of the youngest in my family and haven't been around babies. So I don't have a clue how to handle them and how to play with them. I think there are two kinds of people - those who are absolutely fantastic with kids (and I envy them, it is a great gift) and those who don't seem to know the right things to say or do around kids (looks aloof, but that is not the case, I know now). My wife is one of them in the first category and I am in the second. But to my surprise, I learned quickly on the job with my girl, I wasn't afraid to hold her when she was too small and playing with her is really the highlight of my day. It is an absolute joy and unimaginable fun - I already said that, but it is true.
Everything revolves around her these days. Every small thing she does is ultimately cute and now the baby log must read like an obscure Guinness world records like the first time she fake coughed to first time she walked to first time she climbed on a chair to the first sentence and first song (it might be a song only for us though, but it is the sweetest) and on and on.
With such major events every day and my usual busy work also which hasn't changed much in years, I don't seem to realize time going by. So one of the new year's resolutions is to revive this blog. I hope to keep this up and not succumb once again to my chronic procrastination.
I never imagined it will be this much fun and I will adore her so much. I am one of the youngest in my family and haven't been around babies. So I don't have a clue how to handle them and how to play with them. I think there are two kinds of people - those who are absolutely fantastic with kids (and I envy them, it is a great gift) and those who don't seem to know the right things to say or do around kids (looks aloof, but that is not the case, I know now). My wife is one of them in the first category and I am in the second. But to my surprise, I learned quickly on the job with my girl, I wasn't afraid to hold her when she was too small and playing with her is really the highlight of my day. It is an absolute joy and unimaginable fun - I already said that, but it is true.
Everything revolves around her these days. Every small thing she does is ultimately cute and now the baby log must read like an obscure Guinness world records like the first time she fake coughed to first time she walked to first time she climbed on a chair to the first sentence and first song (it might be a song only for us though, but it is the sweetest) and on and on.
With such major events every day and my usual busy work also which hasn't changed much in years, I don't seem to realize time going by. So one of the new year's resolutions is to revive this blog. I hope to keep this up and not succumb once again to my chronic procrastination.
Tuesday, November 13, 2007
Customer Service
Five years back, I would have been okay with standing in long queues, going up to the counter where the store clerk would ignore you, take your money and give you what you wanted as if he is doing me a big favor and would never have expected a smile, sorry or thank you. But I have experienced customer service since then and understood the importance of it in my profession too. Following are some things that I have learned:-
1. Attitude 75%, aptitude 25%
o Attitude towards work and attitude towards customer is almost the same thing – your customer is your work or vice versa. I have seen bit of both types of people – brilliant technically, but customer not happy at the end of the day or very good communication skills and can establish rapport quickly, but shallow when it comes to knowledge and hence not successful in execution. Both attitude and aptitude are natural things, but could improve by practice too.
2. Customer is never wrong
o I have seen people arguing with the customer on why he is wrong or why something is impossible to achieve. Your job should be to tell the customer what is possible within the timeframe and cost and why. Instead of discarding something as impossible, it should be broken up and explained as to why it is not possible, which part maybe possible (the complete thing maybe impossible, but parts of it maybe possible). We need to understand the fundamental objective and find ways to achieve that.
o Also, it depends on how you tell it. Even if customer is wrong, for all involved the best outcome is customer coming to the right solution through your guidance. We tend to lose focus on the simple thing that we win only when customer wins because of our ego.
3. Listen first, be responsive, be attentive, be available
o One example from my experience:- It was comparison between product from a major corporation which is already doing business with us in some other space and another new one which was eager to sell. First proposal from the major player was anchored by just one person who came to the requirements review meeting with printed documents which was sent earlier without even reading it once. He kept saying that everything we asked for is included, but didn’t have enough detail on how those could be accomplished, gave vague answers and for specific questions sent via email there was no follow up. Second group had read every document that was sent, had very specific questions which showed that they had read every sentence and had a clear idea how to accomplish those and the meeting was very productive. It just showed that they cared. They followed up on every question that was sent to them to the very last detail and even anticipated the concerns behind the questions and provided answers for those. I got to know later that their sales process was tuned such a way that they were instructed to listen to the customer first rather than go into a “sell sell sell” mode.
o Moral of the story is this:- it is not enough that you have a good quality product. You need to listen to the customers, need to be responsive, need to prepare well and show empathy to solve customer’s problem.
o Respond to the customer queries as soon as you can, be sure to return their voice mails and be around when they need you. Ever had the experience to be in front of a store clerk who is attending phone calls always and giving answers to someone else rather than attending to those who took the pain to come to the store? Ever had the experience of served by someone who seem to be interested in TV or talking to their friends or just plain looking bored? As it says “They will forget what you said, but they will never forget how you made them feel”.
o Often I have seen people totally ignoring what the customer is “trying” to say and stubbornly trying to answer something which is not completely satisfying the customer. It is either lack of compassion to listen, afraid to give direct answer to a direct question and instead deflect it by a fuzzy answer or plain lack of comprehension.
o According to an article from Harvard Business Review, Level 5 leadership means a “deep personal humility combined with intense professional will”. I think it is applicable for a good customer service too. There should courtesy, combined with a determination to get customer requirement satisfied in the best possible way.
4. Put customer first
o Given any situation, deciding what is best for customer should be a natural decision benefiting customer first.
o Customer takes priority – always. If that thumb rule is set, daily prioritizations will be easy.
o Better yet, evaluate how the activity you are doing is helping customer, that guides you how best to do it.
5. Take care of customer's problem completely. Give complete solutions.
o I have read somewhere that your most loyal customers are not the ones who had a flawless experience, but the ones who had a problem that was resolved. I have experienced this while working in application support. Customers will appreciate if their burning problems, the ones causing them much pain and manual work, are solved quickly, completely and gracefully.
o Solving customer’s problems shouldn’t be by putting customers through more trouble. I have experienced cases where customer service is not reachable by phone or one line email replies for a full page concern or where you had to ask the same question multiple times worded differently each time.
6. Never burn a customer bridge:-
o Need to add this here even if it is another end of spectrum and no doubt it will come up in daily life. There may come a time when you have to be strict to the customer or say no or defend your position or your employees or your product. There may be times when you have to let go of the customer, but as it says "Never burn a customer bridge, unless you have to. If you have to, you are more screwed up than you realize". At times it may be simpler to admit the fault and fix the problem. At any rate, don’t ignore the problem, address it completely and give the solution that will keep the customer satisfied.
7. Deliver consistent quality. Deliver on promises. Trust comes from doing this.
o I have read somewhere that long term relationship takes longest time to build. It takes consistent quality deliveries, consistent delivery on promises to build the trust. You could reach a level where there is complete trust from the customer for your word if you say you will deliver something. One another quote:- “If they like you and they believe you and they trust you and they have confidence in you, then they may buy from you.”.
8. Be credible. Be knowledgeable. Be accurate and correct. Know what you’re talking about. Prepare.
o It is very easy to know when someone is talking about something which he doesn’t know exactly. Homework is the key. Prepare before any meeting with customer, be ready with the data customer might want, if you don’t know the answer find out and get back promptly, ask yourself the questions customer might ask and find out the answer before you go to him. Do not answer if you don’t know, the credibility once lost is not easy to regain.
9. Take the extra step, go from implementer to trusted advisor
o Be helpful to the customer even if there is no immediate profit in it. I would remember the occasion when the sales associate walked me to the aisle, pointed to the product and inquired whether that is what I wanted rather than giving me a vague direction and at the same time want to run away from me.
o Better yet, anticipate customer problems and suggest to solving them. This is what takes the relationship from transactional to strategic. All the above ensure that you have customers business and in all likelihood will come to you tomorrow. But when you anticipate customers problems, that means that you have on your time been thinking about what customers wants without a stated need. That enables customers to trust you when they know that you have their concern at the top of your mind and heart and that trust makes you privy to information that nobody else has, which is what makes the relationship strategic.
o Understand the tactical gain and the strategic gain – Assess if the forsaking tactical gain will lead to significant strategic gain.
10. Understand customers personal goals, help them achieve it –
o Beyond the stated needs, understand what are customer’s goals? What is customer's ambition? And align your objectives and goals to achieving that. There are “Program/Company Goals”, “Your goals”, “Your Company’s goals” and “Customer as an individual’s goal. All strong, multi year relationships have been built when you achieve all.
Sunday, December 17, 2006
vision and values
I came across this quote which i copied down from somewhere: "A good programmer, in everyday work, is one who can communicate well with users, managers, and other developers, who can write clean, maintainable code, and who can choose the best tools, architecture, and techniques in putting together a solution.".
It may be good to have such brief definitions for roles within an organization - often people get confused or lost in the daily rush about competencies required for the role they are supposed to perform. Similar to how companies are supposed to have vision and value statements, I think it may be good to have personal vision and value statements which one can tune over a period of time.
It may be good to have such brief definitions for roles within an organization - often people get confused or lost in the daily rush about competencies required for the role they are supposed to perform. Similar to how companies are supposed to have vision and value statements, I think it may be good to have personal vision and value statements which one can tune over a period of time.
Sunday, October 29, 2006
control
I have been thinking about the level of control one should have on team and project without being a control freak. It is said that with a good manager, people will not feel like they are being managed. One idea that stuck to me from the book Peopleware is, you put a person on a job and if you trust him with it, don’t try to second guess and rob him of the chances to make decisions.
There are couple of types of managers – those who came up the ranks and know how to do the job and those who don’t know the nitty-gritty of their team’s day to day job. If you think you know more about how to do something than your team member, how do you control the urge of doing the job yourself instead of teaching them how to do it without actually doing it? If someone else is taking 10 days to do something that would take 1 day for you, can you grit your teeth and let him or her go through with it and learn?
On the other hand, one downside of having a manager who don’t know or don’t have capability to comprehend the details of job is explaining things to him in layman’s terms all the time and answering umpteen questions on progress and status and such.
It is a balancing act to reduce dependency, delegate authority and at the same time make sure the task is delivered.
Following are some things I would like to practice:-
1. Transfer knowledge upfront as much as possible for people to be able to do the job. Equip people with what they need or rather make sure that they are setup for succeeding.
2. Let them take decisions, you may hint or suggest course of action, but avoid making decisions for them.
3. Check progress, but not every hour of the day. Give meaningful feedback, not once in 6 months.
There are couple of types of managers – those who came up the ranks and know how to do the job and those who don’t know the nitty-gritty of their team’s day to day job. If you think you know more about how to do something than your team member, how do you control the urge of doing the job yourself instead of teaching them how to do it without actually doing it? If someone else is taking 10 days to do something that would take 1 day for you, can you grit your teeth and let him or her go through with it and learn?
On the other hand, one downside of having a manager who don’t know or don’t have capability to comprehend the details of job is explaining things to him in layman’s terms all the time and answering umpteen questions on progress and status and such.
It is a balancing act to reduce dependency, delegate authority and at the same time make sure the task is delivered.
Following are some things I would like to practice:-
1. Transfer knowledge upfront as much as possible for people to be able to do the job. Equip people with what they need or rather make sure that they are setup for succeeding.
2. Let them take decisions, you may hint or suggest course of action, but avoid making decisions for them.
3. Check progress, but not every hour of the day. Give meaningful feedback, not once in 6 months.
Thursday, October 12, 2006
JUG
I attended a java user group meeting yesterday. Topic was State of Aspect oriented programming.
20% of audience had used aspect oriented programming in their projects. Compared to the demos given using Ant, JaaS, AspectJ, Sping, Log4j etc, I felt like a barbarian who still use System.out.println(“I am here..”) for debugging and Notepad for coding.
I am convinced that these tools or methodologies increase programmer productivity, code maintainability and durable design. But how many actual customers who pay for IT projects understand or even care about using these? Then again I guess it is not a choice to be made by customers, but by the programmers.
That leads me to next question:- there are so many frameworks, tools and patterns out there. I got involved in one open source project in Sourceforge to get an insight about open source, but had to drop out because of the pace at which people with various strengths (specialists) collaborated. I think the question is beyond which language or which database to use, but whether to use one or other framework should be used for connection pooling, authentication, logging and almost all aspects of programming. It is hard to know what is out there in the first place, so unless you are a specialist how will you choose what to use instead of resorting to old barbarian ways?
On a non-technical note – it is fun to attend such meetings. First objective is to shake out of routine to see what is happening out there in the world. One other interesting thing is to see the community – it was a diverse one in all shapes and sizes. There was one that looked like a cop or a wrestler, another one probably a biker, some students, some grandfathers, many with port bellies (like beer bellies, there is something called programmer bellies), many Chinese and some Indians (I seem to always take a ratio of Chinese/Japanese/Koreans Vs Indians in such gatherings – it is like a performance metric).
20% of audience had used aspect oriented programming in their projects. Compared to the demos given using Ant, JaaS, AspectJ, Sping, Log4j etc, I felt like a barbarian who still use System.out.println(“I am here..”) for debugging and Notepad for coding.
I am convinced that these tools or methodologies increase programmer productivity, code maintainability and durable design. But how many actual customers who pay for IT projects understand or even care about using these? Then again I guess it is not a choice to be made by customers, but by the programmers.
That leads me to next question:- there are so many frameworks, tools and patterns out there. I got involved in one open source project in Sourceforge to get an insight about open source, but had to drop out because of the pace at which people with various strengths (specialists) collaborated. I think the question is beyond which language or which database to use, but whether to use one or other framework should be used for connection pooling, authentication, logging and almost all aspects of programming. It is hard to know what is out there in the first place, so unless you are a specialist how will you choose what to use instead of resorting to old barbarian ways?
On a non-technical note – it is fun to attend such meetings. First objective is to shake out of routine to see what is happening out there in the world. One other interesting thing is to see the community – it was a diverse one in all shapes and sizes. There was one that looked like a cop or a wrestler, another one probably a biker, some students, some grandfathers, many with port bellies (like beer bellies, there is something called programmer bellies), many Chinese and some Indians (I seem to always take a ratio of Chinese/Japanese/Koreans Vs Indians in such gatherings – it is like a performance metric).
Sunday, June 11, 2006
dream teams
I read an article in Fortune magazine about Dream Teams failing to deliver. One of the examples was US all star basketball team failing to beat Canada in Olympics. Basic problem with Dream Team is accommodating the big egos and trying to gel the team. I was thinking about the kind of team that I would like to work with. The people whom I can work with should be easy going and should be able to laugh. Even though the laughter bit sounds like a trivial thing, I have worked with people who are so uptight that I haven’t shared one joke with them throughout the project duration. It is a stifling thing to work with such guys for a long time. Work and Play need not be separate always. A vague memory of a quote I read recently goes something like this – when you cannot distinguish whether you are working or playing, you might be on to something good. Even though money and recognition are important, in my view that comes after fun. The guy working with the only objective of promotion or salary hike may not be most productive one. I may have said this before too, but once again – it is not our eastern philosophy of not expecting anything in return. I think we have to expect something in return, but that thought should enter the mind only after dealing with the task at hand with all we can give. One more comment I read somewhere recently – a question to a talent agent was, what he does do to win future clients, and his answer was - taking care of his existing clients to the best of his ability. That should sum up my thought.
I digressed a bit, but the point I wanted to make is, if the choice is entirely mine, I would work with a people who are easy going, talented (just funny is waste of time) and ethical (I have difficulty working with people who won’t give 100% at least). I sound like a girl saying, “my guy should be funny, trustworthy and rich..”
On a different note, another dream team that failed to impress is Real Madrid. Yet another dream team is going to the world cup as favorites. I feel the Brazil is almost perfect, but need to see if that becomes their nemesis. World Cup has started and I am really excited. I haven’t been able to watch a world cup to my satisfaction so far. I used to play an entire world cup tournament all by myself, in our backyard, through group stages to final when I was in school. Anyway, this is long awaited. I have been following England team for quite some time now and I will be rooting for them – even though I don’t expect them to go all the way. I have couple of favorites there – Rooney and Gerrard – couple of real brave hearts rather than just a fat purse or big ego.
June is going to be busy.
I read an article in Fortune magazine about Dream Teams failing to deliver. One of the examples was US all star basketball team failing to beat Canada in Olympics. Basic problem with Dream Team is accommodating the big egos and trying to gel the team. I was thinking about the kind of team that I would like to work with. The people whom I can work with should be easy going and should be able to laugh. Even though the laughter bit sounds like a trivial thing, I have worked with people who are so uptight that I haven’t shared one joke with them throughout the project duration. It is a stifling thing to work with such guys for a long time. Work and Play need not be separate always. A vague memory of a quote I read recently goes something like this – when you cannot distinguish whether you are working or playing, you might be on to something good. Even though money and recognition are important, in my view that comes after fun. The guy working with the only objective of promotion or salary hike may not be most productive one. I may have said this before too, but once again – it is not our eastern philosophy of not expecting anything in return. I think we have to expect something in return, but that thought should enter the mind only after dealing with the task at hand with all we can give. One more comment I read somewhere recently – a question to a talent agent was, what he does do to win future clients, and his answer was - taking care of his existing clients to the best of his ability. That should sum up my thought.
I digressed a bit, but the point I wanted to make is, if the choice is entirely mine, I would work with a people who are easy going, talented (just funny is waste of time) and ethical (I have difficulty working with people who won’t give 100% at least). I sound like a girl saying, “my guy should be funny, trustworthy and rich..”
On a different note, another dream team that failed to impress is Real Madrid. Yet another dream team is going to the world cup as favorites. I feel the Brazil is almost perfect, but need to see if that becomes their nemesis. World Cup has started and I am really excited. I haven’t been able to watch a world cup to my satisfaction so far. I used to play an entire world cup tournament all by myself, in our backyard, through group stages to final when I was in school. Anyway, this is long awaited. I have been following England team for quite some time now and I will be rooting for them – even though I don’t expect them to go all the way. I have couple of favorites there – Rooney and Gerrard – couple of real brave hearts rather than just a fat purse or big ego.
June is going to be busy.
Friday, May 19, 2006
age of software
I have been thinking about longevity of software, how it ages and eventually dies. Many of the software that was around while I was baby footing in this industry is no longer around or has come up with newer versions that resemble to the original only in name. Is it possible to write a truly magnificent piece of software that can live forever without being a recluse? If we realistically don’t expect our software to live forever, what are we doing about it?
Is it possible to design for the future in advance? Unless hit by a bus tomorrow, I can venture a fair guess about what will happen to me at most 1 year from now, not more than that. Then how can we design a piece of software to work for even 5 years. Do we even think about how many years a piece of software will be used while designing?
There is music, films, paintings and buildings that last for a really long time, but the average life of software maybe 5 years (wild guess). There are too many parameters changing in software usage. Programming languages, operating systems and hardware is still changing along with maturity of software users, competition in the market, new innovative ways to do business and systems to support it, more and more automation. Internet is becoming part of routine life. A system designed 5 years back to automate a manual process is a called a legacy system now. Sophistication of requirements increase with time – process automation was the original requirement. Now same users want analytics, modeling and personalization of systems.
Business empowerment is another theme that is driving system changes. Users won’t want IT involvement in modifying values in a list of values or adding a field to a page or creating a custom report. Combined with Sarbanes-Oxley and Change Management processes, if you force business users to submit a change request and ask them to go through a set of approvals etc to add a field to a data entry page, then it will be frustrating. On the other hand I don’t think it is possible to make a system completely configurable so that it can sustain itself. At least that is not practical if it is for use by one organization, not a full-fledged product.
What I established so far is that too many parameters change over time – business, sophistication of users and technology. It is not cost effective to create a truly flexible system for use by internal organization. It is difficult to predict future. But is there anything that can be done to extend the life of software? Couple of things comes to mind – routine checkups, constant exercise to remain healthy and accommodate changing needs. I remember something that I studied in school economics – with education, need of people change.
If a request for a similar type of change comes in 10 times a year, it is high time to make the think about a way to reduce the IT dependency in doing that. Alleviate the heartache by giving more control to users. At the same time, don’t expect to cut off IT completely – the system may become like an abandoned house and weeds may start to grow up the roof. With this, my intention is not to make a case for livelihood of IT department.
In conclusion, systems are not immortal, it will age and there should be enough nourishment to keep it going strong and keep up with the changing world.
Is it possible to design for the future in advance? Unless hit by a bus tomorrow, I can venture a fair guess about what will happen to me at most 1 year from now, not more than that. Then how can we design a piece of software to work for even 5 years. Do we even think about how many years a piece of software will be used while designing?
There is music, films, paintings and buildings that last for a really long time, but the average life of software maybe 5 years (wild guess). There are too many parameters changing in software usage. Programming languages, operating systems and hardware is still changing along with maturity of software users, competition in the market, new innovative ways to do business and systems to support it, more and more automation. Internet is becoming part of routine life. A system designed 5 years back to automate a manual process is a called a legacy system now. Sophistication of requirements increase with time – process automation was the original requirement. Now same users want analytics, modeling and personalization of systems.
Business empowerment is another theme that is driving system changes. Users won’t want IT involvement in modifying values in a list of values or adding a field to a page or creating a custom report. Combined with Sarbanes-Oxley and Change Management processes, if you force business users to submit a change request and ask them to go through a set of approvals etc to add a field to a data entry page, then it will be frustrating. On the other hand I don’t think it is possible to make a system completely configurable so that it can sustain itself. At least that is not practical if it is for use by one organization, not a full-fledged product.
What I established so far is that too many parameters change over time – business, sophistication of users and technology. It is not cost effective to create a truly flexible system for use by internal organization. It is difficult to predict future. But is there anything that can be done to extend the life of software? Couple of things comes to mind – routine checkups, constant exercise to remain healthy and accommodate changing needs. I remember something that I studied in school economics – with education, need of people change.
If a request for a similar type of change comes in 10 times a year, it is high time to make the think about a way to reduce the IT dependency in doing that. Alleviate the heartache by giving more control to users. At the same time, don’t expect to cut off IT completely – the system may become like an abandoned house and weeds may start to grow up the roof. With this, my intention is not to make a case for livelihood of IT department.
In conclusion, systems are not immortal, it will age and there should be enough nourishment to keep it going strong and keep up with the changing world.
Subscribe to:
Posts (Atom)