I’m guessing most people know these lounge cafes where they have relax music and where the waiter writes down your order on a PocketPC like device. About the PocketPC, in some such cafes they do that already, in others they don’t. If the one in your city doesn’t, maybe dancings or CafĂ© Del Mar style cafes do?
This device could be a Linux device that uses GNOME components. Why does it have to be Windows CE? Oh, it definitely at this moment most of the times is using Windows CE. Very often with an application done in Visual Basic Embedded or maybe Compact Framework .NET.
What is the business interested in? Selling cocktails, spirits and other fancy drinks that are very expensive. The customer expects such drink to arrive fast and oh, let us not forget: in total style. The bar guy constantly does tricks like throwing bottles around, The waiter, all dressed up chic (or maybe even naked at some places), brings you a nice big cocktail with a lot fruits, toys and other crap. There’s one word for it, or maybe two: style and eye candy.
The PocketPC probably doesn’t help a lot with making it faster. In dancings where they often also use them, it of course does. But it makes it more fancy. Fancy sells. Don’t underestimate it.
Apart from being fancy, what does this device needs to do?
- Take the order in a very fast way;
- Write down the table number;
- Send to order over wifi to the bar guys computer;
- The computer of the bar guy needs to show information about the cocktail. Ingredients and stuff like that;
- For customers that ask, the PocketPC needs to show a nice big picture of the cocktail so that the waiter can (in a fancy way) show it to the customer;
- Show the price and print the ticket in a few ways. For example a ticket per person, per drink or a ticket per table. Yes, you have portable printers and they look VERY fancy. It’s totally accepted by the owner of the business. He’s the guy who is going to pay for your consultancy, right? Listen to him!
- Get updated every month, about new items on the menu of the place (or do you want to make a locally served website maybe? Might work, might not work)
Does the device need addressbook functionality? Does it need contactbook functionality? Does it need E-mail functionality? Messaging functionality? Voice over IP? All that might be true! It depends on the business activity. On how the people who work at that place interact with each other. Maybe does the bar guy wants to send a message to the waiter like: “we don’t have the ingredients of this cocktail, can you ask the customer whether he wants it without that ingredient at a discount prince?”. Can your solution cope with that event?
The point that I’m trying to make is, choice and change. Today the owner of the business starts using your solution. They will definitely find defects in the system like: “what if we don’t have the ingredients for the cocktail and the user wants to cancel the order or pick another drink with a different price?”, “we can’t undo it using the device today, the waiter has to go to the main computer and that takes needlessly time”. The situation changes. Can your solution cope with that? Can the situation be avoided? And how?
Have you thought about how our GNOME desktop components needs to (cope with) change for them to be suitable for such application domains? What about tomorrow? How can we make the Linux device less expensive than the Windows CE device? Are only experienced GNOME developers going to write a gazillion of such applications? No, it will be nine to five developers that don’t care about C. How can we attract them to our platform?
One thing the waterfall model learned us is that we CAN NOT catch all use-cases in a first run. Be agile. Be adaptive to change. Be flexible. Develop in style, and you will be.