How Do You Find the Right Tool for the Right Job ?
Arthur B. asks: "Whenever I try to find a software product, I find myself browsing SourceForge, but it's really hard to find something, when I only know the features I want and not the name of the project. It's hard, once I find a software, to gather information about it's reliability (is it a huge collaborative OSS project, an IT giant driven project or an end of term student project). The same is true about package trees in Linux distros. I'd like to ask the crowd: Where do you pick your software (be it commercial or not)? How do you compare different products? How do you know what a software does exactly before using it? Does a website provide this kind of help? Please let me know your tips and tricks."
I know it's unfashionable, but uk.comp.os.linux is an incredibly good place to hear the pluses and minuses of any software for any task you desire. There are some really helpful/knowledgeable people there.
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
Sounds odd but I find most everything through google.
I usually don't go looking for software that does X, Y or Z because I usually just know. But if I have a need I often just ask people or use google. Also, I lookin Gentoo Portage using the esearch program. 99% of the Linux software you ever want to use is in there.
As for knowing if the software is good or not I run a demo, or I just install it if it's free. If I know what I want it shouldn't take more than the install time plus a few minutes to know if it's good or not. If there is no way to try the software for free, screw it. I wont even consider something I can't try before even knowing if it's what I want.
But most of the time I learn about new software isn't because I go looking for a program with certain features. It's from keeping track of things like del.icio.us pouplar. If there is a new program released that does something cool it will be there.
The GeekNights podcast is going strong. Listen!
Portage.
For those not in the know, that's the package repository used by Gentoo. If I know what I'm looking, I search there first. (It's based off of the *BSD port trees.) If I know the genre, I can also search there by category.
For those packages that I have no clue for, I generally search the gentoo forums at forums.gentoo.org. Even for non-gentoo linux issues, this forum is very helpful, especially for scratching an itch.
This may seem a bit like zealotry, but portage is the main reason I've abandoned all other linuxes. Almost every time I've wanted software, it's been in the portage tree. The very few exceptions have meant I looked in gentoo's bugzilla for a package that hadn't made it into the public tree yet, and the only time all of this had failed, I wrote my own ebuild and posted it to bugzilla for others to use.
Gentoo: came because I was intrigued by the flexibility, stayed because I don't like installing software, or re-installing OS's, and portage and the rolling upgrades have been fantastic.
I've recently been tasked by my supervisor to "Find and evaluate service dispatch software" for our small company of 40.
I recently went through this same search. We were looking for something that integrated a lot of our business processes. I came to one conclusion: If you want software that does exactly what you need, you have to write it yourself.
We've been using SimplyAccounting forever to do accounting, and not really tracking inventory (we have a very high number of different parts, but don't keep a huge stock on hand). Dispatching was done by filling out a form on the computer and printing it -- there was no real tracking system since the forms weren't all that searchable, and you couldn't find unfinished jobs etc.
About two years ago, we ended up purchasing a very expensive program (after looking at mid-high end accounting systems for a while) to do accounting. While trying to implement it, we found it was just too much - it forced us to alter some of our processes to work the way it wanted, and it was just overly complicated (hard to learn). On top of that, it didn't do everything we needed, and for example, I was starting plans to write the actual dispatch tracking part (with it doing invoicing and inventory). We basically abandoned that after a year, when we still hadn't made much progress in switching and they were starting to hit us up for a new support contract.
After fixing some staff problems, we started the process again in February. We ended up switching our accounting to QuickBooks, and using a product that can connect to QuickBooks called ESC by Coastal Computer. ESC can create invoices from dispatches, and post those invoices back to QuickBooks. It also has much more comprehensive inventory management and customer equipment tracking.
It still doesn't quite do everything we want (we have filters we need to service every 2 or so years, for example, and it doesn't really have good a way to 'remind' us to call the customer about that, and no way to automatically reset that date after invoicing a filter service). On the plus side it has a backend I can access (MS SQL), and in the past couple days I've written a program that looks for the service codes on an invoice and resets the service date on equipment. It doesn't require any additional interface, which is good.
We've been in this process for about 6 months though. I originally estimated a year (after my experience the first time when I figured a month or two), so we're well on track. We now do all dispatching, invoicing, and accounting stuff from QB/ESC. Most of our inventory is entered though we need to do a physical count again, and a fair amount of pricing information is missing (though getting closer every day).
So here's my advice: don't implement a solution that causes more work (ie, double-entry of data into dispatch, and then accounting) or has a steep learning curve, as people will not like to use it. Also realize that probably no software will ever meet your exact needs, just get close. Pick something that is flexible, or at least open enough so you can modify or add-on to. An open-source project would be ideal here, but AFAIK none exists.
I did consider starting an O/S project, but figured it would take at least 4 months to get something usable, and several more to work the bugs out and get a full feature set. This is not to mention the time to actually implement. It was simply cheaper to buy something than for me to spend the time on it.
Speak before you think
I basically look at just a few things when trying to decide what package to try:
1. does it have the features I need listed currently or are they just on the future roadmap.
2. Do they have screenshots of the app in action? Screenshots can tell you a lot about the design philosophy of the app and what features are actually implemented.
3. How much documentation is there on the App. The more actual user documentation there is the more mature and established it is (for the most part anyway).
4. Google for people using it. A strong userbase drives OSS development forward.
That will cut down the choices quite a bit. After that you really just have to try some out. It won't cost you anything if they are OSS and you can get a first hand look at the App in action.
If you see spelling or grammatical errors don't blame me. I tried to preview but IE here at work borked the CSS