What is the Best Way to Start a Paid GPL Project? 231
pooslinger writes "I know little to nothing about programming but would like to start, fund, and maintain a GPL linux POS application. I see there are a few available with the majority being closed source. I am currently starting a business and really despise the fact that I will have to spend $2-$5k on a proprietary solution. I would like to create an application where you could take a midrange PC, connect inexpensive touchscreens, barcode readers, thermal printers, credit card readers, etc; scan/input inventory; and begin selling. Something like a Debian POS distribution that boots into X and starts a POS terminal. Does something like this exist, am I just trying to reinvent the wheel?" How have other people approached starting a new GPL project, finding talent, and ensuring the code choices best benefit the community?
Linux Cananda has a Linux GPL (and commercial) POS (Score:5, Informative)
http://www.linuxcanada.com/pos.shtml [linuxcanada.com]
I am not affiliated, just been aware of them for 3-4 years now.
POS for coops, but it is a good start (Score:2, Informative)
Re-inventing the wheel (Score:5, Informative)
You probably are re-inventing the wheel.
There are a number of existing free software POS apps. I'd suggest going through the list with a fine tooth comb and making sure that none of them even comes close to meeting your needs before trying to start a new project.
http://freshmeat.net/search/?q=point+of+sale§ion=projects&Go.x=0&Go.y=0 [freshmeat.net]
Customisation (Score:4, Informative)
Re:Success = Strong Leader + Initial Codebase (Score:4, Informative)
Not only that, but your chances of success go up markedly if your codebase is (a) functionally complete enough to be immediately useful to many users *very* early on, and (b) highly modular, so that where a feature *isn't* available, it's worth more to the potential developer to write a new module for your codebase, rather than to start a codebase of their own.
There's a great Harvard Business School [hbs.edu] paper on this topic. Game theory and all. A mathematical proof about why projects like Drupal expand dramatically, and why projects like OpenOffice rot.
--a different Greg
Realistically... (Score:5, Informative)
2) You will not be able to develop even a very crappy POS system from scratch, sans hardware, for $5k--even at Bangalore rates.
3) While you develop a going-to-be-crap-for-a-long-time POS system, you need a reliable one to run your business.
4) Many software development projects die unceremonious yet expensive deaths.
5) This may be nothing but a colossal waste of time and money.
Because of all of the above, if you really are peeved to the point of diving into building something from scratch, you're going to need to know
1) The commercial product is sufficient
2) The cost-benefit exchange makes rolling your own FAR from cost-effective
3) You're not a software company
4) The time and money it would take to become one is enormous and way too risky
5) You have better things to do with your time and money anyway
renta-coder too. (Score:4, Informative)
The issue with spaghetti may also occur with RentACoder. Spaghetti code is not just an offshore option.
You get today's creative context stripping award. (Score:4, Informative)
If you're having issues with the concept, pick up a book or a short net article on Extreme Programming. While reading it, note how much time the authors spend explaining how to communicate what's desired by the customer to the programmers and what's feasible in the budget and time constraints from the programmers to the client. XP is not the only methodology out there that addresses this, but it addresses it clearly, voluminously, and in recent, easily located resources.
Re:Success = Strong Leader + Initial Codebase (Score:1, Informative)
Ready To Start (Score:2, Informative)
Re:$2000 to $5000 isn't expensive enough? (Score:2, Informative)
In the future I would like to add backoffice functions like accounting but keep everything as module as I can. If people want to use Quickbooks they have that option. However I would like to try to have the POS interface with as many GPL applications as I could to mitigate costs for small business.
Join LedgerSMB (Score:3, Informative)
LedgerSMB is a full accounting solution. A POS component would merely interface with core accounting logic. It is not a lot of code and could be managed with Perl/Tk, Perl/GTK, or (as we begin seriously on 1.4) any other framework you like as the core accounting data is moving into the database. In six months, hopefully you can have a product that would take yourself years to build, and you can be selling your services for good rates.
As I mentioned, there is a lot of demand for LedgerSMB consultants, and this is expected to go through the roof as get a better POS framework in place. Most of the core team is saturated with work on this project (most of it paid), and so it is an opportunity for others as well.
Best Wishes,
Chris Travers
Re:Customisation (Score:2, Informative)
People always underestimate how much (Score:4, Informative)
I have customers running LedgerSMB in a POS environment. It doesn't handle all environments at the moment (mostly just for retail), but it does work.
In general, you are talking about a system which generates invoices, collects and tracks money coming in and out, etc. Sounds almost like a full accounting system (which is in fact what LedgerSMB is). LedgerSMB is under the GPL v2 or later (no plans at all for moving to the GPL v3).
We inherited a mess of a codebase though and are working on it as quickly as we can. And we welcome contributions (and are willing to share the workload in terms of paid work too).
$2000 will buy you (Score:3, Informative)
This is an expensive area. And it is one where timely support is absolutely critical, as is database performance, and the like.
Re:Realistically... (Score:5, Informative)
I'm talking from a first hand experience, since I've been working on a Java POS solution for past 18 months. I'm a part of a new team of 6 developers dedicated to this project. The company has been (continuously and successfully) in PC POS business for the past 15 years. We are replacing their legacy DOS application. Here are some lesson we learned (some are POS specific, some are valid for enterprise SW development in general):
1. We couldn't have done it, if the company didn't already have extensive experience in this market. Programming experience is not enough, one has to know the market and customer expectations. PC POS is a tough market with a lot of competition that has been around for ages (lately including Microsoft). You can not get by with an amateur product.
2. Forget about the low-end off-the-shelf PC hardware. POS needs reliability (every hour of down-time means real money lost + getting a bad name with customers). Go for all-in-one specialized POS systems. They start at about $1500 (+options).
3. POS market needs support, even if some inexperienced first-time merchants think otherwise. Prepare some support plans and people to do it.
4. Store owners/managers put A LOT of emphasis on controlling their own staff. All serious POS systems are concurrent multi-user enabled (multiple users logged-in to application at the same time with fast GUI switching). RFID dongle for every user is what really works in the end.
5. You will not be able to customize the application for every small customer and their POS process. A lot of times you will have to teach them best POS practices and have this supported in the application. However you will have to bow to the bigger customers and customize the application for them. Result: you will end up with a lot of different sub-versions of the application. Bug-fixing and upgrade process is going to be a pain. Plan for it before all this starts.
6. Sales people will always sell features that are not there yet or are impossible to produce (due to technical or cost constraint). Train sales people to check with you first.
7. Have people that are not developers test the application before release. Testing your own code virtually means nothing. Once you release it to the customers you'll be amazed at how many bugs they can discover. As if all the unit testing and hand testing was in vain (it is not, continue with unit testing etc)
8. Write comments and API documentation (javadoc or equivalent). I REALLY MEAN IT. I often find myself wondering what a piece of code is doing, just to discover that I wrote it 6 months ago.
9. Do not write UML or any other developer documentation that is outside of code. It's just additional work that is always out of sync with code. And it only makes PHBs happy. Only exception to this rule is a short architecture overview of max 10 pages - this will save your time when new developers arrive on the project.
10. Choose a good IDE and be willing to pay money for it. Good IDE is much more important than a good car! Some developers I know are you willing to spend obscene amounts on a car but nothing on an IDE. You can always get a cab if your car lets you down, but IDE.. Again - this is no place to save money.
11. You should already know this: you need a versioning control system and a continuous integration system. Go with open source ones - they just work.
12. Automatic update system for your application is A GOOD THING. Selective (forceable, with consent) update per customer is even better. Try to stage updates - update first customers that are close to you (in miles and mentality). If all works well, roll out to everybody.
13. In case of troubleshooting a remote connection (VPN, RD, SSH, whatever..) to customers computer is worth a lot. Try to plan this upfront.
That's about it. Good luck writing your own POS application, just to save $2k.
And next time you need a new car, just build one.
Re:Don't be an Idiot (Score:2, Informative)
Re:$2000 to $5000 isn't expensive enough? (Score:3, Informative)
Re:Realistically... (Score:3, Informative)
I agree, though, once you start actual work, avoid at all costs revisiting said tedious bullshit until you're at the point where
Re:PCI-DSS / PA-DSS (Score:2, Informative)
Now if you said
Re:Not sure I understand. (Score:3, Informative)
Take some old, small form factor PIIs and any modern server and you're in.
Re:$2000 to $5000 isn't expensive enough? (Score:2, Informative)
So I see three systems:
1. The POS application. That's fairly straightforward. Creating it modularly and fulfilling tax and accounting requirements are the difficult part, but really just about finding the right regulations and other documents.
2. The drivers for all the POS hardware. Probably a base Linux OS (pick your flavor) frozen and tested with identified drivers for specific hardware. I'd start small and just get what you intend to use. The value add will be in adding support for new hardware and this will be a good area for (paid) community involvement.
3. A framework for integration with back end inventory, accounting, and payroll/timesheet applications. This would be where bespoke customization could pay off.
Like I said, I'm interested, willing to learn existing POS and integration apps, but not really expert at writing drivers. My email is ahdevans atgmail.com