Final Report Bernese (2)

101
Amanda Washburn, Deana Strain, Ryan Oehler, Thien Duong DART CONSULTING | 22 APRIL, 2015 Bernese Alpine Unlimited WRITTEN REPORT JONES Consulting[Type here] [Type here] [Type here]1

Transcript of Final Report Bernese (2)

Page 1: Final Report Bernese (2)

JONES Consulting[Type here] [Type here] [Type here]1

Bernese Alpine UnlimitedWRITTEN REPORT

Amanda Washburn, Deana Strain, Ryan Oehler, Thien Duong

DART CONSULTING | 22 April, 2015

Page 2: Final Report Bernese (2)

Table of Contents

EQUIPMENT RENTAL WEB APPLICATION.......................................................................14Equipment Rental Functionality Description.............................................................16Validation Checks.......................................................................................................16System Testing............................................................................................................25

UNIT TEST CASE.............................................................................................................26TRAINING........................................................................................................................31CHANGEOVER STRATEGY...............................................................................................33APPLICATION EFFECTIVENESS .......................................................................................34

SYSTEM DOCUMENTATION.....................................................................................36SPLASH SCREEN .............................................................................................................36WINDOWS APPLICATION.................................................................................................36

CUSTOMER INFORMATION FORM...................................................................................37PRODUCT INVENTORY FORM..........................................................................................38REQUIREMENTS DOCUMENT...........................................................................................39USE CASE DEFINITION....................................................................................................42EVENT PLANNING DOCUMENT........................................................................................44WINDOWS APPLICATION CODE.......................................................................................49CUSTOMER INFORMATION FORM CODE..........................................................................63PRODUCT INVENTORY FORM CODE................................................................................63

JONES CONSULTING POST-IMPLEMENTATION REVIEW..............................64FORMAL PROPOSAL DOCUMENT.....................................................................................64SALES ORDER PROCESSING WINDOWS APPLICATION....................................................65POWERPOINT PRESENTATION.........................................................................................65LESSONS LEARNED.........................................................................................................65

BIBLIOGRAPHY............................................................................................................66

1

Page 3: Final Report Bernese (2)

Executive Summary

Bernese Alpine Unlimited is positioned in Devil’s Peak, a skiing and snowboarding haven that has recently seen a large increase in tourism as the mountain receives more publicity. Bernese caters to the rapidly rising number of hardcore skiers and snowboarders and other tourists by offering equipment for sale, as well as expedition booking services. Having already been in operation for two years now, Bernese Alpine has achieved tremendous growth and is the first choice for tourists visiting Devil’s Peak but as the business grows, word has spread and competition has begun to crop up around the mountain. To remain competitive, Bernese will need to improve its use of technology and implement an information system that can streamline the business’ various processes.

Currently Bernese Alpine uses outdated technology in both its customer product ordering and supply chain management processes. The customer product ordering process is characterized by inefficiency. All transactions are recorded in Excel sheets and often contain errors, duplicate data sets, or have data missing. More importantly, the customer product order process may only be completed during store hours due to customers needing to come to the physical storefront to pay for their expeditions and equipment in-person. The supply chain management process is equally as inefficient. Sales and supplier data are recorded in Excel files and face the same risks as the customer product order data. Additionally, inventory levels are tracked on a chalkboard, and all items have been arbitrarily assigned a critical level of 10 units, even in cases where 10 might be well below or above the true critical level. Bernese will need to implement a system that can improve these two processes in order to flourish in the increasingly competitive tourism market.

By utilizing a direct cutover strategy to implement an integrative ERP solution, Bernese will keep costs lower and avoid interference with the business processes since the direct cutover will ensure the system is up and running in a timely manner. An ERP solution, such as Microsoft Dynamics GP, will enable Bernese Alpine to streamline all cross functional processes, as well as create an online storefront and add a customer relationship manager to better interact with and retain customers. This system will utilize many validation checks to prevent errors that occur in data entry, and give Bernese the ability to generate numerous reports that will help Bernese see key data, market trends and gain a better understanding of the business as a whole. After implementation of an integrative ERP solution, Bernese will have fewer errors, lower operating costs and will be poised to become the market leader at Devil’s Peak.

2

Page 4: Final Report Bernese (2)

Systems Development Strategies

Development Strategy

Bernese Alpine may develop software in-house, purchase an existing software package, or outsource to another firm. After analyzing the impact of the Internet, outsourcing options, and the ability to develop software in-house, Jones Consulting recommends that Bernese purchase an existing software package that can be easily customized as the most feasible option.

Developing software in-house is not practical because Bernese lacks employees with the knowledge and technical skills needed to develop such software. The main reason a company develops software itself, is to meet the constraints of the legacy system. Currently, Bernese utilizes Microsoft Excel to track customers, orders, and sales information and a chalkboard to manage inventory levels. Due to the simplicity of the current system, there is no need to create software in-house because there will be no constraints when transferring the data from the legacy system to the new system.

Since Bernese is a relatively small firm, their business needs will be satisfied by a standard software package. Due to Bernese’s size and business processes, hiring a consulting firm to create a new software is unnecessary in addition to being costly. Bernese’s new system is core to the firm, and since outsourcing takes place outside of Bernese, the outsourcing firm will not understand Bernese’s core capabilities which can hinder their competitive advantage and ultimately affect Bernese’s future growth. Although there is a variety of outsourcing options available, Jones Consulting believes that purchasing a software is the best choice for Bernese.

Purchasing software is the most feasible option for Bernese Alpine. Compared to building software in-house, the advantages to purchasing software include lower costs and less time to implement the system, proven reliability due to benchmark testing, reviews from companies who have implemented the software application, upgrades courtesy of the vendor, and less technical staff to monitor the system. Purchasing a software package will allow Bernese to consider adding a maintenance agreement which will provide additional support from the vendor. Purchasing a system will give Bernese the option to utilize Software as a Service (SaaS) as a deployment strategy for the new system. SaaS is a beneficial method because it is hosted over the Web by the vendor, easily accessible, and will drastically reduce Bernese’s need to maintain, operate and support the new system. The technical support provided by the vendor is a main benefit because Bernese does not employ any personnel with the technical background to maintain and support a system. Purchasing a software package supported by SaaS will allow Bernese to implement a

3

Page 5: Final Report Bernese (2)

system that incorporates sales, inventory, orders, and customer information into a streamlined system; making the ordering process simple and easy for their customers.

Web-Based System

Bernese Alpine needs a Web-based system platform in order to service customers who travel to Devil’s Peak from all over the world. Web-based development is the best choice for the desired purchased software because Web-based systems are scalable and can be run on numerous hardware devices, eliminating the problem of purchasing software-specific hardware. A Web-based system will lower costs by eliminating staff involvement due to the technical support team provided by the software vendor. In addition, the vendor will install, design, and maintain the software for an agreed upon fee. Utilizing a Web-based system is desirable because all the data will be readily accessible over the cloud. The cloud allows users to access data and services from any location and device by connecting to the Internet and signing on with a username and password. Web-based systems enhance user interaction, promote efficient data sharing, and are compatible with various systems which will enhance Bernese’s operations.

System Application

Bernese Alpine is a small company that needs generic, vendor purchased solutions to carry out their basic, day-to-day business functions. A horizontal application, also called a general-purpose application, will be the best solution for Bernese because horizontal applications are used for routine operations and business tasks. Horizontal applications are generic programs that can be used by various industries and even different business functions within those industries. Examples of horizontal-based applications are word processors, spreadsheets, and basic bookkeeping applications. Bernese currently has one full-time employee, Hans, and two seasonal employees, therefore eliminating the need for the standardization within a vertical application. A horizontal based system will benefit Bernese’s operations because horizontal applications are used to fulfill company’s basic business needs, such as simple accounting and human resource functions. Jones Consulting plans to implement various systems, including ERP and CRM systems, both of which operate under horizontal applications. Horizontal systems are ideal for companies like Bernese that are not complex and need software to run simple, day-to-day operations for each business function.

Software Packages

Jones Consulting recommends Bernese utilize an integrated enterprise resource planning system (ERP), which can streamline all cross-functional processes including customer product orders and supply chain management. Based on the process requirements as well as the scope and the scale of the company, Jones Consulting suggests that Bernese purchase a horizontal web-based package from a vendor. After investigating the various solution packages available in the market, the two best alternatives for Bernese are Microsoft Dynamics GP and Sage ERP X3. The following section describes the pros and cons of each software package.

4

Oehler, Ryan, 03/19/15,
Haste-free means not fast, so easy or quick are more acceptable here
Amanda Washburn, 03/19/15,
Should HR be capatilized?
Deana Strain, 04/17/15,
Page 6: Final Report Bernese (2)

Microsoft Dynamics GP

Microsoft Dynamics GP is an ERP system that will facilitate Bernese Alpine’s sales order processing and inventory management. The system will enhance the efficiencies of Bernese’s processes by reducing the manual tasks, which will save time and reduce errors. Microsoft Dynamic has a controlling module, providing access to electronic documents, such as a document flow for sales order processing. The system streamlines the entire process from presale activities to pricing procedures, to inventory sourcing, billing, making invoices, receiving payment, processing taxes. More importantly, the system supports multicurrency transactions and is able to manage backorders and returned items. Microsoft Dynamic uses Available-to-Promise (ATP) inventory checking to guarantee that an item is in stock and available to sell to the customer. ATP guarantees that the inventory ordered by one customer is not sold to another customer while it is waiting to be shipped or picked up. The system also uses ABC analysis, which recognizes the items that are most critical to Bernese’s business.

Since Microsoft Dynamics GP is a product of Microsoft, the first advantage of utilizing this software is compatibility with Bernese’s current system which uses Excel files to record transaction information. Therefore, in the implementation process, the transfer of past data to the new system does not take much time, because Bernese will be able to directly import MS office format files to the new system. Next, the user interface is updated and friendly, and looks similar to other Microsoft’s products with the same functional taskbar layout. Users in Bernese Alpine can easily navigate the function parts such as customer relationship management (CRM), sales, and marketing in the menu bar. Moreover, the software package also provides users the capability to customize the interface. Hence, it can lead to shorter training times. In addition, Microsoft Dynamics GP generates powerful reports. The software package inherits Excel reporting, so Bernese can use the Excel Add-In to import data into Microsoft Dynamics GP. Furthermore, Bernese can also generate reports through SQL Server Reporting Service (SSRS). Additionally, the software vendor also provides strong technical support to users that may be easily accessed online. Users can use these online resources including quick-start guides, training videos, knowledge bases, forums, and team blogs for technical help. More importantly, Facebook can be used as another useful technical support channel. Users only need to post their problem on the Microsoft Dynamics page and the responses are delivered quickly from technical staff members. Next, the software package can operate in various environments; it can be operated in a cloud or an on premise option. The user only requires a normal web browser to access the system. The software package also offers real-time online changes tracking. MS Dynamics also prevents data integrity issues like data inconsistence or data duplication. Last but not least, users can also use mobile devices to access and control the system, which is a convenient and powerful feature.

Along with the pros of MS Dynamics GP, it still has several cons. First, the software package has limited cross-platform supports. When Jones implements this software package, users will have few options compatible with other platforms in the future. Even though the integration of the new system with other platforms is feasible, the process is highly complicated. Furthermore, the customization in this software package is workable, but it is not impressive compared to other software packages in the market. Bernese will have to pay approximately $6,000 for the customization extended package from the vendor.

5

Page 7: Final Report Bernese (2)

Sage ERP X3

Distribution software is one of the modules in Sage ERP X3 that can facilitate sales orders and inventory management processes at Bernese Alpine. The distribution software module includes sales management, customer relationship management, procurement, and inventory management functions. In particular, sales management, has many features, namely: open pricing, offers and contracts, order entry, product configuration, inventory commitments, delivery planning and shipping, invoicing, returns, sales commissions. With inventory management, internal users can accurately check inventory levels in real-time. The key features in inventory management includes multi-stage warehousing, quality assurance, cost calculation, acquisition price tracking, and key performance indicators and analysis.

Sage ERP X3 is a powerful software package providing simplicity, flexibility and scalability to users. To speed-up implementation process time, Sage ERP X3 contains pre-settings for quick implementation. Moreover, the software package is web service oriented along with applying web 2.0, which allow users to easily collaborate each other. In addition, the user interface from Sage ERP X3 is also user-friendly. Users are able to create a new process by using the visual process editor. Users only need to drag and drop the function they need to create a new cross-functional process. The software package also provides 360 degree visibility. Next, Sage ERP X3 can facilitate global business for Bernese Alpine, because it has several languages and provides a multiple currencies solution. In addition, Sage also has hundreds of specific solutions. They have a network over 400 partners with in a wide range of industries, which mean the software package should highly optimize the business processes at Bernese Alpine. Moreover, Sage ERP X3 also can be easily scalable in in the future. The software package is fully integrated with Microsoft Office tools. The users can import Microsoft SQL Server or Oracle database into the software. As the current trend, Sage ERP X3 also offers mobile applications that are compatible with IOS and Android.

Because Sage ERP X3 is web-service oriented, the dependency on internet as a backbone can be an issue for Bernese Alpine. All access from users can be rejected if the internet connection is interrupted. Furthermore, the completely web-service software can also have latency issue. Today, the volume of database transactions can be tremendous, and it can take a lot of time to upload those transactions into the cloud via internet connection. Next, because this software is a completely new platform to users, the users, who will likely have little prior knowledge and experience with information systems, will need more training sessions, and that can raise the total cost as well as implementation time for the project.

6

Page 8: Final Report Bernese (2)

7

Page 9: Final Report Bernese (2)

Weighted Alternatives Matrix

Criteria Relative Importance (Weight)

Alternative 1: Microsoft Dynamics GP

Score 1-5

Weighted Score

Alternative 2: Sage ERP X3

Score 1-5

Weighted Score

Economic Issues:Total Cost of Ownership (TCO)

25 $30 per user per month

4 100 Variable rate starting at$115/ moDepending on size of company and number of users

5 125

Technical Issues:Maintenance/ Tech support

20 Online resource tech center and Facebook page tech support

5 100 Technical support via Web 2.0, e.g. blogs and social networks

3 60

Security 5 Users are assigned various levels of security

5 25 Single sign on procedure and firewall protection

3 15

Organizational Issues:Ease of use 10 Friendly

Microsoft platform

5 50 360 visibility that uses integrated Office Tools

4 40

Ability to Customize Software

15 Moderate level of customization

4 60 “Drop and drag” feature allows for easy customization

5 75

Implementation Time

5 Fast implementation using the cloud or on site

4 20 Pre-setting allows for quick implementation

4 20

Compatibility 20 Compatible with Microsoft products

4 80 Compatible with several environments, e.g. SQL and Oracle

4 80

Total 435 415

After carefully weighing the pros and cons of the two software package alternatives and analyzing the weighted alternatives matrix in more detail, Jones Consulting recommends that the Microsoft Dynamic package is more suitable to enhance efficiencies in sales order process and inventory management for Bernese Alpine. Microsoft Dynamics GP has a familiar interface that is easier to use, comes with a maintenance package, and requires less implementation time. Furthermore, the current Excel spreadsheets that Bernese is using will not have to transfer to other types of format in order to be compatible with the new system.

8

Page 10: Final Report Bernese (2)

Request for Proposal (RFP)

Company Background

Bernese Alpine Unlimited is a small ski and snowboard rental and expedition booking company located on Devil’s Peak in New Zealand. Bernese was founded two years ago by CEO Sean McQueg and COO Zach Robbins. Bernese has one full-time employee, Hans, who is the office manager and a few seasonal employees who work during the busy season.

Project Description

Bernese Alpine Unlimited is a seasonal business and needs an information system to manage transactions during the busy season and maintain customer relations during the off season. Bernese has a unique opportunity to increase its business and expand as tourism at Devil’s Peak continues to rise. Although Bernese has performed well in the past, competition has exploded along the mountain in recent years, and, in order to stay competitive and continue to grow, Bernese will need to make use of an information system to find solutions to its current operational problems. The most important of these problems is Bernese’s inability to strategically plan for the future due to inefficient business operations. Currently, Bernese uses either manual recording for transactions or records transactions within a single excel spreadsheet. This causes data to be difficult to manipulate and will often result in data errors. Additionally, Bernese records customer transactions separately based on payment type. This process creates confusion when Bernese needs to accurately determine revenues and expenses for the different services it provides to customers. A second problem Bernese faces is its lack of web-presence. Because Bernese currently only allows customer ordering by phone and in-store, it is only generating sales during store hours and is losing customers to competitors. Bernese needs a customer relationship management and supply chain oriented information system that will streamline and improve business processes, accurately determine revenues and costs for its different services, as well as develop a web-presence so that it may plan effectively for the future.

Design Requirements

The web-based system for sales activities and the windows application for the internal users’ needs to have a user-friendly graphical user interface. It must have a high ease of use for users. Every icon, button, and label in the two systems needs to be visualized in the way that users will be able to understand. For instance, the icon of printer implies the printing function in the internal users’ system. The system also needs to limit errors during data entry. The requirement information for the data types need to be clarified appropriately next to the data entry fields. The message boxes must be helpful and specific with instructions of how to fix the errors.

The web-based system for the customers’ needs to fulfill multiple requirements such as: The sign in for current members and sign up option for new members are available. Attractive announcements of current promotions campaign or other important news on

the homepage. Advertising board for important links at the top and bottom of every webpage.

9

Page 11: Final Report Bernese (2)

The search field is located on the top of webpage in the menu bar. Large menu bars that are standard for the online shopping website pages, including the

logo of the company, “About us”, product, service, store, and support. Customers can easily edit their personal information and customize their shopping cart. There is skiing webpage wallpaper with a white background color to attract attention

The windows application should be able to satisfy customers’ needs and fulfill multiple requirements such as:

The application will offer a log in option for internal users. Each internal user will have different rights and limitations to access the system.

The system has a document flow function as an audit trail for all transactions or activity in the system. It will record any changes in the system.

The navigation bars need to be arranged in the order of sourcing, sales, shipping and transportation, and billing.

Technical and Infrastructure Requirements

The server Bernese plans to implement will be hosted by the software provider, preferably using Oracle or a Microsoft Server because they both support a Web-based ERP system. The database needs to be configured using Oracle, Microsoft, or SQL Server for the optimal performance. Although the software is hardware independent, it will be in Bernese’s best interest to purchase equipment compatible with the Microsoft suite operating system. All of the software and servers chosen to support Bernese’s operations are either Microsoft based or work best with Microsoft, therefore Bernese will purchase Microsoft Office 365 Small Business Premium Office package which supports companies with up to ten employees. This office package can be downloaded onto five computers and five laptops and has the tools to day-to-day and large scale business tasks.

Functional Requirements

To enable Bernese Alpine to be more efficient and effective, the information system the company will implement needs to first address certain functional requirements of the customer ordering process.

Bernese needs an information system that will create a web-presence and give Bernese’s customers the ability to make purchases and reservations online. This e-commerce and online reservation project must have a catalog of the store’s items, a customer registration page, customer shopping cart, a related items page, and customer order history.

Bernese will also require a point of sale for both in-store and web-based transactions. This point of sale will include a cash drawer system to automate the recording of items sold, revenues, and the amount of cash on-hand. Both the electronic point of sale and the in-store point of sale must be PCI compliant, so that Bernese can accept payment by credit card.

After a transaction has been completed, the system needs to have data capture functionality so that the system can communicate relevant data to Bernese’s preferred shipping company or display low inventory levels to suppliers.

10

Page 12: Final Report Bernese (2)

As Bernese expands it will also need the ability to integrate its system with those of its suppliers and customers. This integration will streamline the business transactions and data sharing between the different companies.

As competition at Devil’s Peak increases, Bernese has realized that customer retention and satisfaction are key differentiators that Bernese must capitalize on. To successfully achieve this, Bernese needs to implement a CRM system so that it may track customer demographics, purchases and other relevant data so it is vital that the e-commerce project be compatible with or include CRM functionality. This data will be used to determine Bernese’s most important customers and target audience for marketing purposes. By retaining and satisfying customers, Bernese will be able to outperform its competition.

This CRM system must allow for the development of a customer loyalty program that will discount expeditions and merchandise for repeat customers.

Within the online store, Bernese wants to use the CRM system to customize each customer’s storefront by recommending items and expeditions that relate to items currently in the shopping cart as well as that customer’s past purchases.

Additionally, Bernese requests that the CRM system include call software so that Bernese may better manage customer questions and complaints as business increases.

Like the web-based store, the CRM system must function on multiple platforms to ensure the accuracy of customer data being recorded.

To allow for growth and expansion, Bernese must make use of an inventory and supply chain management project. The implementation of this system will cut costs and improve efficiency, allowing Bernese to achieve greater profitability and expand.

This system must be able to determine accurate levels of inventory on hand and reorder points for each item so that Bernese can adjust product ordering accordingly. By providing a reorder point and current inventory level, Bernese will be able to avoid stock outs and lost sales due to improperly recorded inventory and insufficient safety stock levels.

It is key that this system will interface with both the e-store and in-store points of sale. These need to be compatible with this project to ensure automatic updating of inventory.

The inventory and supply chain management project must also record each item’s shelf life. Due to the seasonality of Bernese’s business, Bernese needs to be able to monitor which items have been sitting on the shelf for too long so that a discount may be applied to the item and turn it over into a sale before the item is completely out of season.

Although Bernese Alpine Unlimited is currently a small business the compatibility of its inventory and supply chain system with those of vendors’ will be crucial to cost reduction as the company grows.

11

Page 13: Final Report Bernese (2)

Estimated Project Duration

The tentative project start date will be January 13, 2016 and will finish on May 6, 2016. Training will begin on May 7, 2015 and will conclude on July 1, 2015 at the start of the Bernese’s busy season.

Assumptions and Agreements

As representatives for Bernese Alpine Unlimited, Jones Consulting must abide by the following assumptions and agreements:

Jones Consulting will be acting on behalf of Bernese Alpine Unlimited Proposals will not be returned to the vendors. Jones Consulting reserves the right to dismiss any proposal for any reason. During the design phase, the vendor must have a project manager on-site to meet twice a

week with the project team and to facilitate questions and answers. The information system will be run on two in-store computers with a server that supports

an Web-based ERP system The system will operate with either Oracle or Microsoft Server and will be compatible

with the Microsoft suite operating system The information system must be compatible with the information systems of Bernese’s

suppliers and preferred shipping company for future integration needs. The information system must be able to communicate and share data with the suppliers

and preferred shipping company of Bernese Alpine Unlimited.

Submission Information

The submission for proposal should be in spiral-bound format and should also include a .pdf copy on a CD or electronically. The proposal must be received by Bernese Alpine before or on February 20, 2015. Please mail proposals to:

Jones ConsultingBernese Alpine Unlimited

1601 Mountain RoadDevil’s Peak, New Zealand 12345

Or electronically to [email protected]

Jones Consulting, acting on behalf of Bernese Alpine, has the right to reject proposals that were not received by February 20, 2015. Jones Consulting also has the right to change and/or postpone the required due date for the proposal. Proposals should be received by Bernese in a sealed envelope and labeled with the vendor’s name and a title consisting of “Bernese Alpine’s Request for Proposal in Regards to Software Development.” Jones Consulting understands that costs are associated with creating a request for proposal, but these costs are to be paid for by the vendor submitting the proposal.

12

Page 14: Final Report Bernese (2)

For Additional Information or Clarification

Clarification on any questions regarding the request for proposal will be handled by the Jones Consulting representatives. These individuals are the main sources of contact in relation to the proposal. Requests for additional information and/or clarification can be sorted and contacted by the below information:

Amanda Washburn Consultant [email protected] Strain Consultant [email protected] Oehler Consultant [email protected] Duong Consultant [email protected]

Bernese Alpine does not take responsibility for any emails that are lost or delayed. When vendors are contacting a specific coordinator with a question in regard to the request for proposal, the vendor should list the section and page number(s) that relates to the clarification in question.

Basis for Award of Contract

Jones Consulting will evaluate vendors based on seven categories and their retrospective relative importance weight: total cost of ownership 25%, ease of use 10%, maintenance/tech support 20%, implementation time 5%, ability to customize software 15%, security 5%, and compatibility 20%. This process allows Jones Consulting to award a contract to a vendor that not only offers the lowest cost, but scores the highest in the evaluation.

Jones Consulting will assess the evaluation and scores for each vendor and then will select the vendor with the highest score. The vendor with the highest score must sign a contract pursuant to the request for proposal. The vendor will need to return the contract by January 2, 2015. If the vendor fails to return the contract to Jones Consulting by the required date above, then Jones Consulting may suggest that the vendor does not accept the contract award. If Jones Consulting comes to the conclusion that the vendor does not accept the contract award, then Jones Consulting will re-calculate evaluation scores for the remaining vendors and determine a new vendor for the contract award.

Anticipated Selection Schedule Event Date1 RFP Issued October 16, 20152 Letter of Intent to Propose Deadline November 8, 20153 Receipt of Questions and Comments Deadline November 18, 20154 Bernese Responds to Questions and Comments November 23, 20155 Deadline for Proposal December 5, 20156 Bernese Selects Finalists for Contract Negotiations December 14, 20157 Award of Contract December 20, 20158 Vendor Agrees and Signs Contract January 2, 20169 Tentative Project Start Date January 13, 2016

13

Page 15: Final Report Bernese (2)

User Interface Design

Equipment Rental Web Application

14

Page 16: Final Report Bernese (2)

15

Page 17: Final Report Bernese (2)

Equipment Rental Functionality Description

The first screen of Bernese Alpine’s equipment rental web-based application page shows the ski and snowboard rental rate for customers. Bernese Alpine provides the following options that customers can choose including budget, sport, advanced, and child options. It also provides the insurance rate, which is optional. The bolded prices on the page are hyperlinks. When the customer clicks on each price, a picture will appear of equipment. When customers are ready to go further in the process, they will click “Book Rental Now” button in the top right of the page. It will link to the second screen where the customer can choose the package of equipment they want to rent. If the customer is a current member, they can log in to their account with username and password. Otherwise, Customers can fill in their personal information and starting date in the side area to the left. In the right-hand side area, customers will choose the ski and board equipment. Customer can pull down the “Choose Level” menu to choose their preference. Customers can also choose budget, sport, advanced, and child levels in both ski and board equipment. When customers change the level, the equipment rental rate option will change accordingly. When customers are happy with their choices, they will click “Continue” at the bottom-right. The third screen will give customers the summary of equipment rental order. They can edit the detail of order by clicking the “Update” button and drop the order by clicking “Delete” button. Another useful feature is “Add another participant,” allowing the customer to add additional equipment for family members or friends. Additionally, there is a comment box allowing customers to specify particular equipment they want to rent. The comment box is particularly useful for advanced skiers who want to demo multiple pairs of skis before purchasing a pair. Customer will then click “Continue” to proceed to the fourth screen where users will login to their account if they are a current member, using an email and password. Otherwise, they will sign up as a new member. The web page has an “I forgot my password” hyperlink, which will direct the customer to a page with security questions, and a password reset button. When customers fill the password section, the help box will pop up if the password that the customer enters does not meet the validation rule. In the final screen, customers need to fill their credit card information to finish the equipment rental process. Furthermore, on every screen, there is a search bar on the top left on the menu bar. When you hit the search in the title, a search box will pop up. In addition, there are also Bernese Alpine’s social network links including Facebook, Twister, and Instagram are on the top right of every screen. The customer can click these links for further up-to-date information.

Validation Checks

To reduce to the numbers of error while entering the data into the Web-based system, Bernese Alpine needs to create the following data validation rules:

Existence checks are used for data that are required to be entered into input fields. If the input fields are left empty, the application cannot proceed. The name, age, sex, height, weight, shoe size, and number of days are all required fields as indicated by an asterisk. On the second screen, the last name, first name, email, confirm email, phone, password, and confirm password in the third, and card number, expiration date, name on card, and security code in the fourth screen are required fields. Those required fields are marked with the asterisks.

16

Page 18: Final Report Bernese (2)

Data type checks make sure the data follows the required format in order to proceed. In the equipment rental Web-based application the mandatory fields, such as name, must be in a text format, while the age and height must be numeric format. The input data format for the required fields are list below

o Name, last name, first name, name on card are a text data type.o Email, confirm email, pass word, confirm password are both text, numeric, and

special characters data type.o Age and number of day, phone, card number, and security coder is an integer data

type.o Height and weight are a decimal data type.

Reasonableness checks look at the data users enter into the system makes sure it is reasonable. For example, the entry data in the age field if filled with an age such as 200 is an unreasonable value. When the user enters such types of unusual data, the system will be able to recognize them through the reasonableness check.

Combination check look to see if data in two or more fields are consistent. In order to create the new member account, the password and confirm password need to be identical.

Batch control checks are used to make sure the system total matches with the input total data. For example, the total number of rental equipment customers choose must be the same with the total number of equipment at the checkout step.

17

Page 19: Final Report Bernese (2)

Sales Order Processing Windows Application

18

Page 20: Final Report Bernese (2)

Sales Order Processing Functionality Description

The sales order windows-based application will greatly simplify the tracking of sales order information. The application is designed to make the input of order information, customer information, shipping details as quick and efficient as possible. To meet these criteria, the application design minimizes the number of entry fields in each of these forms and has minimal aesthetic elements so as to not distract the employee entering the information. Other than the data entry fields, the employee will be able to interact with a small number of icons that will aid in navigation through the application and provide additional functionality. These icons are located at the top of the form and are designed so that their images reflect the icons’ functionality. The “home” button will take the employee directly to the home page, while the “person” icon will display a customer’s order history. Should the employee need to print the application page or need help using the application, the “print” and “question mark” icons will accomplish each of these tasks respectively. Once data for a particular customer has been entered, the data is stored and can be automatically filled should the customer return to the store.

The first form in the application is the customer information form, which will require a customer name, address, and customer contact information. The employee will have the option to input the customer data as either a new customer, or as a returning customer. Should the customer data be input for a returning customer, the application will provide drop down input suggestions to allow for quicker and more error prone entry once the customer name has been entered.

The second entry form is the order information form. This form requests information such as the order number, date, the product ID and name, size and quantity desired by the customer, as well as any pertinent order notes or details. The application will retrieve the necessary data and automatically fill-in the required fields for order number, order date, product name, and product price. This automatic entry prevents human input errors and makes the data-entry process much quicker. After these details have been entered the employee may input any notes or comments that relate to that order.

The third form requiring data entry is the shipment information form. The employee will first be prompted with a required field requesting the order type. The employee may select either “in-store pickup” or “online order” based upon whether the customer desires their purchase to be shipped to their address or filled from the items in store. The shipping information form will contain all necessary data required to ship the order to the customer. This includes the customer shipping address or the option to use the same address as entered in the customer information form. After data entry is complete the last form of the application will be ready for data entry.

The last data-entry form is the payment information form. This form contains all payment details such as, the credit card name, number, card type, card expiration date, and card security code. The employee also has the option to select whether the customer is paying via PayPal or with their credit card. Should the customer pay with PayPal, the remaining details will be automatically input once PayPal has finished processing the payment. The order can then be stored when the employee submits this information by selecting the “Place Order” button under the order summary. Submitting the order information will update inventory levels, store customer details, and store employee and product sales metrics.

19

Page 21: Final Report Bernese (2)

Validation Checks

To ensure accurate data and reduce the number of input errors, the application will utilize various validation checks in each of the required fields. Listed below are the validation checks that will be performed for each field.

Existence checks that require specified data-entry fields for an order to be processed. This ensures that all required information for an order is input and will stop submission of incomplete order data. The required fields to be checked are customer name and address, city, postal code, country, phone number, email, and the necessary credit card information.

Referential Integrity checks will be implemented to ensure that data being submitted matches data already stored for the same entries. This will be utilized in cases where returning customer data is entered to ensure that the data already recorded for that customer is consistent with the data being input.

Data type checks will be utilized in many fields to ensure that the data being entered is the right type of data for each field. By performing a data validation check, Bernese Alpine can prevent data errors from the accidental input of the wrong data type. Fields requiring a data type check are as follows:

o First name, last name, city, and country: these required fields will have to have to be checked with a data-type check to ensure that they contain only text data and not another data type such as numerical data.

o Phone number, postal code, credit card number, credit card expiration date, and security code will all only contain numerical data and that data will need to occur in a specific format and length.

o Email can contain both numerical data and text data as a string, however all email addresses will be required to have a “@” symbol and a period.

Exception Reports

Bernese Alpine can use the stored data accumulated from the sales order processing application to create exception reports that highlight records meeting certain conditions of interest to Bernese. Reports may include:

All orders that were not delivered within a one week time span. Using this information, Bernese can take actions to better accommodate that customer in the future, such as offering two-day shipping or crediting the customer’s account.

All purchases from suppliers that were not delivered within three days of the requested delivery date. Bernese will be able to utilize this report to figure out which suppliers are reliable and possibly request compensation from those suppliers who are consistently late.

All tasks that are still pending even after their task completion date has passed. This will help Bernese and their project managers as they undertake more projects to expand and develop their business.

20

Page 22: Final Report Bernese (2)

Example Exception Report

Purchases pending delivery for three or more days after requested delivery date

Purchase Order # Supplier Name Requested Delivery Date

Days overdue

1234 Burton 3/19/15 71324 Quicksilver 3/22/15 41632 Volcom 3/22/15 41831 Hurley 3/23/15 3

21

Page 23: Final Report Bernese (2)

System Implementation

Documentation

Documentation describes an information system which helps the users, managers, and IT staff who need to interact and understand the system. Accurate documentation is imperative for the proposed applications because it can reduce costs and decrease system downtime. Documentation is necessary for all of the systems users, but particularly useful for the IT staff who must monitor and manage the system once it is up and running. The four types of documentation are program, system, operations, and user documentation.

Program Documentation

Program documentation describes the inputs, processing logic, and output for each individual module in the system. The purpose of program documentation is to guide the programmers in making modules that are supported by the internal comments and external descriptions of the system that can be easily maintained by the IT support staff. Program documentation begins in the second stage of the systems development life cycle (SDLC) and continues through the fourth stage, systems implementation. As the systems are being analyzed, designed, and implemented, systems developers will create process descriptions, report layouts, and a process model, all of which are included in the general overview of the application. Process models will be created for each application to map out Bernese’s current processes in order to create a baseline for improve and design the To-Be processes. Process models are unique because both application designers and managers can understand the diagrams. In both the Window and Web-based applications, developers use bug tracking software to detect, record, and replace the code containing errors. Most importantly, program documentation contains internal and external descriptions that guide programmers and allow them to develop system modules that are maintainable and support the end users.

System Documentation

System documentation describes the functionality of the applications and how the applications will be implemented. Having the system documentation allows the system programmers to be able to maintain the system for better use for the users. Within this document, there is information pertaining to the entire system. In the forms created for Bernese Alpine, the development is documented with data dictionary entries, data flow diagrams, object modeling, screen layouts, source documents, and system requests.

Operations Documentation

Operations documentation comprises all of the information needed to process and distribute output to the end users in online and printed format. Special forms that are required by the system, such as pertinent online forms and email and report distribution lists are integrated into the operations document. Information about the applications, systems analyst, programmer, and

22

Page 24: Final Report Bernese (2)

system identification tools are included in the documentation. Data input and output files are incorporated into this documentation as well as the where the files originated from and their final destination within the application software. Input data for the Web-based equipment rental application will be the customer personal information, including their name, height, age, experience level, and the equipment they select to rent. The system will then process the customer’s data and deliver the output to the Windows-based application where Bernese employees will access and use the data to track and manage customer orders. Specific error and informational messages will be described in detail for the operators and procedures for a systems restart will also be recorded. The Web-based system will display error messages in the case that a customer does not enter the correct information. For example, if a customer enters letters into the age field of the Web-based application, a field that only accepts numeric values, an error message will be displayed directing the customer to enter a numeric value in the field before the system can continue. Operations documentation lists the systems security requirements and ant special instructions in order to effectively run the applications. The purpose of this documentation is to describe the characteristics of the new system from the end user’s viewpoint. Therefore, documentation needs to be clear, concise, and available online for easy access. The operations document should be reviewed by operations development team throughout the five stages of the SDLC to identify and correct any potential problems with the applications.

User Documentation

User documentation is used to facilitate the communication regarding the implemented system between the technical user and the non-technical user. It is a set of instructions and information that is necessary for the users who interact with the system. For the sales order processing windows application, it will have a full user manual with tutorials and screenshots showing the system in regular use. The user manual acts as an overview of the main features, capabilities, and limitations. Each input field will be discussed as well as examples of the order outputs that can be generated. Other features in the user manual is the explanation of error messages and how to avoid them and/or fix them.

The equipment rental web application will have an online user manual that will benefit users when they are trying to proceed through the rental process. This documentation will explain how to use the features of the application, discuss the inputs and outputs, explain any error messages, and show an overview of menus and buttons that are available. The online documentation option provides immediate Help for the user when they encounter issues and have questions about the system. The web application will also be equipped with a “frequently asked questions” component to help consumers answer any questions about the rental process or the application. After a vendor is selected for Bernese Alpine, their services will be linked to the web application in that when consumers need help, the vendor will be made available for that online.

It is imperative that the system analysts creating the user documentation create the documentation throughout the project, rather than compiling the document at the end. If left until the end two things occur: 1) the documentation is compiled quickly, and therefore often inadequate, and 2) system analysts will prepare the document correctly, but the project will be delayed as a consequence. Having the user documentation will aid in successful implementation

23

Page 25: Final Report Bernese (2)

in both the web-based and windows-based applications. User documentation needs to be clear, understandable, and accessible to all users.

Testing

Both the Web-based equipment rental application and the Windows-based sales order processing application should be desk checked by the programmer in order to uncover any logic errors, which have the ability to produce incorrect results. A design walkthrough should also be conducted to ensure that all necessary features have been included in the new application, as viewed by the users.

After the programmers finish the coding process, each individual module in the system need to be tested and then the system as a whole needs to complete a series of tests before it is implemented. Likewise, Bernese Alpine also has to pass sequentially unit testing, integration testing, and system testing. However, before reaching to that sequential tests, developers need to use case tool, which is the language complier, in order to find language grammar mistakes or syntax errors. Particularly, language grammar mistakes in the equipment rental application can bring bad impressions to the customer .Next, programmers continue to apply desk checking, specifically, code review to detect logic errors that make program generate incorrect results. For example, when sales agent request the system to check the inventory level for a particular item, the application still shows the result, it can be an incorrect result. Along with testing logic and program code, the programmers also need to review user interface in order to make sure that all needed features are easy for internal users and customers to understand and use.

Unit Testing 

Unit testing will occur for each application in order to identify and eliminate both execution errors which can cause the system to abort abnormally and any logic errors that were possibly missed during the preliminary desk checking process. The project team will begin the unit testing process by creating a test plan, which contains all of the detailed procedures that occur. The project team will conduct data testing for each application. Data testing includes all of the possible situations that can occur between data inputs and their expected outputs. For example, in the Web-based equipment rental application, if the customer leaves the name field empty, a required field, the system will create an error message asking the customer to input data into the field before the system can continue. Data testing will contain the data types, the acceptable range, and alphanumeric characters. Table 1 and 2 below illustrate the data test for equipment rental and sales ordering processes.

Integration Testing

Integration testing is where the project team is testing two or more dependent programs. Output of one application can be the input of other, or vice versa. This relationship represents the dependency between two or more applications. For example, in the equipment rental application when a new customer creates a new user account, the username and password information of the new customer is stored within the equipment rental application. The benefit of the stored

24

Page 26: Final Report Bernese (2)

password and username information helps the customer in the future. So when that customer wants to purchase clothes or equipment in the ordering process application, they can enter that information as the input. The project team does not only have to test usual, or normal, situations, the project team also needs to test unusual situations. For example, testers can check what happen to the system if a customer created an account in the equipment rental application, then he or she uses the same username in order to create another new account in the ordering process application.

System Testing

System testing is imperative to business success because it reviews and tests the features and functions of the entire system, thus ensuring the modules work together. The system at Bernese Alpine will need to pass the following objectives: First, the system will need to properly perform the required tasks of programs, such as customer products orders and equipment rental. Secondly, the system should be able to input data in all possible situations. Third, the project team needs to collect and store sufficient documentation for internal users as well as the IT staff and instructions for the end-users. The main purpose of the proposed system is to serve end-user requirements. In addition, the security of the entire system needs to be guaranteed. The system must provide all of the back-up and restart capabilities in case there is an instance where the system collapses. To ensure that the system is capable of handling a sufficient volume of data, the system performance will be assessed by benchmark testing with a sample database of similar size to the actual database Bernese Alpine’s system will utilize.

25

Page 27: Final Report Bernese (2)

TABLE 1: Unit Test CaseEquipment Rental Application

TABLE 1: Unit Test Cases - Equipment Rental ApplicationScreen Field Test

Case #Input Expected Output

Rental Booking- Enter Participant

Name, Last Name & First Name (Customer Information Screen)

1 John (all letters) John

2 Numbers Error: Please enter only letters with initial upper case letters

3 Numbers and letters Error: Please enter only letters with initial upper case letters

4 Special characters Error: Please enter only letters with initial upper case letters

5 Numbers, letters, and Special characters

Error: Please enter only letters with initial upper case letters

6 Numbers and special characters

Error: Please enter only letters with initial upper case letters

7 Letters and special characters

Error: Please enter only letters with initial upper case letters

8 Too many values Error: Please enter only letters with initial upper case letters

9 Empty value Error: Please enter only letters with initial upper case letters

Age and Number of days

1 15 152 12.2 Error: Please enter only valid integers

3 Letters Error: Please enter only valid integers

4 Numbers and letters Error: Please enter only valid integers

5 Special characters Error: Please enter only valid integers

6 Numbers and special characters

Error: Please enter only valid integers

7 Letters and special characters

Error: Please enter only valid integers

8 Too many values Error: Please enter only valid integers

9 Empty value Error: Please enter only valid integers

Weight and Height

1 18 18

2 Letters Error: Please inter valid numbers

3 Numbers and letters Error: Please inter valid numbers

4 Special characters Error: Please inter valid numbers

26

Page 28: Final Report Bernese (2)

5 Numbers and special characters

Error: Please inter valid numbers

6 Letters and special characters

Error: Please inter valid numbers

7 Too many values Error: Please inter valid numbers

8 Empty value Error: Please inter valid numbers

Sex 1 Male Male2 Female Female3 Not check option Error: No gender selected, choose your

gender Ski Equipment/ Board Equipment

1 Budget Budget2 Sport Sport3 Advanced /Demo Advanced /Demo4 Children Children 5 Not check option Error: No bracket selected, please choose

bracket Ski Equipment/ Board Equipment rental option

1 Full Set Full Set

2 Skis Only Skis Only3 Boots Only Boots Only4 Not check option Error: No option selected, please choose

Start Date 1 1/12/2015 1/12/20152 Empty value Error: Please select your start date

(mm/dd/yyyy)Insurance 1 Yes Yes

2 No No3 Not check option Error: Please check your insurance

option Rental: Details

Add Another Participant

1 Click to this link Link to screen: Rental Booking-Enter Participant again

2 Not click to this link Still in Rental: Details screenUpdate 1 Click to this button Adjust Number of days, start date, and

Insurance2 Not click to this button Still in Rental: Details screen

Delete 1 Click to this button Link to screen: Rental Booking-Enter Participant again

2 Not click to this button Still in Rental: Details screen

Comment 1 All kind of upper lower case letters, space, special characters, numbers

All kind of upper lower case letters, space, special characters, numbers

2 Empty value Empty value

27

Page 29: Final Report Bernese (2)

Customer Information

Email 1 [email protected] [email protected]

2 thien.duongtcu.edu(lack of @ sign) t

Error: The Email Address Is Not Valid Or In The Wrong Format

3 [email protected] ( lack of domain)

Error: The Email Address Is Not Valid Or In The Wrong Format

4 *[email protected] (include special characters)

Error: The Email Address Is Not Valid Or In The Wrong Format

5 /thien.duongtcu (include special characters, lack of @ sign, lack of domain)

Error: The Email Address Is Not Valid Or In The Wrong Format

6 #thien.duongtcu.edu( include special characters, lack of @ sign)

Error: The Email Address Is Not Valid Or In The Wrong Format

7 $thien.duong@tcu ( include special characters, lack of domain)

Error: The Email Address Is Not Valid Or In The Wrong Format

8 thien.duongtcu (lack of @ sign, domain)

Error: The Email Address Is Not Valid Or In The Wrong Format

9 Empty value Error: The Email Address Is Not Valid Or In The Wrong Format

Password 1 thienduong19 thienduong192 thienduong 19 Error: Please do not enter space and

special character3 #thienduong19 Error: Please do not enter space and

special character4 #thienduong 19 Error: Please do not enter space and

special character5 Empty value Error: Please do not enter space and

special characterPhone 1 2098906934 2098906934

2 a2098906934 Error: Please only enter integer digits3 209 8906934 (include

space)Error: Please only enter integer digits

4 $2098906934 ( include special character )

Error: Please only enter integer digits

5 #209890 6934 (include space and special characters)

Error: Please only enter integer digits

6 Empty value Error: Please only enter integer digitsCountry 1 United States United States

28

Page 30: Final Report Bernese (2)

2 Not selected country Error: you must select your countryRegion 1 Texas Texas

2 Not selected region Error: you must select your regionCity 1 Austin Austin

2 Fort Worth (include space)

Fort Worth

3 Austin* Error: Please only enter letters and spaces

4 Austin * ( include space)

Error: Please only enter letters and spaces

5 Empty value Error: Please only enter letters and spaces

Street 1 2829 McCart Ave Apt 202

2829 McCart Ave Apt 202

2 2829 McCart Ave Apt 202*

Error: Please enter your address that not include special characters

3 $$$ (contain only special characters)

Error: Please enter your address that not include special characters

4 Empty value Error: Please enter your address that not include special characters

Postal Code 1 76109 761092 A76109 (contain letter) Error: Please only enter integer digits

3 76 109 (contain space) Error: Please only enter integer digits

4 $76109 ( contain special character )

Error: Please only enter integer digits

5 #76 109A (contain space, letter and special characters)

Error: Please only enter integer digits

6 ## ^^ (contain space and special character)

Error: Please only enter integer digits

7 AA AA (contain letters and spaces)

Error: Please only enter integer digits

8 AA $$ (contain letters, special characters and spaces)

Error: Please only enter integer digits

9 Empty value Error: Please only enter integer digitsPayment Checkout

Card Type 1 Visa Visa2 MasterCard MasterCard 3 Discover Network Discover Network4 American Express

CardsAmerican Express Cards

5 Empty value Error: Please select type of your credit

29

Page 31: Final Report Bernese (2)

cardCard Number

1 1563456352147 15634563521472 1563456352147A Error: The credit card number is invalid,

please verify the number and try again3 1563456352147*

(include special characters)

Error: The credit card number is invalid, please verify the number and try again

4 aaaa#### ( (contain letters and special characters)

Error: The credit card number is invalid, please verify the number and try again

5 aaaa (all letters ) Error: The credit card number is invalid, please verify the number and try again

6 ###### (all special characters)

Error: The credit card number is invalid, please verify the number and try again

7 1563 4563 5214 ( include spaces)

Error: The credit card number is invalid, please verify the number and try again

8 Empty value Error: The credit card number is invalid, please verify the number and try again

Exp.Date 1 18/20 18/202 Empty/20 Error: Please choose valid expiration

date3 18/Empty Error: Please choose valid expiration

date4 Empty/Empty Error: Please choose valid expiration

dateSecurity Code

1 256 2562 256* (include special

characters)Error: Please enter valid security code and try again

3 2 5 6 (include spaces) Error: Please enter valid security code and try again

4 2 5 6 * ( include spaces and special characters)

Error: Please enter valid security code and try again

5 Empty value Error: Please enter valid security code and try again

30

Page 32: Final Report Bernese (2)

Training

To maximize Bernese Alpine’s effectiveness in using the newly implemented information system, several levels of training must be planned for the different users and managers who will be performing daily operations using this system. Bernese currently has three types of employees: chief executives, a manager, and several employees. Each of these groups will need unique training knowledge and type for both the equipment rental application and the sales order application. Because each group will be utilizing the application in different ways, it is imperative that training is specific for each employee group, so as to not bog down employees with information that is not necessary to perform their job tasks. Chief executives will require the least amount of training and for these employees vendor training in the form of webinars, podcasts and online tutorials will be sufficient for their needs. This kind of training is provided by the vendor at little additional cost and proves to be the most cost effective option for Bernese Alpine.

Managers require a very deep knowledge of the system and applications and will require more costly and longer training. Because New Zealand is very remote and travel expenses to send managers to train in-person with vendors are too costly for Bernese, the most viable training option for managers is to hire a third-party training consultant. Third-party training will allow managers to get a hands-on experience with the system and applications. This will enable the manager to learn how to perform business processes with a system that functions similarly to Bernese’s. Although this training process will take much longer and be more disruptive than using online resources, Bernese can have training take place in the summer off season to minimize the impact of training managers. Additionally, once the manager has completed training he will have sufficient knowledge to be able to train the in-store employees.

In-store employees will be using the system and applications the most, but require only a basic understanding of how to operate them. In-store employees do not need to know how the applications integrate with the system or how system logic operates. These basic training requirements can be met in a cost effective manner by having the manager train the employees in a group setting. Group training is incredibly cost and time efficient and will allow all training to occur in the off-season and minimize disruption in the business. After training is complete Bernese can test the employee’s knowledge in a simulation to ensure that managers and in-store employees can operate the applications and system in a realistic environment.

The applications will require training from all three employee groups in order to run effectively and efficiently. The primary group that will be using this application are the users, or in-store employees. These employees will require a working knowledge consisting of the following:

An overall view of the application, how it functions, and the order of progression through the equipment rental application

Key terms used in the application such as board and ski type, level, and age brackets

Start-up and shut-down procedures of the equipment rental application Main menu and submenus of the application so that the employee may guide

customers through the equipment rental process Icons and shortcuts within the application

31

Page 33: Final Report Bernese (2)

The major functions of the application and the required fields that must be entered in order to progress

Frequently asked questions of customers and other employees so that they may help each other solve problems and complete equipment rental

How to troubleshoot the application should an error occur and need resolution How to handle emergencies within the application

The second employee group that will be using the equipment rental application is the manager. Much of the training knowledge required of in-store employees will also be required of the manager so that the manager has a deep-rooted understanding of the application and will be able to train future employees. The unique training requirements for the manager are:

The application history and reason for using the application The overall architecture of the application and how it integrates with the

information system Typical user questions that the in-store employees may have The available technical support from the vendor and how to use it Logging and solving the application problems and errors How to train the primary users and chief executives that will use the application

Although the chief executives will not be directly using the system, it is important that they are capable of generating the various reports and forms needed to make accurate business decisions. Additionally, the executives will need to be able to identify changes made in the application and system as well as how to access updates and enhancements for the application. Chief executive training requirements are:

The reason for implementing the application and how it affects the equipment rental process

The cost-benefit analysis of the application to determine the value and impact of using the application

How the application helps Bernese Alpine accomplish its business goals and mission

The key IT contact people How to handle system and application changes How to access major reports, displays, and forms so that business intelligence can

be used in decision making How to access and request updates and enhancements for the application and

system should Bernese grow and require more functionality Basic user training knowledge

32

Page 34: Final Report Bernese (2)

Changeover Strategy

For the new applications, Bernese Alpine will need to go through a system changeover and replace the old form of data input with the new applications that were developed. There are three changeover options that Bernese is able to choose from: direct cutover, parallel, and phased. These three options vary drastically in implementation strategies, but each brings a unique method to Bernese’s team that will allow each staff member to adapt to the new applications successfully.

Direct cutover is an immediate change in the old technique to the new applications. This option will reduce costs for Bernese because the staff members will not have to use two techniques at once. The staff members will be able to immediately utilize the new applications once they have been implemented. Parallel changeover is the procedure of using both processes simultaneously. This can be beneficial to Bernese in the instance that the applications do not work properly upon implementation. Bernese will be able to still take customer orders and rent equipment whether it is via the chalkboard and excel files or the new online applications. Finally, the last method of changeover is phased. Phased changeover implements the applications in stages. Each stage can be ridden of bugs that appear through implementation. This strategy limits failures and assures success at the end of the process.

Jones Consulting believes the direct cutover strategy will be the best and most feasible option for implementing the new applications at Bernese Alpine. Because Bernese lacks a previous technological information system, inputting the data into the newly developed applications will not pose a threat if the two direct cutovers occur simultaneously. Using direct cutover will benefit the in-house created applications since they were developed for noncritical situations and can be implemented seamlessly. Costs are reduced because only one system is being ran. Some costs that relate to the system is people who work with the system, operation expenses, communication costs, and hardware costs. Being able to reduce all of the costs with direct cutover will benefit a small company like Bernese beneficially. Time was another factor in the decision to choose direct cutover because the conversion is immediate. This method is also the only choice for Bernese to choose because Bernese did not have any applications before the ones created. Comparing and running two application systems at once is impossible with the outdated techniques that were previously in place. Since Jones Consulting recommends implementing the two applications during the off-season, direct changeover will allow the staff to become familiar and efficient in the application by the time the next ski season begins. The timing capabilities and flexibility that this changeover strategy gives Bernese Alpine is crucial to having successful implementation and use of the applications.

33

Page 35: Final Report Bernese (2)

Application Effectiveness

To ensure that the system and its associated applications are all performing effectively, a periodic effectiveness evaluation must be performed. The evaluation will consist of acceptance testing and benefits testing measurements compiled from data gathered from computer logs, surveys, interviews and observation of the system.

The first applications that will need to be evaluated are the equipment rental process application and the sales order processing application. To ensure that the applications are performing properly, the applications will each undergo an acceptance test that will evaluate the following:

Accuracy, completeness and timeliness of data - this can be determined by examining the computer transaction logs to see the number of recorded errors. Additionally, employees can be interviewed about the accuracy of the information. For example, are items being recorded as “in stock” when they actually are not.

User satisfaction with the application - surveys and interviews may be used to determine whether employees are satisfied with the system or not. Bernese can use these interviews to determine problems with the application and develop solutions that will alleviate employee issues.

Platform performance - the application’s platform performance may be determined by utilizing a benchmark test to evaluate the speed at which the system processes transactions.

Security adequacy - Bernese will have to require strict security measures to protect its customers and confidential business data. To evaluate security, a third-party security consultant may be selected to evaluate Bernese’s application protocols and security functions.

Training effectiveness - six months after training has ended, all employees will be required to submit a survey or partake in an interview to evaluate their own training experience. By collecting this data Bernese will be able to improve training in the future or develop new ways to train its employees.

Documentation effectiveness - to determine the effectiveness of documentation Bernese can observe whether the outputs listed in documentation are actually being executed. Additionally, error and bug reports may be examined to determine if errors are being recorded and fixed properly.

After finishing the acceptance test, a benefits test will also be performed. The goal of the benefits test is to determine if the benefits from the applications and system are the desired and expected benefits. Data measured in the benefits test is different than the data measured in the acceptance test because often benefits are more difficult to quantify. A benefits test for the applications will measure:

Number of sales - one of Bernese Alpine’s primary goals was to remain competitive and grow. This can easily be measured by observing the number of sales and rentals recorded through the applications and comparing the data to past years’ data.

34

Page 36: Final Report Bernese (2)

Accuracy of information - employees can be surveyed and interviewed to determine if the data displayed in the system matches inventory levels and rental pick-up quantities and dates.

Employee satisfaction - to determine whether the new system and applications actually make the equipment rental process and sales order process easier, employees can be survey and interviewed to assess how the system is working and if the employees feel that their job tasks are easier to perform.

Customer satisfaction - in order for Bernese to compete with other resorts on the mountain, it will need to achieve a high level of customer satisfaction and keep customers coming back. To evaluate this data, Bernese can utilize customer surveys as well as monitor the number of returning customers recorded by the system.

35

Page 37: Final Report Bernese (2)

System Documentation

Splash Screen

Windows Application

36

Page 38: Final Report Bernese (2)

Customer Information Form

37

Page 39: Final Report Bernese (2)

Product Information Form

38

Page 40: Final Report Bernese (2)

Requirements Document

Date Submitted: April 13, 2015

Application Title:

Sales Order Processing Application

Purpose: This Windows application opens a sales order processing application where the customer information, order information, payment information, and shipping information is all input according to the product selected and customer ID. Once all data is entered, a summary detailing costs will be able to be generated in the order summary information group by clicking on the “Calculate

Cost” button. Inventory and customer information can be found on a second and third form, which can be accessed by clicking the “Inventory” or “Customer” menu button.

Program Procedures:

A Windows application is used to fill out customer, shipping, and payment information. If a customer is a returning customer, the customer ID will be able to be selected from a combo box and will automatically fill in the fields requiring customer data. Additionally, a “Permanent Address” checkbox can be checked to auto-fill the shipping information fields should the customer address and billing address be the same. The order information is generated in the form in the same way as for a returning customer. The product ID is first selected from a combo box, and then product name and unit cost will be displayed. When information regarding stock quantities or pricing of inventory is needed, an inventory form allows the user to view a list of all product IDs, product names, prices, and inventory levels.

Algorithms, Processing, and Conditions:

1. The application loading triggers the display of a splash screen for a duration of 5 seconds.

2. The user first views a windows form that includes the following: text box objects for customer information, shipping information, order information, and payment information input; various labels designating the information required in each text box and combo box; combo box objects for customer and product ID information; radio buttons to select a new or returning customer and in-store pickup or online order; a checkbox for “Permanent Address”; and a “Calculate Cost” and “Submit Order” button. The Bernese Alpine logo is displayed on the left side of the form object.

3. The user begins in the customer information group. Should the customer be a new customer, the employee will select the

39

Page 41: Final Report Bernese (2)

“New Customer” radio button and then input data for the customer name, address, region, city, and postal code. If the order is for a returning customer, the employee will leave the default setting for the ‘Returning Customer” radio button as checked, and will select the customer ID from a combo box. After a selection is made, all customer information will be automatically filled in with the data from the customer text file.

4. After customer data is entered, the user moves down the page to the shipping information group. The user has the option of selecting the “Permanent Address” checkbox to auto-fill the shipping information fields based upon the data entered in the corresponding customer data fields. Should shipping information differ from the customer billing information, the user will input data for the customer name, address, region, city and postal code fields.

5. The user is also given the option to choose from “In-store Pickup” and “Online Order” radio buttons. The “In-store Pickup” button disables the shipping information data fields, as they are not necessary for order deliveries, in which the customer comes to the retail store for pickup. The “Online Order” radio button, enables these fields when selected, to allow for input of additional delivery information.

6. Once shipping information entry has been completed, the user is prompted with order information entry. Using a combo box, the user selects the product ID for the order. Selection of product ID will auto-fill the fields for product name and unit cost by referencing data from the inventory text file. The user must then input data for the quantity and size fields, as well as any additional comments the user may have about the order.

7. After order information entry has been completed, the user may calculate the total cost of the order by clicking on the “Calculate Cost” button. This button performs the following calculation to determine the total order cost: Product Price x Quantity x (1+ Sales tax (15%)). This information will be displayed in the order summary group. Should non-numerical, decimal, or null data be entered in the quantity field, the user will be prompted with an error message detailing the error.

8. The final price will be displayed next to the “Total Amount” label.

9. The last information group needing to be filled is the payment information group. Information required for order completion in this group is card type, card holder name, card number, card security code, and expiration date. Card type

40

Page 42: Final Report Bernese (2)

may be selected from a drop down list, while other fields will be entered with the use of text boxes.

10. Once payment information and all other required fields have been completed, the user will click on the “Submit Order” button. Clicking the button will initiate a Try-Catch procedure in which all text box data entered in the form will be checked to determine the data has been entered in the right format and data type associated with each field. Should data contain errors in a field, the user will be presented with an error message detailing the type of the error.

11. When data has been determined to be error-free, the order will be saved and will update the associated text files with the newly input information.

12. After this is completed, the user will be prompted with a message box, displaying that the order submission has been completed.

13. The user can select the clear menu item to clear and reset the first form object.

14. The user can select the exit menu item to close the application.

15. The user can access the inventory information form by selecting the inventory menu item. This form displays product names, IDs, prices, and quantity levels for each product.

16. The user can access the customer information from by selecting the customer menu item. This form displays all customer data pertaining to each order.

17. The user can return to the Sales Order Processing form by clicking the “Return to Application” button.

Notes and Restrictions:

1. The inventory text file is located on drive P:/2. The customer text file is located on drive P:/3. Error messages will be displayed if non-numeric data is

entered for postal code, and order quantity. 4. Error messages if decimal values are entered for quantity and

postal code.5. Error messages will be displayed if numeric data is entered

for city, region, or customer name. 6. Error messages will be displayed if there are null values in

any one of the text boxes.7. Error messages will be displayed if no selection is made in

the combo boxes.

Comments: 1. The image shown in the window should be the Bernese Alpine logo.

2. Tax rate is set to the New Zealand rate of 15%41

Page 43: Final Report Bernese (2)

Use Case Definition

PROGRAM NAME: Sales Order Processing Application

DEVELOPER: DART Consulting

DATE: April 13, 2015

1. A splash screen welcomes the user for approximately five seconds.2. The user selects if the customer is a returning customer or a new customer3. If the customer is a returning customer, the user selects the Customer ID. Once, the

Customer ID is selected it will populate the Customer First Name, Customer Last Name, Customer Street Address, Customer Region, Customer City, Customer Postal Code, and Customer Country in the customer information panel.

4. If the customer is a new customer, the user will manually fill out the Customer First Name, Customer Last Name, Customer Street Address, Customer Region, Customer City, Customer Postal Code, and Customer Country in the customer information panel.

5. If the user chooses the in store pickup option, the textboxes in the Shipping Information panel will be disabled and the user will not have to fill out the accompanying shipping information text boxes.

6. If online order Radio Button is selected, the user will manually fill out the customer’s street address, region, city, postal code, and country in the shipping information panel.

7. If the Permanent Address CheckBox is selected, the customer’s shipping information TextBoxes will automatically be generated based on the customer information panel and therefore the information will not need to be manually entered.

8. The user selects a product from the Product ID ComboBox. Both the Order Number and the Product Name TextBoxes, the Order Date Object Box, and the Unit Price label are automatically generated and masked based on product selected.

9. If a Product ID is not selected, a message box will appear saying “Please select both the Product ID and the Product Size.”

10. The user enters the size and quantity and any relevant details before calculating the cost. 11. If no quantity is selected an input error message box will appear saying “Please enter a

positive whole number.”12. If a size is not selected from the ComboBox, a message box will appear saying “Please

select both the Product ID and the Product Size.”13. The user selects either pay with card or pay with PayPal.14. The user enters the payment information, such as the Name on Card, Card Number,

Expiration Date, Security Code, and the Payment Type. 15. After payment information is entered, the user taps or clicks the calculate cost button.

The cost is calculated including the 15% tax rate. 16. Tap or click the submit order button to finalize the sales order. 17. Once the sales order has been submitted, a message box will appear saying, “The order

has been processed.”18. The transaction will be recorded in a text file. The inventory text document is updated

accordingly.

42

Page 44: Final Report Bernese (2)

19. The user taps or clicks Inventory on the File menu to display the inventory list which contains the Inventory ID, Inventory Name, Inventory Price, and Inventory Quantity.

20. The user taps or clicks Customer Info on the File menu to display the customer list which contains the Customer ID, Customer First Name, Customer Last Name, Customer Region, Customer City, Customer Postal Code, and Customer Country.

21. The user taps or clicks Clear on the File menu to clear the form.22. The user taps or clicks Exit on the File menu to close the form.

43

Page 45: Final Report Bernese (2)

Event Planning Document

Program Name:Sales Order Processing Application

Developer:DART Consulting

Object:frmSalesOrderProcessing

Date:April 13, 2015

Object Event Trigger

Event Processing

frmSalesOrderProcessing_Load Load Loads the Windows application.Verifies the customer information and product information exists and can be accessed from their text files. If the Customer ID ComboBox is selected, the customer’s information is accessed from the text file.This procedure reads the text files by each line until the text file is completed to store all customer information and product information into the array to select a Customer ID or Product ID in the Customer ID or Product ID Textboxes. If the file does not exist for Customer ID or Product ID, and error message is displayed, and the application is terminated. Customer ID ComboBox is set to focus.Set sleeping period to 5000 milliseconds.

ClearForm() Tap or Click the Clear Menu Object on the Menu Strip

The Customer Information, Order Information, Shipping Information, and Payment Information TextBoxes, label, and ComboBoxes in the frmSalesOrderProcessing are cleared. Deselect the combo boxes for Customer ID, Product ID, Size, and Payment Type.Clear the text boxes containing Customer First Name, Customer Last Name, Street Address, Region, City, Postal Code, Country, Delivery Address, Delivery Region, Delivery City, Delivery Postal

44

Page 46: Final Report Bernese (2)

Code, Delivery Country, Order Number, Product Name, Quantity, Order Details, Name on Card, Card Number, Expiration Date, and Security Code. Resets Radio buttons to Returning Customer and Online Order.Clears the Unit Price label object and sets the visible property to false. Clears the Total Cost label object and sets visible property to false. The procedure sets the focus to the Customer ID ComboBox.

mnuClear Tap or Click

Calls the Clear form procedure to clear frmSaleOrderProcessing.

mnuExit Tap or Click

Calls the close procedure to close the form and exit the application.

AddCustomerArrayByOneSlot When new customer information is entered into the Customer Information Panel

When a new customer is entered into the Customer Information Panel, an additional element is added to the array in order to store the new Customer ID, Customer First Name, Customer Last Name, Street Address, Region, City, Postal Code, and Country TextBoxes.

AddInventoryArrayByOneSlot When new product information is entered into the inventory Form

When a new product is entered, one or more elements is added to the array in order to store the new Product ID, Product Name, Product Price, and Quantity in stock.

chkPermanent_CheckChanged Select CheckBox

If the Permanent Address CheckBox is selected, data from the Customer Information panel is called to the Shipping Information panel through the FillShippingInfo() function.

btnSubmit Tap or Click

Presents a Message Box confirming the order submission, and writes the order information to the transaction text file.

cboCustomerID_SelectedIndexChanged Select Index

Calls the FillCustomerInfo() function.

FillCustomerInfo() Sub Procedure

Fills customer information when the user selects Customer ID.

45

Page 47: Final Report Bernese (2)

CallClearCustomerInfo() Function

Procedure Call

Clears out the TextBoxes for the customer information such as First Name, Last Name, Address, Region, City, Postal Code, and Country.

FillProductInfo() Sub Procedure Call

Copies the product information into the order information panel.

FillShippingInfo() Sub Procedure Call

Copies the customer information into the shipping information panel.

radReturningCustomer_CheckedChanged Select Radio Button

If the Returning Customer Radio Button is selected, enable the CustomerID ComboBox.Once the user selects the Customer ID, the FillCustomerInfo() function is called.If the Permanent Address checkbox is checked, the FillShippingInfo() function is called to fill out the customer address information in the Shipping Information panel.

radInStore_CheckedChanged Select Radio Button

Disables the TextBoxes for delivery address, delivery city, delivery country, delivery postal cost, and delivery region.Calls the ClearShippingInfo() function.

radOnlineOrder_CheckedChanged Select Radio Button

If the Online Order Radio Button is selected, then the user can enter data into the TextBoxes for delivery address, delivery city, delivery country, delivery postal cost, and delivery region.If the Online Order Radio Button and the Permanent Address checkbox is selected, then the FillShippingInfo() function.

ClearShippingInfo() Function Call Procedure

Clears the TextBoxes for Delivery Address, Delivery City, Delivery Country, Delivery Postal Cost, Delivery Region.

UpdateShippingAddress() Function Call Procedure

If the Online Order Radio Button is selected and the Permanent Address checkbox is selected, then the

46

Page 48: Final Report Bernese (2)

FillShippingInfo() function is called.txtAddress_TextChanged Sub

ProcedureUpdates the shipping address by calling the UpdateShippingAddress() function.

txtRegion_TextChanged Sub Procedure

Updates the shipping region by calling the UpdateShippingAddress() function.

txtCity_TextChanged Sub Procedure

Updates the shipping city by calling the UpdateShippingAddress() function.

txtPostalCode_TextChanged Sub Procedure

Updates the shipping postal code by calling the UpdateShippingAddress() function.

txtCountry_TextChanged Sub Procedure

Updates the shipping country by calling the UpdateShippingAddress() function.

cboProductID_SelectedIndexChanged Select Index

Calls the FillProductInfo() function to fill product information when the ProductID ComboBox is selected.

mnuProductInfo Tap or Click

Create an instance of the second Form object.Hide the first form object.Show the second form object.

btnCalculateCost Tap or Click

Confirm a quantity is enteredIf the quantity entered is numeric then the quantity is converted to an integer If the quantity is greater than zero then the total cost is calculated as decQuantityofProduct * _decProductPrice * cdecTaxRate.Convert the total cost to a currency decimal data type.Change the total cost label to true.Display error message if null value is input in quantity text box.Clear the quantity text box.Set focus to quantity text box.If the user enters a negative quantity then: Display error message if user enters a negative quantity of product.Clears the quantity TextBox.Set the focus on the quantity TextBox.

47

Page 49: Final Report Bernese (2)

If the user does not enter a numeric value then: Display error message if user does not enter numeric value.Clears the quantity TextBox.Set focus on the quantity TextBox.

48

Page 50: Final Report Bernese (2)

Windows Application Code

' Program Name: Sales Order Processing Application ' Designer: DART Consulting' Date: March 30, 2015' Purpose: This Windows application will allow Bernese Alpine to enter customer ' information, billing information, order information and shipping' information. The user can view the inventory information form stored ' on the same server. This application will calculate the entire cost ' of the order, including tax, and the processed order is stored as the text file.

Option Strict On

Public Class frmSalesOrderProcessing

' Declare global variables Public Shared _strCustomerID() As String Public Shared _strCustomerFirstName() As String Public Shared _strCustomerLastname() As String Public Shared _strStreetAdrress() As String Public Shared _strRegion() As String Public Shared _strCity() As String Public Shared _strZip() As String Public Shared _strCountry() As String Public Shared _strShippingAddress As String Public Shared _strShippingRegion As String Public Shared _strShippingCity As String Public Shared _strShippingPostalCode As String Public Shared _strShippingCountry As String Public Shared _strProductId() As String Public Shared _strProductName() As String Public Shared _strProductPrice() As String Public Shared _strProductInStockInventory() As String Public Shared _strNameOnCard As String Public Shared _strCardNumber As String Public Shared _strPaymentType As String Public Shared _strPaymentExpirationDate As String Public Shared _strPaymentSecurityCode As String Public Shared _decProductPrice As Decimal Public Shared _intInstockInventory As Integer

Public Shared _strOrderDetails As String Public Shared _intProductQuantity As Integer Public Shared _decTotalCost As Decimal Public Shared _strOrderNumber As String

' Declare constants in this application Const _cstrCustomerInfoAddress As String = "\\sbuebiz\deanastrain\Sales Order Processing Application 2\Customer.txt" Const _cstrProductInfoAddress As String = "\\sbuebiz\deanastrain\Sales Order Processing Application 2\inventory.txt" Const _cstrTransaction As String = "\\sbuebiz\deanastrain\Sales Order Processing Application 2\Transaction.txt" ' Class Level variables Public Shared _intSizeOfArray As Integer

49

Page 51: Final Report Bernese (2)

Public Shared _strInventoryItem(_intSizeOfArray) As String Private strProductId(_intSizeOfArray) As String Private decProductPrice(_intSizeOfArray) As Decimal

Private Sub ClearFrom() ' Clear customer's information, shipping, and payment information txtFirstName.Text = "" txtLastName.Text = "" txtAddress.Text = "" txtRegion.Text = "" txtRegion.Text = "" txtCity.Text = "" txtDeliveryAddress.Text = "" txtDeliveryRegion.Text = "" txtDeliveryCity.Text = "" txtDeliveryCity.Text = "" txtDeliveryPostalCode.Text = "" txtCountry.Text = "" txtNameOnCard.Text = "" txtCardNumber.Text = "" txtCardNumber.Text = "" cboPaymentType.SelectedIndex = -1 txtExpirationDate.Text = "" txtSecurityCode.Text = "" txtOrderDetails.Text = "" txtDeliveryCountry.Text = "" cboPaymentType.SelectedIndex = -1 cboProductID.SelectedIndex = -1 cboSize.SelectedIndex = -1

' Clears customer's information panel cboCustomerID.SelectedIndex = -1 txtFirstName.Text = "" txtLastName.Text = "" txtAddress.Text = "" txtRegion.Text = "" txtCity.Text = "" txtPostalCode.Text = "" txtCountry.Text = ""

' Clears payment information panel txtNameOnCard.Text = "" txtCardNumber.Text = "" cboPaymentType.SelectedIndex = -1 txtExpirationDate.Text = "" txtSecurityCode.Text = ""

' Clears shipping information panel txtDeliveryAddress.Text = "" txtDeliveryRegion.Text = "" txtDeliveryCity.Text = "" txtDeliveryPostalCode.Text = "" txtDeliveryCountry.Text = ""

50

Page 52: Final Report Bernese (2)

' Clears the Order Information panel txtOrderNumber.Text = "" cboProductID.SelectedIndex = -1 txtProductName.Text = "" cboSize.SelectedIndex = -1 txtQuantity.Text = "" txtOrderDetails.Text = "" lblTotalCost.Visible = False lblNZD.Visible = True lblTotalCost.Text = "$" lblNZD.Text = "NZD" lblUnitPriceDisplay.Text = ""

'Clear Summary Panel lblTotalCost.Text = "" lblUnitPriceSummary.Text = "" lblProductSummary.Text = "" lblQuantitySummary.Text = ""

' Set focus to the CustomerID ComboBox cboCustomerID.Focus() End Sub

Private Sub frmSalesOrderProcessing_Load(ByValsender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

' The frmSalesOrderProcessing load event reads the inventory text file and ' fills the comboBox object with the inventory items. ' The Splash screen will be displayed for 5 seconds.

Threading.Thread.Sleep(5000)

' Initialize an instance of the StreamReader object and declare variables Dim objReader As IO.StreamReader Dim intCount As Integer = 0 Dim strFileError As String = "The file is not available. Restart when the

file is available."

' Verify the customer information exists in the text file If IO.File.Exists(_cstrCustomerInfoAddress) Then 'Read the text file by each line until the all text is read objReader = IO.File.OpenText(_cstrCustomerInfoAddress) intCount = 0 Do While objReader.Peek <> -1 'Add one customer array AddCustomerArrayByOneSlot(intCount) ' Read each line of the array _strCustomerID(intCount) = objReader.ReadLine _strCustomerFirstName(intCount) = objReader.ReadLine _strCustomerLastname(intCount) = objReader.ReadLine _strStreetAdrress(intCount) = objReader.ReadLine _strRegion(intCount) = objReader.ReadLine _strCity(intCount) = objReader.ReadLine _strZip(intCount) = objReader.ReadLine _strCountry(intCount) = objReader.ReadLine intCount += 1

51

Page 53: Final Report Bernese (2)

Loop ' Close the object reader objReader.Close() Dim strCustomerID As String ' Add all customer ID's into the CustomerID ComboBox For Each strCustomerID In _strCustomerID cboCustomerID.Items.Add(strCustomerID) Next

Else ' Display the error message if the text file does not exist and close ' application MsgBox(strFileError, MsgBoxStyle.Critical, "Error") Close() End If ' Verify product text file exist If IO.File.Exists(_cstrProductInfoAddress) Then ' Read the text file by each line until all text is read objReader = IO.File.OpenText(_cstrProductInfoAddress) intCount = 0 Do While objReader.Peek <> -1 ' Add one customer array AddInventoryArrayByOneSlot(intCount) ' Read each line of array _strProductName(intCount) = objReader.ReadLine _strProductId(intCount) = objReader.ReadLine _strProductPrice(intCount) = objReader.ReadLine _strProductInStockInventory(intCount) = objReader.ReadLine intCount += 1 Loop ' Close the object reader objReader.Close()

Dim strProductId As String ' Add all Product ID into the ProductID ComboBox For Each strProductId In _strProductId cboProductID.Items.Add(strProductId) Next objReader.Close() Else ' Display error message if the file does not exist and then close the ' application MsgBox(strFileError, MsgBoxStyle.Critical, "Error") Close() End If

' Set up masked format for TextBoxes Me.txtExpirationDate.HidePromptOnLeave = True Me.txtSecurityCode.HidePromptOnLeave = True Me.txtCardNumber.HidePromptOnLeave = True Me.txtPostalCode.HidePromptOnLeave = True Me.txtDeliveryPostalCode.HidePromptOnLeave = True

End Sub

52

Page 54: Final Report Bernese (2)

Private Sub AddCustomerArrayByOneSlot(ByVal intCount As Integer) ' Additional arrays can be added for new customers ReDim Preserve _strCustomerID(intCount) ReDim Preserve _strCustomerFirstName(intCount) ReDim Preserve _strCustomerLastname(intCount) ReDim Preserve _strStreetAdrress(intCount) ReDim Preserve _strRegion(intCount) ReDim Preserve _strCity(intCount) ReDim Preserve _strZip(intCount) ReDim Preserve _strCountry(intCount)

End Sub

Private Sub AddInventoryArrayByOneSlot(ByVal inCount As Integer) ' Additional arrays can be added for new inventory items or products ReDim Preserve _strProductName(inCount) ReDim Preserve _strProductId(inCount) ReDim Preserve _strProductPrice(inCount) ReDim Preserve _strProductInStockInventory(inCount)

End Sub

Private Sub chkPermanent_CheckedChanged(sender As Object, e As EventArgs) Handles chkPermanent.CheckedChanged

' Automatically fill the shipping information TextBoxes when the user checks ' the Permanent Address CheckBox and Online Order Radio Button

If chkPermanent.Checked Then If radOnlineOrder.Checked Then FillShippingInfo() End If Else ClearShippingInfo() End If

End Sub

Private Sub AutoUpdateCustomerInfo(ByVal objWriter As IO.StreamWriter, ByVal intCount As Integer) ' When the user inputs the new customer information, the customer text file ' is updated accordingly

objWriter.WriteLine(_strCustomerID(intCount)) objWriter.WriteLine(_strCustomerFirstName(intCount)) objWriter.WriteLine(_strCustomerLastname(intCount)) objWriter.WriteLine(_strStreetAdrress(intCount)) objWriter.WriteLine(_strRegion(intCount)) objWriter.WriteLine(_strCity(intCount)) objWriter.WriteLine(_strZip(intCount)) objWriter.WriteLine(_strCountry(intCount))

End Sub

Private Sub AutoUpdateProductInfo(ByVal objWriter As IO.StreamWriter, ByVal intCount As Integer) ' Update the product information to the inventory text file

53

Page 55: Final Report Bernese (2)

objWriter.WriteLine(_strProductId(intCount)) objWriter.WriteLine(_strProductName(intCount)) objWriter.WriteLine(_strProductPrice(intCount)) objWriter.WriteLine(_strProductInStockInventory(intCount))

End Sub

Private Sub btnCalculateCost_Click(sender As Object, e As EventArgs) Handles btnCalculateCost.Click ' The btnCalculate even handler calculates the estimated cost of the order ' based on the quantity and type of product

' Declare variables Dim intQuantityOfProduct As Decimal Dim decTotalCost As Decimal Const cdecTaxRate As Decimal = 1.15D ' Did user choose the Product ID If cboProductID.SelectedIndex <> -1 And cboSize.SelectedIndex <> -1 Then ' Did user enter a numeric value If IsNumeric(txtQuantity.Text) Then Try intQuantityOfProduct = Convert.ToInt32(txtQuantity.Text)

' Check if the quantity entered is a positive integer If intQuantityOfProduct > 0 Then ' Check if the company has enough inventory for the order If intQuantityOfProduct < _intInstockInventory Then ' Calculates the total cost of the order decTotalCost = intQuantityOfProduct * _decProductPrice *_

cdecTaxRate lblTotalCost.Text = decTotalCost.ToString("C") lblUnitPriceSummary.Text = _decProductPrice.ToString("C") lblProductSummary.Text = txtProductName.Text.ToString lblQuantitySummary.Text = intQuantityOfProduct.ToString lblTotalCost.Visible = True lblUnits.Visible = True lblUnitPriceSummary.Visible = True lblNZD2.Visible = True lblNZD.Visible = True lblProductSummary.Visible = True lblQuantitySummary.Visible = True Else MsgBox("There is not enough inventory for this order. We Only have " & _intInstockInventory.ToString() & "

available.", MsgBoxStyle.Exclamation, "Warning") End If Else 'Display error message if user enters a negative quantity MsgBox("You entered " & intQuantityOfProduct.ToString() & ".

Please enter a positive whole number", MsgBoxStyle.Critical, "Input Error")

txtQuantity.Text = "" txtQuantity.Focus() End If Catch Exception As FormatException MsgBox("You just entered " & txtQuantity.Text & ", which is not a

54

Page 56: Final Report Bernese (2)

whole number. Please enter a positive whole number", MsgBoxStyle.Critical, "Input Error")

End Try Else ' Display error message if user enters a decimal MsgBox("Please enter a positive whole number", MsgBoxStyle.Critical,

"Input Error") txtQuantity.Focus() txtQuantity.Text = "" End If Else ' Display error message if user does not select ProductID MsgBox("Please select both the Product ID and the Product Size ",

MsgBoxStyle.Critical, " Error") End If

End Sub

Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles _ btnSubmit.Click ' Check input validation ' Submit the order ' Update either the customer information text file and/or inventory text file

' Declare the variables Dim intCountCustomer As Integer = _strCustomerID.Length + 1 Dim strNewCustomerId As String Dim blnInputInvalid As Boolean = True Dim objWriterCustomer As New IO.StreamWriter(_cstrCustomerInfoAddress, True) Dim objWriterTransaction As New IO.StreamWriter(_cstrTransaction, True) Dim inCountInventory As Integer = 0

' Generate new CustomerID for the new customer strNewCustomerId = "C" & intCountCustomer.ToString

' Check input validation If txtFirstName.Text = "" Then

blnInputInvalid = False End If If txtLastName.Text = "" Then blnInputInvalid = False End If If txtAddress.Text = "" Then blnInputInvalid = False End If If txtRegion.Text = "" Then blnInputInvalid = False End If If txtCity.Text = "" Then blnInputInvalid = False End If If txtPostalCode.Text = "" Then blnInputInvalid = False End If

55

Page 57: Final Report Bernese (2)

If txtCountry.Text = "" Then blnInputInvalid = False End If If radOnlineOrder.Checked Then If txtDeliveryAddress.Text = "" Then blnInputInvalid = False End If If txtDeliveryRegion.Text = "" Then blnInputInvalid = False End If If txtDeliveryPostalCode.Text = "" Then blnInputInvalid = False End If If txtDeliveryCountry.Text = "" Then blnInputInvalid = False End If End If If cboProductID.Text = "" Then blnInputInvalid = False End If If txtProductName.Text = "" Then blnInputInvalid = False End If If cboSize.Text = "" Then blnInputInvalid = False End If If txtQuantity.Text = "" Then blnInputInvalid = False End If If txtNameOnCard.Text = "" Then blnInputInvalid = False End If If txtCardNumber.Text = "" Then blnInputInvalid = False End If If cboPaymentType.Text = "" Then blnInputInvalid = False End If If txtExpirationDate.Text = "" Then blnInputInvalid = False End If If txtSecurityCode.Text = "" Then blnInputInvalid = False End If If blnInputInvalid Then ' Updates customer information text file after clicking submit If radNewCustomer.Checked Then objWriterCustomer.WriteLine(strNewCustomerId) objWriterCustomer.WriteLine(txtFirstName.Text) objWriterCustomer.WriteLine(txtLastName.Text) objWriterCustomer.WriteLine(txtAddress.Text) objWriterCustomer.WriteLine(txtRegion.Text) objWriterCustomer.WriteLine(txtCity.Text) objWriterCustomer.WriteLine(txtPostalCode.Text) objWriterCustomer.WriteLine(txtCountry.Text)

56

Page 58: Final Report Bernese (2)

End If

' Updates the text file with transaction information objWriterTransaction.WriteLine(txtOrderNumber.Text) If radReturningCustomer.Checked Then objWriterTransaction.WriteLine(cboCustomerID.Text) Else objWriterTransaction.WriteLine(strNewCustomerId) End If objWriterTransaction.WriteLine(cboProductID.Text) objWriterTransaction.Write(txtProductName.Text) objWriterTransaction.WriteLine(txtQuantity.Text) objWriterTransaction.WriteLine(lblUnitPriceDisplay.Text) objWriterTransaction.WriteLine(lblTotalCost.Text) objWriterTransaction.WriteLine(txtDeliveryAddress.Text) objWriterTransaction.WriteLine(txtDeliveryPostalCode.Text) objWriterTransaction.WriteLine(txtDeliveryRegion.Text) objWriterTransaction.WriteLine(txtDeliveryPostalCode.Text) objWriterTransaction.WriteLine(txtDeliveryCity.Text) objWriterTransaction.WriteLine(txtNameOnCard.Text) objWriterTransaction.WriteLine(txtCardNumber.Text) objWriterTransaction.WriteLine(cboPaymentType.Text) objWriterTransaction.WriteLine()

' Display Message Box to confirm the transaction has been successful MsgBox("The order has been processed", MsgBoxStyle.Information, " Order

Confirmation") ' Clears the form ClearFrom() Else ' Display Message Box if input fields are missing MsgBox("There are some fields are missing", MsgBoxStyle.Exclamation, "Invalid Input") End If objWriterCustomer.Close() objWriterTransaction.Close()

End Sub

Private Sub radInStore_CheckedChanged(sender As Object, e As EventArgs) Handles _ radInStore.CheckedChanged ' If the user selects the in store pickup option, the user does not need to ' fill out the shipping information If radInStore.Checked Then txtDeliveryAddress.Enabled = False txtDeliveryCity.Enabled = False txtDeliveryCountry.Enabled = False txtDeliveryPostalCode.Enabled = False txtDeliveryRegion.Enabled = False ClearShippingInfo() chkPermanent.Checked = False chkPermanent.Enabled = False Else ' Enables the Permanent Address CheckBox and shipping information panel ' TextBoxes

57

Page 59: Final Report Bernese (2)

chkPermanent.Enabled = True txtDeliveryAddress.Enabled = True txtDeliveryCity.Enabled = True txtDeliveryCountry.Enabled = True txtDeliveryPostalCode.Enabled = True txtDeliveryRegion.Enabled = True txtAddress.Enabled = True End If

End Sub

Private Sub radReturningCustomer_CheckedChanged(sender As Object, e As EventArgs) _ Handles radReturningCustomer.CheckedChanged ' Automatically fills out the returning customer's information TextBoxes If radReturningCustomer.Checked Then txtFirstName.Enabled = False txtLastName.Enabled = False txtCity.Enabled = False txtRegion.Enabled = False txtCountry.Enabled = False txtPostalCode.Enabled = False txtAddress.Enabled = False

FillCustomerInfo() If chkPermanent.Checked Then FillShippingInfo() End If Else ' Clear customer information and fill shipping information ClearCustomerInfo() FillShippingInfo() ' Enables the CustomerID ComboBox cboCustomerID.Enabled = False cboCustomerID.SelectedIndex = -1 End If End Sub

Private Sub cboCustomerID_SelectedIndexChanged(sender As Object, e As EventArgs)_ Handles cboCustomerID.SelectedIndexChanged ' Automatically fills out the customer information TextBoxes FillCustomerInfo()

End Sub

Private Sub FillCustomerInfo() ' Automatically fills customer information when the user selects CustomerID ' Declares the variable for intCount for CustomerID ComboBox

' Declare variables Dim intCount As Integer = cboCustomerID.SelectedIndex

' Check if returning customer Radio Button is checked If radReturningCustomer.Checked Then If intCount <> -1 Then txtFirstName.Text = _strCustomerFirstName(intCount)

58

Page 60: Final Report Bernese (2)

txtLastName.Text = _strCustomerLastname(intCount) txtAddress.Text = _strStreetAdrress(intCount) txtRegion.Text = _strRegion(intCount) txtCity.Text = _strCity(intCount) txtPostalCode.Text = _strZip(intCount) txtCountry.Text = _strCountry(intCount) End If End If

End Sub

Private Sub FillProductInfo() ' Creates sub procedure to fill out the product information

' Declare variables Dim intCount As Integer = cboProductID.SelectedIndex

' If a ProductID is selected, Product Information is automatically filled out If intCount <> -1 Then txtProductName.Text = _strProductName(intCount) _intInstockInventory = _ Convert.ToInt32(_strProductInStockInventory(intCount)) _decProductPrice = Convert.ToDecimal(_strProductPrice(intCount)) lblUnitPriceDisplay.Text = _decProductPrice.ToString("c") lblUnitPriceDisplay.Visible = True txtOrderNumber.Text = "P" & (Rnd(9999999) * 10000000).ToString

End If

End Sub

Private Sub FillShippingInfo() ' Creates a sub procedure to fill out shipping information TextBoxes txtDeliveryAddress.Text = txtAddress.Text txtDeliveryRegion.Text = txtRegion.Text txtDeliveryCity.Text = txtCity.Text txtDeliveryPostalCode.Text = txtPostalCode.Text txtDeliveryCountry.Text = txtCountry.Text End Sub Private Sub ClearCustomerInfo() ' Clears the customer information TextBoxes for new customers txtFirstName.Clear() txtLastName.Clear() txtAddress.Clear() txtRegion.Clear() txtCity.Clear() txtPostalCode.Clear() txtCountry.Clear()

End Sub

Private Sub txtAddress_TextChanged(sender As Object, e As EventArgs) Handles _ txtAddress.TextChanged ' Updates the shipping address

59

Page 61: Final Report Bernese (2)

UpdateShippingAddress()

End Sub

Private Sub radOnlineOrder_CheckedChanged(sender As Object, e As EventArgs) Handles radOnlineOrder.CheckedChanged ' When both the Permanent Address CheckBox and Online Order Radio Buttons are ' checked, the shipping address information is automatically filled into the ' corresponding TextBoxes If chkPermanent.Checked Then If radOnlineOrder.Checked Then FillShippingInfo() End If End If

End Sub

Private Sub ClearShippingInfo() ' Sub procedure to clear the shipping information TextBoxes txtDeliveryAddress.Clear() txtDeliveryCity.Clear() txtDeliveryCountry.Clear() txtDeliveryPostalCode.Clear() txtDeliveryRegion.Clear() End Sub

Private Sub UpdateShippingAddress() ' Sub procedure to update the shipping address TextBoxes If radOnlineOrder.Checked Then If chkPermanent.Checked Then FillShippingInfo() End If End If End Sub

Private Sub txtRegion_TextChanged(sender As Object, e As EventArgs) Handles _ txtRegion.TextChanged ' Customer Region TextBox and Shipping Region TextBox are filled ' simultaneously UpdateShippingAddress()

End Sub

Private Sub txtCity_TextChanged(sender As Object, e As EventArgs) Handles _ txtCity.TextChanged ' Customer City TextBox and Shipping City TextBox are filled simultaneously UpdateShippingAddress() End Sub

Private Sub txtPostalCode_TextChanged(sender As Object, e As EventArgs) ' Customer Postal Code TextBox and Shipping Postal Code TextBox are filled ' simultaneously UpdateShippingAddress()

60

Page 62: Final Report Bernese (2)

End Sub

Private Sub txtCountry_TextChanged(sender As Object, e As EventArgs) Handles _ txtCountry.TextChanged ' Customer Country TextBox and Shipping Country TextBox are filled ' simultaneously UpdateShippingAddress()

End Sub

Private Sub cboProductID_SelectedIndexChanged(sender As Object, e As EventArgs) _ Handles cboProductID.SelectedIndexChanged ' Fill out the Product information TextBoxes when a ProductID from the ' ComboBox is selected txtOrderNumber.Enabled = False txtProductName.Enabled = False

FillProductInfo() End Sub

Private Sub mnuProductInfo_Click(sender As Object, e As EventArgs) Handles _ mnuProductInfo.Click

' Loads the Inventory Information form Dim frmSecond As New frmProductInfo Hide() frmSecond.ShowDialog()

End Sub

Private Sub mnuClear_Click(sender As Object, e As EventArgs) Handles _ mnuClear.Click ' Clears frmSalesOrderProcessing ClearFrom()

End Sub

Private Sub mnuExit_Click(sender As Object, e As EventArgs) Handles mnuExit.Click ' Closes the application ' When the application is closed, the customer array and product array are ' written back into the text files Dim objUpdateProductTextFile As New IO.StreamWriter(_cstrProductInfoAddress,

True) Dim intCount As Integer

' Updates the product information text file For intCount = 0 To _strProductId.Length - 1 AutoUpdateProductInfo(objUpdateProductTextFile, intCount) Next objUpdateProductTextFile.Close() ' Closes the application Close()

End Sub

Private Sub mnuCustomerInfo_Click(sender As Object, e As EventArgs) Handles _

61

Page 63: Final Report Bernese (2)

mnuCustomerInfo.Click ' Loads the Customer Information form Dim frmThird As New frmCustomerInfo Hide() frmThird.ShowDialog()

End Sub

Private Sub radNewCustomer_CheckedChanged(sender As Object, e As EventArgs)_ Handles radNewCustomer.CheckedChanged ' Creates the customer information If radNewCustomer.Checked Then cboCustomerID.Enabled = False txtFirstName.Enabled = True txtLastName.Enabled = True txtCountry.Enabled = True txtAddress.Enabled = True txtRegion.Enabled = True txtPostalCode.Enabled = True txtCity.Enabled = True Else cboCustomerID.Enabled = True End If

End Sub

End Class

62

Page 64: Final Report Bernese (2)

Customer Information Form Code

Public Class frmCustomerInfo

Private Sub frmCustomerInfo_Load(sender As Object, e As EventArgs) Handles _ MyBase.Load ' This sub form to inform the customer information including ' Customer ID, Last Name, First Name, Address, region, postal code, and country Dim intCount As Integer For intCount = 0 To frmSalesOrderProcessing._strCustomerID.Length - 1 lstCustomerID.Items.Add(frmSalesOrderProcessing._strCustomerID(intCount)) lstFirstName.Items.Add(frmSalesOrderProcessing._strCustomerFirstName(intCount)) lstLastName.Items.Add(frmSalesOrderProcessing._strCustomerLastname(intCount)) lstRegion.Items.Add(frmSalesOrderProcessing._strRegion(intCount)) lstCity.Items.Add(frmSalesOrderProcessing._strCity(intCount)) lstPostalCode.Items.Add(frmSalesOrderProcessing._strZip(intCount)) lstCountry.Items.Add(frmSalesOrderProcessing._strCountry(intCount)) Next End Sub

Private Sub btnAccept_Click(sender As Object, e As EventArgs) Handles _ btnReturnToApplication.Click Dim frmFirst As New frmSalesOrderProcessing Hide() frmFirst.ShowDialog() End SubEnd Class

Product Information Form Code

Public Class frmProductInfo ' This sub form to inform the inventory information including ProductID, Product ' Name, and Unit Price

Private Sub frmProductInfo_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim intCount As Integer For intCount = 0 To frmSalesOrderProcessing._strProductId.Length - 1 lstProductID.Items.Add(frmSalesOrderProcessing._strProductId(intCount)) lstProductName.Items.Add(frmSalesOrderProcessing._strProductName(intCount)) lstPriceProductDisplay.Items.Add(frmSalesOrderProcessing._strProductPrice(intCount)) LstInStockInventory.Items.Add(frmSalesOrderProcessing._strProductInStockInventory(intCount)) Next End Sub

Private Sub btnAccept_Click(sender As Object, e As EventArgs) Handles btnReturnToApplication.Click ' Load back to the Sales Order Processing Form Dim frmFirst As New frmSalesOrderProcessing Hide() frmFirst.ShowDialog() End SubEnd Class

63

Page 65: Final Report Bernese (2)

Jones Consulting Inc. Post-Implementation Review

While working with Bernese Alpine’s implementation project, Jones Consulting created a formal proposal document, a sales order processing windows application, and a PowerPoint presentation of our proposed strategy to present Zack and Sean.

Formal Proposal Document

In our analysis Bernese Alpine’s operations, we determined that Bernese should purchase a software package, develop a Web-based system, and integrate a horizontal application. Amanda Washburn wrote the analysis discussing the recommended development strategy, decision to implement a Web-based system, and why Bernese Alpine would require a horizontal rather than a vertical application. Thien Duong researched two software packages: Microsoft Dynamics GP and Sage ERP X3. From the research, Thien created a weight alternative matrix to evaluate the strengths and weaknesses of each package. Ryan Oehler and Deana Strain collaborated on the Request for Proposal. In the Request for Proposal, they described the project overview, the design requirements, technical and functional requirements, project duration, submission information, basis of award of contract, and the anticipated selection schedule.

We created preliminary storyboards for the sales order processing windows application and the equipment rental web application. We created these graphic user interfaces using PowerPoint storyboarding features. Amanda Washburn was in charge of designing and creating the GUI for the equipment rental application. She developed a three paged procedure to rent equipment online. Deana Strain developed and designed a singular sales order processing windows application in which a store employee is able to process customer orders. Thien Duong wrote the functionality description and validation checks for the equipment rental web application GUI that Amanda created. For the windows application, Ryan Oehler wrote both the functionality description and the validation checks. Ryan discussed the potential exception reports that Bernese could expect as well as created an example from that.

When working on the system implementation portion of the formal proposal document, Deana and Amanda simultaneously worked on the documentation and changeover strategy. The documentation included various sections such as program, system, operations, and user. For the changeover strategy, Deana and Amanda suggested a direct cutover approach where once the new applications are implemented, the previous techniques are immediately disregarded. Ryan discusses the various testing techniques while Thien created a unit test case. Ryan also described the training required for the employees for the new applications as well as how the applications will be evaluated for effectiveness.

64

Page 66: Final Report Bernese (2)

After the formal proposal document was created Deana, Amanda, and Ryan thoroughly edited the document for quality assurance purposes.

Sales Order Processing Windows Application

The sales order processing windows application was developed using Visual Studio 2012. Amanda created the graphical user interface, while Deana created the inventory and customer forms. Together they both developed a splash screen that displays for five seconds before the application begins. Thien wrote 700 lines of code for the application while Amanda and Deana added additional lines and checked for grammatical errors. Ryan created the requirements document and the test case and edited the use case definition. Amanda and Deana collaborated on the event planning document and the use case definition.

PowerPoint Presentation

The PowerPoint presentation was a group effort by the entire team. Each member contributed their thoughts and ideas into the structure and development of the presentation. Changes were made after visiting the Professional Development Center on April 22, 2015.

Lessons learned

Working for Bernese Alpine Unlimited was a unique and challenging environment for us. Over the course of this project, we have grown as both consultants and developers. This project opened us up to new lessons such as careful planning, evaluating alternatives, finding solutions, and critical thinking. We use all the technical information we learned throughout the semester and tailored it to our solution.

At the beginning of the project, we needed to make sure we were coordinating activities efficiently and understood what the risks were. In planning the Bernese project we developed a clear outline, defined our roles and responsibilities, opened the lines of communications between team members, defined what the deliverables were and what the expectations were to be expected of the deliverables, and created a definition of standards to oversee all project activities.

Future Recommendations

After finalizing this project, we have a few recommendations for the future. During the project scenarios unexpectedly appear. We learned that we need to be flexible to be able to overcome issues. We never planned for issues to occur and it would throw us off. Having a plan for future issues will enable the team to solve potential problems efficiently. Technology is always changing and therefore employees need to be consistently trained. In addition, when a new update is available research needs to be done before installing the update to ensure it runs properly.

65

Page 67: Final Report Bernese (2)

Bibliography

"Top 20 ERP Software Vendors Report." Top 20 ERP Software Vendors Report. N.p., n.d. Web. 18 Mar. 2015. http://www.compareerpsoftware.com/top-20-erp-software-vendors-v4-1.php?track=2813&traffic=GoogleSearch&keyword=erp

Tsai, Wen-Hsien.“A Study of the Selection Criteria for Enterprise Resource Planning Systems.” N.p. 2009. Print.

Bennett, Stacy. "Microsoft Dynamics Review." Reviews.com. N.p., 9 Mar. 2015. Web. 21 Jan. 2015. http://www.reviews.com/crm-software/microsoft-dynamics/

"Put Your Customers First." Microsoft Dynamics. N.p., n.d. Web. 20 Mar. 2015. http://www.microsoft.com/en-us/dynamics/default.aspx?CR_CC=200470741&WT.mc_id=DynGBSEM_US_BING&DYNCRM-BING&WT.srch=1

"Sage ERP X3 | Fast, Simple, Flexible Enterprise Resource Planning Solution." Sage ERP X3. N.p., n.d. Web. 20 Mar. 2015. http://www.sageerpx3.com/#

Shelly, Gary B., Thomas J. Cashman, and Harry J. Rosenblatt. Systems Analysis and Design. Boston: Course Technology, 2014. Print.

"Microsoft Dynamics Pricing List." Microsoft Dynamics. N.p., n.d. Web. 20 Mar. 2015. http://www.microsoft.com/en-us/dynamics/pricing-list.aspx

66