Lessons learned by an old fart
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Pretty smart for an old fart. I've also been learning these lessons and it is hard work but very gratifying.
C'est What?
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
:thumbsup: I'm not yet an old fart, but I can identify with a lot of your experiences, having written some free (and open source) software myself. Especially with the last one
Ravi Bhavnani wrote:
What my users think is cool and useful is not necessarily what I think is cool and useful.
I'm hoping these experiences will prove useful should I ever start out on my own :)
Regards Senthil _____________________________ My Home Page |My Blog | My Articles | My Flickr | WinMacro
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Excellent observations and comments. I distribute freeware, careware and bugware, and it's amazing the things that people expect for free. BTW - I can add to your list of lessons learned... Don't be afraid to ignore stupid/ignorant emails: - questions answered in an online FAQ - "do you have a version for *pick your platform*?" (what, they expect me to have "secret" versions not available on the download page) - Can I have the source code to your shareware? I have a project I'm working on and it will help. I'm sure you get the idea. I for one appreciate your efforts and have used some of your work (here on CP) for some projects. You have not only made yourself a better developer - but a better person. Thanks!
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Very good points - the freeware software I have written has been driven almost entirely by the user community. In many ways they get to do the hard work - coming up with the ideas is the difficult part, coding the methods tends to be the easy part :)
Continuous effort - not strength or intelligence - is the key to unlocking our potential.(Winston Churchill)
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Very good points. The support issue is the main reason I stopped publically releasing the tools I write for myself. Over the years I have come to know many very capable users and they get them but I have lost patience for what seems to be the standard clueless user. I admire the fact that you have not. :thumbsup:
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Ravi You're a bloody masochist. Freeware WITH support, man you really don't want any spare time do you :) . I only release the tools to in house devs (publishing on CP does not count as releasing), give them some pointers, a few demos and let them loose. Almost all have been junior devs starting out without a tool set so they have been able to adopt the ones I have written. The other issues I have is the dammed things never stay still, I am always fiddling with them the improve and tweak them. I recently reworked the code generator to supply proper case objects based on Oracles crippled uppercase structures.
Never underestimate the power of human stupidity RAH
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Ravi Bhavnani wrote:
Lessons learned by an old fart
"Eating lots of beans produce better output..." :rolleyes:
Why can't I be applicable like John? - Me, April 2011
-----
Beidh ceol, caint agus craic againn - Seán Bán Breathnach
-----
Da mihi sis crustum Etruscum cum omnibus in eo!
-----
Just because a thing is new don’t mean that it’s better - Will Rogers, September 4, 1932 - Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Ravi Bhavnani wrote:
# Acknowledge their input in a timely manner. It's the least you can do for free QA!
As an inputting user, I'll attest for you on that.
- Providing support is expensive
-
As some of you know, I spend most of my waking hours writing software - either for my employer or for myself. Over the years I've built up an offering of freeware (i.e. completely free) tools, some of which have gone on to become more popular than I could have ever imagined. Supporting thousands of users (no easy feat) has taught me some valuable lessons that I wanted to share with my fellow CPians.
- Providing support is expensive
It's a PITA to have your weekends interrupted by responding to emails from users complaining that a piece of functionality is hard to understand - or worse - just plain broken! Lessons learned:- Code carefully (assume very little), test and re-test! A test suite (a simple command line app that scripts your app's functionality will do) makes testing easy and even <gasp!> fun.
- Try to capture as much diagnostic information (as possible) when your app fails.
- Fail gracefully - display helpful error messages and make it easy for the end-user to report failures.
- Know your user!
All my freeware tools started out as efforts to build solutions I wasn't able to find (for free) on the net. Over time, more and more folks began using my apps, requesting new functionality and suggesting improvements to existing features. It's been a humbling and eye-opening experience and I'm immensely grateful for the feedback I've received. Lessons learned:- Provide an easy way (forum, email address) for users to suggest improvments
- Acknowledge their input in a timely manner. It's the least you can do for free QA!
- What my users think is cool and useful is not necessarily what I think is cool and useful.
I can't help but feel my adventures in building freeware have made me a better developer and more cognizant of what it takes to build a better product - free or commercial. I encourage every geeky CPian to do the same. Thanks for reading, /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
- Providing support is expensive
-
Ravi Bhavnani wrote:
Lessons learned by an old fart
"Eating lots of beans produce better output..." :rolleyes:
Why can't I be applicable like John? - Me, April 2011
-----
Beidh ceol, caint agus craic againn - Seán Bán Breathnach
-----
Da mihi sis crustum Etruscum cum omnibus in eo!
-----
Just because a thing is new don’t mean that it’s better - Will Rogers, September 4, 1932Signature material! :)