PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Reinventing the wheel...
Reinventing the wheel...
Iniciado por guest, 28,dic. 2015 18:14 - 11 respuestas
Publicado el 28,diciembre 2015 - 18:14
As most of you know my background is retail point of sale software. I designed and wrote a basic POS back in 1996. Shortly after I was hired by JDA Software as a systems analyst (www.jda.com) where I worked on their Win/DSS point of sale system. Win/DSS is written in Clarion.

Since leaving JDA one of my jobs was a Lead Developer working for Cabela's (www.cabelas.com). Cabela's has over 50 stores, 2000 plus registers and $3.5 billion in annual sales. I then contracted with Advance Auto as a Win/DSS developer (www.advance-auto.com). Advance is the largest retailer of automotive replacement parts and accessories in the United States with over 5,000 stores and 30,000 plus registers, with about $10 billion in annual sales. Both companies used a highly modified version of JDA's Win/DSS.

After my latest contract with Advance Auto was completed, instead of seeking another contract elsewhere I had the bright (or questionable) idea of building my own retail information management system. With my experience and with help and advice from contacts I have built up over the years, I knew I could design and build a decent system for medium and large sized retailers. I know what they want and need. A register (or tablet) based POS system using tablets for retail floor support, with product lookup information, prices, backstock lookup, lane busting, associated store stock, expected stock deliveries, physical inventories, etc.

This system is called 'dCorims', which is short for "distributed Cooperative retail information management system". dCorims is a collection of integrated modules that do everything from ordering stock from vendors, shipping, receiving, sales, taxes, layaway, video walls, analytics... everything I've worked on for years. The object is to track stock from purchase order to final reporting and export to financials. Store systems and host all in one package. We are targeting medium and large sized business, not the smaller retailers with only a few stores (although we will gladly take their money if they like our product).

I contacted a friend who has a large company that provides hardware (registers and servers) to retail businesses. For example one of his customers has over 25,000 registers. He enthusiastically supports my idea, saying many of his customers are looking for (and have not yet found) a decent system that supports their operational size that doesn't cost a king's ransom (like from NCR, IBM or JDA). He said if I got the software written and priced it reasonably he can easily market it as it would dovetail in with his hardware sales and leasing.

So we started programming the system earlier this year. I am under no illusion that this project will be done soon. "Develop 10 Time Faster"... 10 times faster than what? Assembler? So the short term goal is to get a "display" (alpha version) put together in time for exhibit at the National Retail Federation Big Show in New York City next month (http://bigshow16.nrf.com/ ). We have a booth there with the aforementioned hardware company, my software will be displayed on his hardware. Attendees come from all over the world to attend this show (http://bigshow16.nrf.com/attendee-demographics) so we hope to garner some attention being one of the distributors on the floor with new products taylored to the medium and larger markets. While we cannot market the system in this show (it's alpha after all...), the idea is to get into the minds of the attendees, collect leads and contacts, and when they come back for the next show in 2017 we will be able to do some real horsetrading.

My system is big and I know it is going to take time. My plan is to have a minimally viable program (MVP) consisting of register and back office modules ready and operational by the 4th quarter 2016, before the next NRF Big Show in January 2017. It won't be as complete as I want it to be, and it will always need more functionality as requested by our clients. Once the MVP is completed and I am talking to clients and installing systems, I predict my time to continually develop the system will become even more constrained. I will most likely be looking at writing specifications and contracting out a substantial amount of work to contractors, relegating myself to sales with some code review and QA. Not ideal but necessary, we all have limitations we have to deal with.

Saw a post from another developer about software he was developing. His software also came from a Clarion background. He now has a lot of it done, and I noticed his software does much of the stuff that I will have in my system. And it got me to thinking. Am I reinventing a wheel? Whereas my wheel is specific and customized for larger businesses, it is still at a base level a wheel, with all the basic properties of a wheel. So should I be doing the base work if it has already been done once (or twice, or ...) before?

So the question is... what would be the pros and cons if I found another company that already has a mature POS system and either 1) licensed their software and their updates on a monthly/yearly basis, or 2) do a one time buy of the source code, or 3) partner with their company for them to provide the base POS and contract with them for specific large market dCorims functionality, basically giving them a piece of the pie for a piece of the action.

Thought is I could take their basic wheel... er, POS system, use it as the MVP we start with, then continue building the larger dCorims environment around it. I realize there would have to be some modifications I would need to make to meet US retail requirements - tax compliance, PCI DSS, etc. Or maybe not, as things really should not be that much different from the US. If so the modifications will be minimal.

Thoughts? Comments? I am open to suggestions on getting to market faster, as I am not getting any younger. :rp:
Publicado el 29,diciembre 2015 - 11:06
Hi Art,

First , Which platform ? . no point to buy POS system that can only run in windows if you want it to run on android/ios.

last year I upgrade one of my customer windows POS system to android . i have to rewrite and redesign the flow from scratch because android don't work same with windows.


Second , What kind of hardware? . common bulky POS system or artistic kind of POS with just a tablet connect other devices ( printer, scanner , etc..) through wireless .


buy existing system source code is faster solution if you don't have time, but long run, you may endup spend more time and afford in fixing the bugs.
while develop yourself, you no need worry that.
Publicado el 29,diciembre 2015 - 11:25
Hi Art,

A long time ago we have stopped to show software in alpha phase. If there is a lot of interest, then you get a lot of pressure to deliver it as soon as possible. Uncomfortable pressure, that can keep you from carefully finetuning your software.

Secondly, if you start such a large project ... is there any backup in case you deliver ... and then break a leg (hopefully not by a customer) and cannot work for a few days ... weeks ... months?

This kind of projects need backups in development and support.

Anyway, make sure you have someone to deliver first line support, so, it is not you, developer, that is trying to find out why something is not working like foreseen ... while that someone has no connection with the server and want you to help him/her with that too. You cannot neglect such calls for help, but first aid can be given by a 'lesser god'.

Do not underestimate the time you need to spent for service. That is why most companies (like ours) have a helpdesk. Only what they cannot solve goes in a bugreport for development (but you know that already, I guess).

Less than one percent of the support calls we got needs an answer from a technician, and less of 10 percent of these need technical work (bug fix, clarification).

There is a very big difference being at one hand contracted for a project and at the other hand doing the project all by yourself.

Just our experiences,
Rudolf
Publicado el 29,diciembre 2015 - 15:59
Hi Art,

Your problem is similar to the "Build or buy" decision that companies face. "Build" allows the client to ensure that the system does everything in the way he wants it to but takes a lot more time (and sometimes, cost). "Buy" allows the client to implement faster with the caveat that some of the functionalities he desires may not be available without tweaking and customization. In some cases existing procedures may have to be modified to accommodate the purchased system.

Since you have given yourself a deadline of an MVP by the end of 2016, the "buy" option seems more appropriate. You listed three options in case you find a company with "a mature POS system". Option 1 (licensing) should include your right to add your dCorims functionality even if it may means modifying parts of their system. This brings it closer to option 3 (partnering with them). Option 2 (outright source code purchase) gives you maximum freedom but may be the most expensive in the short run.

In all cases you should be sure that you can live with (even sell?) the system as it exists. Or at least until you can implement any necessary modifications.

One final thought. Based on the brief resume you provided you seem to enjoy application development. But you imagine that at some point you may have to focus more on sales and installation while subcontracting development work. I hope you can be happy in this transition which some techies find difficult

Best wishes for the new year.

- Mike H.
Publicado el 29,diciembre 2015 - 16:24
Art,

I would advise you to reinvent the wheel.

Reprogram the whole POS as per your requirements from scratch. It is time consuming but is better then using ones else POS. Because when you need new features you will have to beg them to add those.....

If you do not want to stick to WX then there are a few very good open source POS available in many different programming languages like PHP, Ruby, Python, etc.

Do check them.

Personally I prefer to go with ready made POS as provided by Odoo. We have deployed POS at two clients base on Odoo (Python based). And it is working like a charm except when we try to customize beyond what is provided. Like for example we are not able get it to cut between two copies of receipt.

HTH

Yogi Yang
Publicado el 29,diciembre 2015 - 16:24
Greetings CCC2, thanks for your input, it got me to thinking (damn, I hate when that happens... it usually gets me in trouble).

Platforms: Win, Mac, Android, IOS and Linux (especially Linux would be nice!).

Hardware: Pretty much all of them. Standard Parts and Pieces, with a small form factor computer connected to a cash box/printer/monitor. And IPad /Android /Windows /Linux tablets connected to a cash drawer/printer/monitor, gives them the option to disconnect the tablet and do other things out on the floor, like lane busting, physical inventory, etc.

Currently the hardware guy I am working with has the Windows PnP and the Windows tablet options (which would only require one program to run on both), but he would also like to get the option for IOS/Android tablets in place of the Windows tablet. I want to go further and give him the option of Linux PnP and tablets.

Would be nice to get an entire package but I think the chances of that type of package having already been built is the same as a snowballs chance in Hades. But for the current now, with the NRF show just around the corner, just being able to show a full featured Windows system on PnP and Windows tablet (like he has now) would get me by the show.

However, you also reminded me why I am not programming 10 times faster. JDA's Win/DSS was written using a SmartUI design paradigm. Easy and fast to get to market, which is all a 'bottom line' corporation would want, but painful and time consuming when it came time to customize. But I can't complain too much, as that (IMO poor) design kept me gainfully employed with a lot of billable hours for 15 years. But I want to avoid that future pain by designing it 'right way' the first time around.

My 'right way' is writing a program '3-tier'. Not 3-tier in the usual sense of client / server / back end data store, but instead I am using a separate dumb user interface / business logic / database, but all on one device. In theory I can swap out the UI side of the program based on platform (Windows/Linux, IOS, Android) while keeping the business logic and database access generic across all platforms. Universal code base, or at least that is the theory. Because a lot of stuff has to be compartmentalized with conditional code it is just taking a long time getting there. I have to be careful to use code that is compatible across all platforms, trying to take into consideration the differences between platforms.

As you point out platforms are different, so I may be fighting a losing battle. Maybe I should just give up hope of a universal code base and instead just make four different programs and put up with the pain. I just hate to give up that easy for the sake of getting a program out... I would be committing the same sin I despised in JDA's implementation.

That design paradigm (3-tier vs SmartUI vs other design models) is probably why I will probably not be able to use somebody else's current POS program. In a way you pointed it out, I don't want to buy/partner with another company that has an existing mature program that used a design model that will cause issues down the line. Thanks for reminding me not to make that mistake.

In theory once the investment has been made and that type of program has been written, maintenance and the ability to add new functionality would be a minimal investment, not a painful experience. I guess if I cannot find an existing program that meets my need maybe I need to find a company that wants to partner and build a new system based on the universal code concept as outlined above.

Just my opinion. I could be wrong.
Publicado el 29,diciembre 2015 - 16:37
Hi Mike and thanks for the insight. About the only thing I can do now is sit back, continue programming, and wait to see if a white knight comes riding to my rescue. :D

And you are right, I love programming. It was my hobby before I was hired at JDA, I was ecstatic when they hired me. You want to pay me HOW MUCH to do my hobby! Not yes, but HELL YES!

And you are right, I would miss it horribly. Unless I could find somebody to work for me in sales, with me pulling the strings.

And I would fire the a**hole if (s)he ever made misrepresentations to a customer just to get a sale...

At client site: "Sure, we are working on that feature right now, just sign on the dotted line."

Back at the office, talking to new product development: "How fast can you design and get this feature into the program? I need something by next week. We will fix it right later after the bug reports roll in. Maybe."

See the Dilbert cartoons. I have found it is based on reality.
Publicado el 29,diciembre 2015 - 16:42
Hi Art,

we have matured POS system, see: http://www.touchextra.info/

It connects via web to a back office, there's a "reporter" for doing the day's end business for each cash register, which can be done locally too, shows and prints various statistics, takes care of employee's work time, off-time and workl time planning, connects to scanners, slip printers, scales, it synchronizes touch layouts and price lists with all the cash regisers in the branches over night, works just fine for bakeries, super markets (with local stockkeeping), fast food shops, restaurants (table reservation, splitting & merging of invoice slips ..), barber shops, supports a second screen to show the processed positions and totals, shows a video there and so on, supports dozens of branch shops of a chain store.

However, it took us 15 years to reach the current status. It is, since it started in the WinDev 5.5 era, mostly a procedural program but with a lot of Windows API in it, but no third party add-ons. And it is for Windows only. I doubt that you would be anywhere near to our functionality after one year. MVP will put an extra time burden on you. No problem, I'd sell, lease to you or whatever, but I doubt that you would be happy with a software which is a) in German b) satisfies European customers only and c) is not from your brain and hands.
Publicado el 29,diciembre 2015 - 16:48
Hi Yogi, I have looked for open source options. Magento is the one that I found. Never saw Odoo, will have a look at it too.

BTW, isn't Odoo a shape shifter? ;-)
Publicado el 29,diciembre 2015 - 18:08
Hi Guenter,

Ich sprechen sie Deutch, aber nicht zufiel.

That is just off the top of my head, based on my zwi yaren of taking German in das oberschula 40 plus yaren ago. And I know I butchered it very badly. :rp:

Thanks Guenter, I will send you an email with questions.
Publicado el 30,diciembre 2015 - 12:59
Hi Art,

One important thing to note,
if possible find the POS software that does not depend on hardware drivers (like printer) to work .

my POS software is design not to use driver this is why from clarion (dos) to windev (windows) to windev-mobile(android) still work. :D
Publicado el 31,diciembre 2015 - 15:52
Hi,

Why are you concerned about "Reinventing the wheel..' ?

Your goal must be "Reinventing.." BETTER !

It's ALL about PROFIT! or not ?

The future of POS Software is "TABLET ready!" in another words FULL TOUCH.

Most of them are only 1/5 touch, Back-Office for example none!.

I already have one FULL TOUCH that take me 3 years to develop.You Will be amazed has I'm my self.

I already install 70 Licenses and these clients are my "beta testers". I´m fine tunning now

IF You Want to take part of this project send me a email.
I was dBase, Clipper, FoxPro/Visual FoxPro, Visual Basic, Visual Objects, C, C++, C#, Pascal (you name it!) and Clarion developer, but now I'm 100% WinDev developer until the end of my Life as a IT Professional. Why ?

PC SOFT is doing an amazing job in the last 2 years for the easy cross plataform programming so, I hope, they continue it in the next years to come.

Fernando Garcia