Ye' old general discussion board. Basically, for everything that isn't covered elsewhere. Come here to shoot the breeze, shoot your mouth off, or whatever suits your fancy. This forum is not for asking programming related questions.
I'm thinking about open sourcing Ne8 / Metator ( my projects ), if I save just a few people the trouble I'm going thru with the other open source platforms it would seem worth it, and the publicity Id get for making an open source store would be huge ( look how many users online @ magento / posts on their forums they have ). I might know 1 or 2 aspiring open source developers too Plus who knows maybe I'll get a patch of code or two back. My question is just what kind of financial repercussions could I expect? I plan to offer paid support, customization services, and hosted packages. I'm aware red hat is making money in open source but is anyone else yet?
I heard its also possible to open source your "base product" and then offer premium features ontop of that. My base product BTW is ecommerce / CMS and my premium products would be things like accounting / ERP software, or is it more lucrative to opensource 100% of your code? Is that possible?
Posted in general instead of enterprise because I feel it is more applicable and will be seen by more here
Don't forget to offer client installations. You can charge a nice amount being the guy who developed it, and include with it a support package as well.
I heard its also possible to open source your "base product" and then offer premium features ontop of that
That's a treacherous road - just look at where MySQL are heading (more and more features are being left out of the community edition), and they are losing traction fast. However accounting and ERP might be considered separate products, not features, so it could work. ERP and accounting also appear to larger businesses with reasonable income, so its probably an easier sale.
I suggest though that you have an open (free) beta period to maximize your products potential (unless you already did that?)
Funny cause I justed posted something similar the other day, I thought I posted it here, but apparently not.
I have tried open source before and it was a massive failure. Failures are occassionally good, cause they can teach you a lot.
Marketing/advertising are everything, open source or not. If you get enough people using your e-commerce solution, then just like WordPress you can consider yourself a success. If you get a mediocre amount, like 1000 downloads a year, you won't make any money and most everyone that is likely using your source code, are developers from this site, doing nothing but criticisizing your code or borrowing ideas.
I dislike the idea of open source, but as a sole developer with limited financial means, it seems the only option. The problem is, as a sole developer I have only enough time in the day to work 8 hours and then support and product development, features, bugs, etc. So where do I find the time to market the damn thing?
Reaching that criticial mass where your users start advertising for you is probably the hardest part.
Open source is great, but of the X million projects which are open source, only a small fraction become commercial successes. Whereas on the commcercial flip side, there are millions of successful (on a smaller scale but still successful) applications.
I do know one thing...I am absolutely tired of working on others code...and I'm tired of freelancing.
What I am thinking of doing is offering a "light" version which offers the basics and a professional version which offers more advanced features.
You and I should maybe talk in private...we seem to be going in the same direction in terms of ideas, business, etc. Maybe we could cross promote and/or share in PR campaigns to lessen the bill, increase exposure, legitimacy, etc.
That's true in almost any business sector. It's more than marketing/advertising - its strategy. You have to know your audience, know where to find them, know how to get their attention, know how to hook them to your product and how keep them wanting more. You need to do research, and you need to have/make connections.
Making a good product is maybe half (or less) way to success.
Basically Magento seemed really promising and I've been studying / learning it for about 4 months or so and it truly is *great*, I tried to do a project on it and to override a controller you gotta debug 1,000+ line XML files. Its like the "smarty" of MVC. Its, blah.. I hate it. Words can't even describe. Its really great on the front-end side of things but theres no support once you try to do any real work on it. I contracted a project on it and I'm finding this out dangerously close to deadline now. I'm having to start from scratch on a new store and re-do it on Zen cart. The client actually normally uses interspire who you worked for PCspectra, do you think zen-cart is necessarily overall higher/lower quality? ( PM me your answer if you want but it would be very helpful ).
Basically Magento has both woken me up to a new world ( MVC, composite views ) but also made me hate it ( proprietary / non-database based configuration, slow, buggy, messy code ported from OScommerce? ). If I released this ( which I've been working on for a while ) its basically the "node" system for categories you find in CMS like Drupal, Ezflow. Problems with drupal = procedural, problems with ezflow = too much persistence and other logic embedded in domain model, Also an "enterprise" CMS would call it "classification", "taxanomy" or by other names and let you create "multiple access structures" ( basically multiple category structures for the same content if you're re-using it in different publications, for instance a magazine might categorize one way while the web-site needs to render a different way. It would also need to bring the full power of template partials to the users when creating published content. This would all be versioned like a wiki and would use the content model from EZflow or other "enterpise" CMS I looked at ( that fortune 500 companies all use ) where the administrators can basically create their content types as customizable fields, in essence create a schema of content. This is interesting because it reminds me of hte base model class Chris and the other Skeleton members are working on. Once you get this you expand past web publishing and you create books, online and offline documentation, user manuals, etc... All from the same "content structure" all from the same CMS. There would of course have to be workflow, full auditing, versioning, etc..
The "premium" modules would be built ontop of that, and I'd be looking at Martin Fowler's analysis patterns for guidance, since I couldn't find anything open source in this area that really cuts the cake. I'm aiming more towards something full featured like SAP then some "ERP" module for salesforce.com
I'm aiming more towards something full featured like SAP then some "ERP"
If I may offer a piece of advice, as business information management is my core business (my start-up - Octabox), if you're are thinking building something like SAP or a full fledged ERP of any kind alone - I suggest you rethink it. It will be a ton of work, and making those programs have any kind of intuitive flow and UI requires a lot of experience and time for trial and error.
You have to consider your target audience as well - micro businesses (up to 10 employees) will probably never use SAP (and try to avoid salesforce). This kind of software is hard to use, and usually a handed down requirement from an executive chain that does not understand or care about ease-of-use. Smaller companies don't have to put up with that, and usually have much lower requirements. If you are aiming for SMB and enterprise, you will be up against the SAPs and Salesforce's of the world, and have to somehow provide better value (bear in mind that those companies have money to spend on software, so lower pricing might not be a strong factor).
I suggest you do some serious research and find a weak point in which you can enter with your own product. Building a high-quality open-source CMS is a good idea (it's on my to-do list, honest! ), but I doubt that serious money could be made (unless it goes balistic).
Last edited by Eran on Wed Jan 07, 2009 9:48 pm, edited 1 time in total.
Actually ERP is more lucrative then CMS. You say full scale like SAP has anything that would be hard to build, they're well marketed that's about it. I know companies that have paid $400 / month for sub-par, made in cold fusion, crappy clones of salesforce. So my experience tells me it doesn't matter what theory you have about micro / macro economics, if you build it people will use it. I'm not talking about building a clone of dot project, I'm talking about building what http://www.netsuite.com built, but with a store that actually does something. That product sells for $80k, I've worked with several clients who almost bought it. If you've seen the product first hand you'd know that what I am talking about definitely isn't out of reach, so yeah its not like this is just a hair brained idea, I have been researching it, for several years now..
If you're looking to get cash for upgrades and addons to your F/OSS, or even donations, good luck. I tried and I did have very happy downloaders, but no cash. I did get thank you emails about once every two months.
However, I had 3 job offers from it:
- 2 of those offers were for me to build something separate than my F/OSS project, and I got noticed because of the F/OSS project.
- 1 of those offers was to make a custom version and provide a special license to a business for my F/OSS project, but I was (and am still) tied up on another project to assist. And, sadly, that vmail was accidentally deleted.
Oh, and the F/OSS project I did took me 3 years to build (rewriting 2 times) and did teach me a lot about PHP and PostgreSQL. However, looking back at the source, I'm not particularly proud of it. It looked great on the surface, and worked, but there was a lot wrong with it, such as lack of jQuery/AJAX, no TinyMCE, no ORM, no MVC, no Unicode support, and so on.
The other problem I have with F/OSS is that I learn exponentially, just like you guys here in this thread, and so I get very impatient to have to return to old code that I did like 2 and 3 years ago because it would often mean doing a complete rewrite in a whole new framework. And I'd rather be earning cash with freelancing than doing that.
Some advice on anyone making an ERP, CRM, ticket system, helpdesk, whatever:
- Make it skinnable where the admin can install theme plugins.
- Make it so that the end user (the worker, not the admin) can go into their settings control panel and change the theme based on what's available. This is because when you look at the same screen every day, it gets rather irritating.
- Create event hooks where plugins can be inserted for all page output, form get and post, before field validation, after field validation, before database push, after database push, etc. Take a look at how FluxBB does their plugins -- it's fascinating once you chase their code down and see how these things work. FluxBB is by no means a perfect framework for how that product works, but they do have fascinating bits inside. Also give the plugin a tie-in for your admin framework.
- Make the ticket numbers easy to remember and easily told to a coworker over a cubicle wall, such as AGT-43301 rather than 230893A, 80932381, or 83AB032F1.
- Unicode will be very important. Imagine a company suddenly adding on a branch in Brazil and they need to cut and paste from their slightly odd keyboards and Word docs into the text fields. (No offense to Brazilians -- I have a few as good friends and owe a lot to some.)
- Get used to using DateTime() instead of the older PHP date routines. It's the future.
- Use PDO instead of direct DB driver calls. It's the future.
- Use a DB class instead of doing direct PDO calls. This lets you swap out PDO with something better later on.
- Use an ORM to talk to your DB class so that you don't have to keep typing SQL all over the place. However, sometimes SQL is just plain necessary.
- Use an MVC framework, but most of us in this thread already know that.
- Most of your competition for this sort of product is now using a good bit of AJAX and a Javascript abstraction library like jQuery.
- Find a good paginated grid control for your tickets, such as find one for jQuery that uses AJAX, or build your own.
- My experience has shown me that top management brass in a company don't care how user-friendly and intuitive the product is for the workers. This is sad, but predictable. What do they care about? They care about those darned reports. They want PDFs mailed to them on a schedule on performance, new tickets, etc. They want compliance with many open standards on business continuity. And they want ad-hoc PDF reports.
- Create a bunch of use-case scenarios for your product for common tasks. Count the number of clicks. See if you can reduce that number of clicks reasonably where possible. Nobody like to have to keep clicking around more than they have to. This is where jQuery and AJAX can help.
- Give people the option to jump right into the ticket queue of their choice as the default option, or in the summary/chart screen.
- Managers who install this may want a special page just for ticket creation and a status update for those users on those tickets they created, or the ability for those managers to go back and add more comment or respond to a request for more information. IOW, you may not want to give these managers full access to the whole site, and they may need a version dumbed down in a Pointy-Haired Boss kind of way.
- Because there are so many fields in these tickets, inline field validation is hip on this sort of product, rather than field validation on post.
- Keep it thin when starting out, and grow it organically by end user feedback. Grow it to a certain point where you realize you need a complete rewrite, then rewrite it. (That way, it doesn't appear piece-mealed in the code.)
- Realize this -- there is no way to provide everything that everyone wants in a CRM or ticket system. There will always be people who question your intent. There will always be features you lack, or features you wrote that now you wish you didn't have or had implemented them differently. There will always be a better CRM or ticket system in some cases, just around the corner, because the field is changing all the time. It seemed a few years back that everyone liked ServiceDesk, but then switched to Remedy, and now you hear SugarCRM and SalesForce.com all the time, only for these to be replaced with something else later on.
- One thing that annoys workers is having to fill out so many fields, or having no option to have defaults for their values that can then be changed.
Hmm well lots of OS and non OS projects failed so specific instances don't really convince me of anything, but these are all good things to think about, I'm more interested projects that *do* succeed, I know theres some out there, a lot of closed-source projects fail too
Oh, and note this. I wrote a F/OSS system from scratch after writing a proprietary system in an office. The F/OSS system that I wrote was inspired by the other, but did not share any of the same code. Well, when I worked in that office, I was praised up and down for that thing I wrote, getting accolades every quarter from at least someone. However, top brass didn't have those silly PDF reports, or the ability to do complex ad-hoc reports, and didn't have fancy pie charts to impress upper management. When they asked me for these, I said, yeah, take me off all the mountain of Linux and UNIX sysop work I'm already in, and I'll be happy to do that work. So, they decided to can the project and look for something off the shelf.
And what did those dorks do? (Sorry -- bottled up frustration coming out.) They paid $50K for a web-based CRM to be customized, and then signed a $100K annual contract to be able to connect 200 users to it.
Did I get a raise for the work that I single-handedly did on the previous ticketing system? No, I didn't.
So, when that company overworked me to the point that I almost collapsed in the office at 3am on a Sunday, or almost wrecked because I woke up driving in the opposite lane when going home, and on that following Monday I accidentally stopped a job (a rare accident that only happened because I was overworked) -- I got called into HR and given a probation notice. Everyone in that HR office was 15 years younger than me and had like no clue all the miracles I had pulled for them on a daily basis to keep that company afloat. So, I ripped it up and walked out. And now I'm a freelancer. Best decision I ever made, and it doubled my salary.
These reasons and others are great reason to join forces with other developers, I'm serious, you dicked around a lot less.
I have partnered a few times but for personal reasons (mostly greed on my behalf) the partnerships expired before anything cool could come of it.
That is why it is mission critical to find three or so people right from the get go, start a project togather, establish a marketing plan, and log every hour of your time invested in the project.
Ideally any small project needs:
1. Designer
2. Developer
3. Business/PR
Seems those are always the most successful projects.
I know a lot of developers (myself included) are jaded due to their lack of success in open source...I don't believe it to be the fault of open source but rather poor marketing. People buy things when their is high perceived value, doesn't actually need great value in your eyes, it's the people using your software that matter.
Funny story...probably damn near 15 years a ago I joined a flight simulator forum to download/upload scenery files, tools, etc. I was just begining to master (or so I thought) VB and had purchased a book for Flight Simulator that had a long/lat distance forumla, so you could essentially punch in the departure/destination coordinates of say Toronto airport and Vancouver. Hit go and the calculator would tell you in how far the great circle distance was. Nothing major but I wanted/needed a similar tool (alternatives were to expensive and full featured -- much of what I didn't understand yet). I had the interface completed in about 15 minutes and ported the formula in about 30 minutes. I shared it with some people on the forums. I seen another guy distribute a encryption/decryption tool (which did nothing but XOR the bytes) as shareware for 10 or 15 bucks and thought I'd ask for the same. I recevied about a dozen cheques in less than a month.
More money than I have ever made from software itself (not the service or act of developing it) and I was only about 12 or 13...now at 29 I seem to have lost that ability.