Pizza Delivery System

Updated:  11/30/2009

 

Overview

A national pizza chain is in the process of re-vamping their order taking and home delivery process and is putting out a bid for a new software system that will be installed in all their stores. The system is responsible for managing takeout orders placed over the phone. This includes accepting the initial customer order, forwarding the order to the kitchen, scheduling order delivery and confirming the order was delivered. The system also maintains customer information including their name, address, order preferences, etc. Throughout the order and delivery process, quality data is collected to evaluate the efficiency of the store’s operation. Example of such data would include time to process an order, accuracy of delivered orders, usage of delivery drivers, etc. The system assumes all payments are made in cash and is not responsible for performing any financial transactions. As the size of stores varies, the system must be capable of being configured to match the store’s capabilities. This would include the number of order takers, number of cooks (how many pizzas can be prepared simultaneously), oven capacity (how many pizzas can be cooked simultaneously) and the number of delivery drivers.

 

We have gone through several requirements elicitation sessions with the customer and have exposed many detailed descriptions of the expected Pizza Delivery System (PDS) functionality. They have given us domain information regarding their process of ordering, preparing, cooking and delivering pizza store products which is captured below. They also have requested we build an order taking terminal they can use to train operators and a simple simulation that tracks an order from call-in to delivery. Since they don’t want to disrupt their current operations, they will use the simulation to fine tune the order/delivery process.

 

Summary of System Functions

  1. Accept pizza orders over the phone,
  2. Forward order to the kitchen
  3. Schedule deliveries based on number of  delivery drivers
  4. Cancel / change an order in progress
  5. Maintain customer database of phone numbers / customer name & delivery address
  6. Maintain history of customer orders / preferences

 

Call-in to Delivery Process

  1. An order is received over the phone (i.e. “One large cheese and pepperoni pizza”) and is identified by the caller’s phone number. If the number is not identified by caller ID, the operator must ask for the number.
  2. If the caller is in the store database of customers, the name and delivery address is known, otherwise the operator must collect this information.
  3. Customers select a product (see sample menu below).
  4. The order is entered into the system and the customer is given the cost and an estimated time of delivery.
  5. The order is then tracked through to delivery using the customers phone number as the order identifier.
  6. The order is sent to the kitchen and is picked up by the next available cook who prepares the product and if needed puts it in the oven to cook. Cooks may only prepare one order at a time.
  7. If an order requires cooking it waits for an open oven spot based on the “oven space units” it requires. Assume each oven has a capacity of 40 oven space units.
  8. When the order has completed cooking, it goes into the awaiting delivery area.
  9. A delivery car for the specified location is filled and assigned to an available driver (see delivery process below). When the delivery location is reached, all orders for that location are marked delivered and paid for and the driver returns to the store.

 

Menu

Sample menu show here, store managers may modify the menu prior to the start of each business day.

 

Item

Price

*Toppings (whole)

Prep Time (min)

Cook Time (min)

Oven Space Units

Small Pizza

$8.00

$1.00

8

13

1

Medium Pizza

$11.00

$1.50

10

15

2

Large Pizza

$16.00

$2.00

15

20

4

Pizza Logs

$6.00

None

0 (pre-made)

10

1

Tossed Salad

$5.00

None

5

0

0

 

*Toppings for pizza include pepperoni, sausage, onions, peppers and mushrooms and can be ordered for the whole pizza or half. A standard pizza with no toppings includes cheese and pepperoni.

 

Delivery Process

For the purpose of this simulation assume the store is located in downtown Rochester and serves only the local college campuses with the corresponding average drive times to each location from the store. These are the only addresses to assign to customers. All pizzas arrive at a central point on campus and the students pick up their pizzas from there. Assume the driver spends a fixed amount of time per order (i.e. 2 minutes) distributing pizzas and collecting money at that location before returning back to the store. The status of the order is marked delivered after the driver has collected the money for that order.

 

  • RIT :  18 minutes
  • University of Rochester: 12 min
  • Nazareth College : 25 min
  • St. John Fisher : 21 min
  • Roberts Wesleyan College : 25 min
  • Monroe Community College : 18 min

 

The pizza store owners are not happy with their current delivery scheduling process. Ideally they would like to optimize each driver’s delivery so that he goes with as full a car as possible, but does not delay orders beyond a reasonable time and have some orders arrive late and over-cooked from sitting in the warming area too long. They suggest making sure the simulation can send one driver with one order to one location at a time. From that point you can begin experimenting with optimized delivery algorithms.

 

Operator Order Entry Display

The operator display will be a proto-type for a touch screen order taking terminal commonly seen in restaurants. It should be designed to promote operator efficiency and order accuracy. The operator terminal must reflect the current menu options and prices which can be changed only at the start of the business day.

 

Order Tracking Display

A display system will provide the following minimal tracking information for an order:

  • Order ID
  • Customer Name
  • Delivery Location
  • Order cost
  • Time Order Taken (sent to the kitchen)
  • Estimated delivery time given to caller
  • Actual delivery time
  • Current status : Preparation, Cooking, Awaiting Delivery, On Route, Delivered
  • For order stage: preparation, oven, awaiting delivery, delivery:
    • Start time in stage
    • End time estimated
    • End time actual

 

Manager Report Display

A report can be generated on demand by the store manager showing the following information collected from the start of the business day:

  • Total number of orders since the start of the day
  • Average cost per order
  • Average and maximum time order spent waiting for preparation
  • Average and maximum time order spent waiting for cooking
  • Average and maximum time order spent waiting for delivery pick up
  • Average and maximum time from order call-in to delivery

(For each of the max times above also include the order identifier)

 

Technical Constraints

While it may make sense to port the application to a web platform in the future, the initial proto-type will be written entirely as a standalone Java application with no dependencies to external database management systems. The final product will be evaluated by the customer on a Windows machine with the identical configuration found in the Software Engineering classrooms and labs.

 

Additional Notes:

  • For simulation purposes we can assume that moving an order from one stage to the next (i.e. preparation area to oven, oven to delivery area, etc.) takes no time and requires no human intervention.
  • All values used in the application (prices, time units, etc.) should be easily configurable by the use before the start of a “business day”. Once the day starts, values do not need to be changed. The interface for configuring the values can be as simple as a text file or spreadsheet.