broadway
Overview
BroadwayZee is a large entertainment arena that hosts shows, musical performances, and high-profile corporate events. BroadwayZee is owned and operated by a company called AZCo. BroadwayZee seats up to 18,000 guests, but some events hold as few as 5000. BroadwayZee has decided to offer “one-stop shop” event planning, allowing event organizers to not only reserve the main BroadwayZee stage, but also organize aspects that are related to the event. This is a new business initiative, as, in the past, event organizers would have to arrange for these services separately. BZCo has decided to implement a PRPC solution to assist with this initiative.
Actors
· Sales Executive – Negotiates the contract with the customer and creates the proposal.
· Executive Officer – Approves proposals. There are 3 executive officers and one of them is the CEO.
· Event Manager – Manages the overall event. There is a team of about 5 event managers and one of them acts as the team lead.
· Facility Coordinator – Coordinates preparations for the event. There are a total of about 15 facility coordinators; each specialized in one or more areas, e.g. weather preparation and parking.
Process Overview
Through this new application, BroadwayZee will be able to provide a base package and some additional optional services. Event organizers can book these optional services on top of the base package. They cannot be booked separately.
The event booking application will include the following processes:
· Event quote: This process includes the event proposal capture and the calculations of the event quote
· Weather preparation: Actions taken prior to the event based on the weather forecast (service included in the base package)
· Hotel rooms booking: Arranging with nearby hotels to set aside blocks of rooms for event attendees (optional service)
· Parking request: Parking and shuttle service request for the event attendees (optional service)
The three latter processes must be able to execute independently and each event quote must be associated with the services involved in the event.
Proposal
While the sales executive negotiates a proposal with the customer over the phone or in person, she captures the proposal into the application.
The event information includes the type of event (concert, sport, corporate, and other), the number of attendees, the start and end date, the customer contact information (name, company, phone, and email) and if the optional services are booked by the customer. The sales executive can also generously give up to 20% discount to the customer. The discount is applicable both to the base price and the price per car. The system automatically recalculates the quote if any related input value changes.
With this information, the system automatically calculates a quote amount for the event based on the following data.
|
Size of event (Number of attendees) |
Base price |
|
< 6,000 attendees |
$ 50,000 |
|
6,000 < attendees <= 12,000 |
$ 80,000 |
|
attendees >12,000 |
$ 100,000 |
|
Size of event (Number of attendees) |
Hotel reservation price |
|
<= 6,000 attendees |
$ 4,000 |
|
6,000 < attendees <= 12,000 |
$ 5,000 |
|
attendees >12,000 |
$ 6,000 |
|
Size of event (Number of attendees) |
Parking and shuttle service price |
|
<= 6,000 attendees |
$ 4,000 + $ 2 per car |
|
6,000 < attendees <= 12,000 |
$ 6,000 + $ 2 per car |
|
attendees >12,000 |
$ 8,000 + $ 2 per car |
The sales executive has the option to cancel the proposal if the customer chooses not to continue.
The quote is then submitted for approval. Executive officers are available to receive the quotes and approve them. They pull the quotes from a list without the possibility for cherry –picking. Executive officers pull the quotes in order defined by the event start date. The events with earlier start date will be pulled first. Quotes for events with more than 10,000 attendees must be routed directly to the Chief Executive Officer, who is one of the executive officers, for approval.
If a quote is rejected a note stating the rejection reason must be provided by the executive officer. A rejected quote is routed back to the sales executive who originally created it. She can make changes and resubmit, or alternatively cancel it.
If the proposal is approved the processes for the selected services are triggered and the event is sent to the event managers’ team lead who assigns it to one of the event managers (it should be possible to assign it to event managers only). The event manager can either accept or reject the event. If the event is rejected it goes back to the team lead who can assign it to another event manager. If the event manager accepts it, it is allocated to her.
Proposals can only be created by sales executives and the financial information must not be visible to the facility coordinators at any time.
Weather Preparation
One day before the event the weather forecast for the event dates is checked.
The weather is checked using a web service. The web service returns the likelihood of precipitation for a date range. The WSDL with request and response examples are available in the appendix. The web service has not yet been implemented and needs to be simulated during development.
If the probability of precipitation is greater than 40% for any of the event days a process to make arrangements is started and tasked the facility coordinator with the least amount of urgent work that is specialized in weather preparation with the series of actions shown in the table below.
|
Set up tents |
|
Provide disposable raincoats |
|
Cover seating area |
If the facility coordinator has not completed the work within 8 hours it is escalated to the event manager allocated to the event.
Hotel Reservation
BroadwayZee has agreements with five nearby hotels. The hotel list is maintained by the system administrator. It must be easy for the system administrator to update email addresses when the application is in production.
|
Hotel |
Contact person |
|
|
Marriott |
Sandra Smith |
<email> |
|
Hilton |
John Jackson |
<email> |
|
Westin |
Erin Edwards |
<email> |
|
Sheraton |
Fred Franklin |
<email> |
|
Radisson |
Niclas Newton |
<email> |
Based on past experiences, AZCo has figured out that 20% of attendees will need a hotel room. The hotels do not have user accounts in the application. The system notifies the hotel contacts by email requesting room reservations. Each hotel is requested an equal number of rooms. To expedite the process, the hotels will have to confirm the number of rooms reserved directly into the application.
The hotels have 24 hours to confirm that they have set aside rooms for the event. It is possible for the hotels to confirm fewer rooms than requested, but not more. If a hotel does not respond within 24 hours it is automatically assumed that it could not set aside any rooms at all for the event.
If the hotel did not confirm all requested rooms the reservation is sent to the event manager. The event manager reviews the reservation and can call up the hotel to discuss the request and update the reservation accordingly. The event manager should have an overview of other reservations, both pending and confirmed ones, when reviewing a reservation.
Parking and Shuttle Service
BroadwayZee can provide parking with a shuttle service. If this option is selected the facility coordinator specialized in parking with least work is assigned the task to arrange the shuttle service. Depending on the size of the event several transportation companies might need to be contacted.
The company, contact person, and number of busses are captured for each company. Entries can be added using the Add link, updated by double clicking on the entry, and deleted using the right click menu.
On the event end date the same facility coordinator gets the task of entering the number of cars that used parking allowing the total invoice amount to be calculated.
Additional Requirements
The portal is different depending on the type of actor logged in. The sales executives and event managers are presented with three tabs: My Dashboard, My Cases, and My Worklist.
The executive officers have a My Report tab in additional to the tabs above. The report tab contains the reports specified in the reporting requirements section plus the standard reports. Executive officers should be able to create new custom reports using the standard features.
The dashboard should enable access to the worklists of the user’s peers, e.g. sales executives can view and access work from other sales executives (but only other sales executives). The same is true for executive officers and event managers. However, it must not be possible to access work on peers’ worklists that is related to events with more than 10,000 attendees and therefore went to the CEO for approval. In addition, the dashboard contains the usual standard features.
The My Cases tab provides an overview of open cases that the actor is involved in. Thus, for the sales executive the ones he created, for the executive officer the ones he approved, and for the event manager the ones allocated to him. This allows for an easy overview of open cases and their status.
The facility coordinators only see their own worklist. It must not be possible for a facility coordinator to work on something that is not assigned to her.
BroadwayZee is planning to buy additional arenas in the future and want to be able to reuse the current application with appropriate customization for each additional arena.
Reporting Requirements
Executive officers have two reports. The first one lists the events with revenue, cost, and profit. The second report shows profit by event type. The internal costs are shown in the tables below.
|
Size of event (Number of attendees) |
Internal cost |
|
<= 6,000 attendees |
$ 30,000 |
|
6,000 < attendees <= 12,000 |
$ 40,000 |
|
attendees >12,000 |
$ 50,000 |
|
Size of event (Number of attendees) |
Hotel reservation internal cost |
|
<= 6,000 attendees |
$ 2,000 |
|
6,000 < attendees <= 12,000 |
$ 3,000 |
|
attendees >12,000 |
$ 4,000 |
|
Size of event (Number of attendees) |
Parking and shuttle internal cost |
|
<= 6,000 attendees |
$ 2,000 + $ 1 per car |
|
6,000 < attendees <= 12,000 |
$ 4,000 + $ 1 per car |
|
attendees >12,000 |
$ 6,000 + $ 1 per car |
Appendix
Weather Forecast Web Service
This is the WSDL for the weather forecast web service.
<?xml version="1.0" encoding="UTF-8"?>
<definitions targetNamespace="urn:PegaRULES:SOAP:Weather:Services" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:PegaRULES:SOAP:Weather:Services" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<types>
<schema elementFormDefault="unqualified" targetNamespace="urn:PegaRULES:SOAP:Weather:Services" xmlns="http://www.w3.org/2001/XMLSchema"><complexType name="DataType"><sequence><element maxOccurs="unbounded" minOccurs="1" name="ProbabilityOfPrecipitation"><complexType><sequence/><attribute name="Date" use="required"/><attribute name="Value" use="required"/></complexType></element></sequence><attribute name="Unit" use="required"/></complexType><element name="Data" type="tns:DataType"/></schema>
</types>
<message name="GetProbabilityOfPrecipitation">
<part name="Latitude" type="xsd:decimal">
</part>
<part name="Longitude" type="xsd:decimal">
</part>
<part name="StartDate" type="xsd:date">
</part>
<part name="EndDate" type="xsd:date">
</part>
</message>
<message name="GetProbabilityOfPrecipitationResponse">
<part name="GetProbabilityOfPrecipitationResponse" type="tns:DataType">
</part>
</message>
<portType name="ServicesType">
<operation name="GetProbabilityOfPrecipitation">
<input message="tns:GetProbabilityOfPrecipitation">
</input>
<output message="tns:GetProbabilityOfPrecipitationResponse">
</output>
</operation>
</portType>
<binding name="ServicesBindingSOAP" type="tns:ServicesType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetProbabilityOfPrecipitation">
<soap:operation soapAction="urn:PegaRULES:SOAP:Weather:Services#GetProbabilityOfPrecipitation" style="rpc"/>
<input>
<soap:body use="literal" namespace="urn:PegaRULES:SOAP:Weather:Services"/>
</input>
<output>
<soap:body use="literal" namespace="urn:PegaRULES:SOAP:Weather:Services"/>
</output>
</operation>
</binding>
<binding name="ServicesBindingSOAP12" type="tns:ServicesType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetProbabilityOfPrecipitation">
<soap12:operation soapAction="urn:PegaRULES:SOAP:Weather:Services#GetProbabilityOfPrecipitation" style="rpc"/>
<input>
<soap12:body use="literal" namespace="urn:PegaRULES:SOAP:Weather:Services"/>
</input>
<output>
<soap12:body use="literal" namespace="urn:PegaRULES:SOAP:Weather:Services"/>
</output>
</operation>
</binding>
<service name="ServicesService">
<port name="ServicesPortSOAP" binding="tns:ServicesBindingSOAP">
<soap:address location="http://10.61.8.14:9080/prweb/PRSOAPServlet/SOAP/Weather/Services"/>
</port>
<port name="ServicesPortSOAP12" binding="tns:ServicesBindingSOAP12">
<soap12:address location="http://10.61.8.14:9080/prweb/PRSOAPServlet/SOAP/Weather/Services"/>
</port>
</service>
</definitions>
Here is an example of a SOAP request to get the probability of precipitation.
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ns:GetProbabilityOfPrecipitation xmlns:ns="urn:PegaRULES:SOAP:Weather:Services">
<Latitude>42.36572</Latitude>
<Longitude>-71.07682</Longitude>
<StartDate>2012-12-05</StartDate>
<EndDate>2012-12-06</EndDate>
</ns:GetProbabilityOfPrecipitation>
</soap:Body>
</soap:Envelope>
Here is a sample response.
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ns:GetProbabilityOfPrecipitationResponse xmlns:ns="urn:PegaRULES:SOAP:Weather:Services">
<Data Unit="Percent"> <ProbabilityOfPrecipitation Date="2012-12-05" Value="37"/><ProbabilityOfPrecipitation Date="2012-12-06" Value="42"/> </Data>
</ns:GetProbabilityOfPrecipitationResponse>
</soap:Body>
</soap:Envelope>
Invoice Email
This is the template of the invoice email sent to the customer when the event has been completed.
Invoice from BroadwayZee
<Date>
Dear <Contact Person Name>,
Below is an invoice for the event organized by ArenaZee.
Yours Sincerely,
<Event Manager Name>
---------------------------------------------------------------------------
Invoice Details:
Invoice #: <Event ID>
Due Date: <One month from today’s date>
Total Amount Due: $ <Total invoice amount>
Organizational Structure
BroadWayZee’s organizational structure for event planning and execution looks as follows.
Create the following users for testing purposes.
|
Department |
Role |
Operator ID |
|
Executives |
Executive Officer and CEO |
[email protected] |
|
Executives |
Executive Officer |
[email protected] |
|
Executives |
Executive Officer |
[email protected] |
|
Sales |
Sales Executive |
[email protected] |
|
Sales |
Sales Executive |
[email protected] |
|
Facility |
Facility Coordinator specialized in Parking |
[email protected] |
|
Facility |
Facility Coordinator specialized in Weather Preparation |
[email protected] |
|
Facility |
Facility Coordinator specialized in Weather Preparation and Parking |
[email protected] |
|
Managers |
Event Manager and Team Lead |
[email protected] |
|
Managers |
Event Manager |
[email protected] |
|
Managers |
Event Manager |
[email protected] |
5