In addition to the core functionality of your product (You know, the important bit like What It Does) there are a number of questions that must be answered.
For some Products, the answer might be a flat out NO, but they should all be at least considered.
These questions are vital for both Desktop and Web systems.
Can the User Register themselves with you?
This means asking yourself if you care about tracking Users. There are some situations where you might not want to, but I’d reckon most of the time you definitely want to be able to have some kind of User database.
Reason not the least of which is that you can strike up a conversation with the Users, on an individual level, given that your Registration functionality should capture their email address.
2. Activation (Trial/Full)
Does your Product need to be Activated?
If you’re selling a Product, you probably want some kind of Trial version. This helps the User figure out if they want it. Course, you could be awesomely popular and not have to worry.
For the rest of us Trial versions have to be Activated. And you should definitely have Internet (in addition to the User entering a code from an email) Activation.
Can the User login to your Product?
The real question here is whether your Product is completely open, or not. If not, then you need User Login functionality.
A problem with having User login functionality is that it creates a sense of Security in the User. If they use a really simple password, this is bad.
Making the User more aware of the need for a really secure password is paramount. You don’t want to force them (maybe), but you want to make it very clear (and not just when they create their password, but at regular intervals) that their password is lame.
4. Data Encryption
Do your data files need encrypting?
If your program contains any kind of sensitive information, you should be encrypting your data files. Even if not, you should consider doing so. Your Product is Your Product. Don’t give away anything you don’t have to (like structures and wotnot).
To protect data structures you obviously have to encrypt the entire file, as opposed to just certain sensitive fields. Really, if you have the ability, do the whole file. Can’t see any benefits for certain fields, unless it’s for human readability of the raw data.
Can the User back up their data?
This is a big deal. Giving the User smart backup options means less outlay for you at Support time. I’m not just talking about zipping up the data files when they press a button (not that there’s anything wrong with that, heh).
Backup and restore should be seamless. Corruptions will happen. So plan for the eventuality. Charge the User another $x/month for the Product to send backups periodically to your “Backup” servers. Ask the User if they’d like to backup at certain points. Find some external hardware backup options, or at least put up some Help articles (videos) on using other methods of backup.
Users will not backup on their own steam. That’s a general rule of thumb because it’s true for the majority. So take the ability to decide out of the User’s control. Or rather, give them one decision to make (like When is the program going to backup, or Would you like to send your backup’s to our secure off-site servers?).
6. Import / Export
Can the User Import/Export data?
Are your Users coming over from other Products? Would they have a big Excel spreadsheet chock full of data? Can they get their data out for further Services that your Product doesn’t provide?
When you start talking about Development APIs (which are all the rage with Web Services like Facebook, Twitter and FriendFeed) it’s really just giving this functionality in another form.
Put and Get.
Really a no brainer. Every single Product should have some Support system. Whether it’s an email address or a big system (like Kayako), you need to Support your Product.
If for no reason other than to give a better understanding of how your Product works out in the wild. Users will always find ways to push your Product that you have never thought of. Just is.
With my new Product I’m using Get Satisfaction. It’s a web service, off-site (I’m not in charge of the data, or functionality). I’m trying it with this Product because the Product is small and I don’t have the time to put together a system with the same level of functionality.
I want my Users to be able to search for questions/answers other people have asked/given. I want them to be able to suggest new ideas for the Product. And I definitely want them to report issues.
In addition to Support, do you have Help? Pressing F1 is pretty much ingrained into our consciousness.
So make good use of that pavlovian response. Start putting together a simple Help file. Screenshots and instructions. Having a good Documentation tool like Help & Manual or Dr Explain goes a long way.
But more, you can meld your Help together with Support, so that for a User finding the answer to a problem is done in the same place as getting instructions of doing a certain job.
Wow. That’s quite a number of important questions. It always amazes me how much I forget in the process of developing my own products.
Thanks for reading!
Which of the above Questions do you think have no relevance to your Product (and Why)?
Last night, amidst getting a new version of Oldaer out, I was inspired by Will Carling. We’ve been Twitter buddies for a couple of months now. He records his opinions, and sticks the videos up on the web (mostly at Rucku).
At about 10pm the fearlessness came upon me. Doubt was nowhere to be seen. Pragmatism too was off on vacation.
It was half three at least before I fell asleep. And in that time I’d managed to:
- Record the first Episode of The Rugby Man
- Install, setup and configure The Rugby Man blog with WordPress
- Pre (here) and Post (here, and here) ping on Twitter
- and, Spend time in prayer to the Almighty that I wasn’t going down another goose chase
Every project I start is potential. There are lessons to learn, processes to follow, disciplines to enact. And there is hope.
I don’t start a project thinking it’s going to fail. I don’t begin with my mind on all the problems. On reality.
I begin with fearlessness.
Do you have moments with this kind of fearlessness?
In a discussion on the Skype Clarion channel just now, Wolfgang asked me to post how to Code-Sign your own Exes/DLLs in SetupBuilder.
1. I’ve got my Certificate information in the “General Information” window.
Now I just want to sign my own files. Of which there are two. An EXE and a DLL.
2. So I go to the Script Editor.
3. Just above the “Features” line, get a couple of blank lines going on.
I haven’t experimented past “just get it working”, so there are probably a bunch of different places you could do this.
4. Make sure the line is selected.
5. Double-click on the “#embed Vista manifest…” Compiler Directive Script Function in the top right-hand corner of SB.
6. As follows after the image:
(a) Add your filename.
(b) Fill out the Name and Description.
(c) Check these two.
7. Double-click on the “#code-sign application” Compiler Directive Script Function in the top right-hand corner of SB.
8. As follows after the image:
(a) Add your filename.
(b) Put in a Description
(c) These should be defaulted, if you’ve got the same as me in 1.
(d) Definitely stick this in :)
(e) Check these two.
And there you have it. That’s all I did to get this working.
When you compile, the little “password” appear. SB will fill in the password if you’ve entered it. See (d) directly above.
Hope this has been helpful for Folk.
Welcome to the “Joel Of All Trades” series.
Doing your own thing means that, in my experience, you have to be a Jack Of All Trades.
You come up with the idea for a piece of software. You do some design; database, UI. You write it. You use it.
Then the real work kicks in. You need web presence. Marketing. Relationships. You need a Support system. Bug and Feature tracking. An Alpha/Beta system.
You have to get a website. Make the decision about what to put on it. Screenshots. Features. Some kind of “look at me” frontpage. Images.
It’s a big job. And it’s not the end. Because, all of the before is only a foundation for the following:
You have to sell it.
This series, Joel Of All Trades will chronicle my own journey. A journey which begins with Oldaer.
Oh, the Aliens in the picture above obviously have a very excellent plan for World Domination. They have Dragons. There’s a metaphor in that somewhere.