Birdie Planning Report

  • 355 views
Uploaded on

My planning report for Birdie, my senior project in college.

My planning report for Birdie, my senior project in college.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
355
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. CIS 591 Planning Report: ‘Birdie’ Benjamin Kreeger (816) 806-7096 kreeger545@missouristate.edu
  • 2. Table of Contents Part I: Background ...............................................................................3 Company information 3 System name and brief description 3 System stakeholders 3 Description of existing system 4 Initial technological assumptions 5 Implemented use case: define customer 6 Initial requirement assumptions 9 Event table 9 Problem domain classes 10 Development methodology & architecture 10 Ultimate disposition of project 10 Part II: System Benefits .....................................................................11 Tangible benefits of new system 11 Intangible benefits of new system 11 Part III: Project Schedule & Costs ....................................................13 Phases, activities, tasks, and person-hours 13 Project Costs 16 Part IV: Feasibility Study ...................................................................18 Organizational feasibility 18 Cultural feasibility 18 Technological feasibility 18 Schedule feasibility 18 Resource feasibility 18 Economic feasibility 19 Overall feasibility 19 Part V: Project Monitoring / Reporting to Date ...............................20 2 CIS591: Planning Report
  • 3. Part I: Background Part I: Background Company information National Marketing Resources Darrin Clawson, Chief Information Officer 341 W. Washington dclawson@nmrdirect.com Kearney, MO 64060 (816) 903-6177 National Marketing Resources is a company operating in the consulting and marketing industries, and offers its various services to entrepreneurs, investors, and small business owners. They’re a “sister company” to Professional Marketing International, which operates out of Utah. Together (operations between the two companies are highly integrated) they employ close to 300 between Kearney, MO; Provo, UT; and a satellite sales office in Phoenix, AZ. System name and brief description The information system I will be planning and developing for National Marketing Resources (“NMR”) has been given the working name Birdie, simply for the reason that NMR enjoys naming its systems after golf jargon. It is a sales leads tracking system that computerizes the process of obtaining and categorizing sales leads from various marketing campaigns and then forwarding them to marketers, who then follow through on those leads and upgrade their statuses to accounts. As leads come into our company, either through a mass import or an individual lead, it comes in through another company, which is the lead source. That source also has several promotions, and a lead is classified under that promotion as well. Each promotion has various marketing campaigns, which could be surveys, infomercials, etc., and leads care classified under those categories and placed into a buyer pipeline or a non-buyer pipeline. This classification taxonomy is called the lead path. As the leads are imported, they’re each classified into lead paths for reporting purposes. Those leads each get passed down through management to our various sales companies, which each have divisions, and each division has multiple smaller teams, each team with a handful of marketers. Each manager at each level assigns their leads where they want them, and marketers log in to the system to retrieve those leads and modify their statuses and details as needed. Management at any level will pull a plethora of reports based on this information to determine how much marketers are selling, how many calls they’re making, how profitable each sales company/team/division is, and so forth. System stakeholders The owners of the company (Steve Thorne and Boyd Kanenwisher) are both stakeholders in this project, obviously, as they will get reports with information based on sales leads statistics. Sales managers are also stakeholders as they and their marketers will be prime users of this software. The Processing department will also have a stake in the system as they’re the one processing leads and forwarding them to the marketers. The system will only be used internally, so there are no external stakeholders. CIS591: Planning Report 3
  • 4. Part I: Background Description of existing system The existing system is known as LINKS. It allows for the importing of sales leads and the managing of those leads, including forwarding them to marketers and maintaining the status of those leads. It imports data from various sales campaigns run by our clients, and also allows for manual input of leads as well. Those leads are then placed into a list and allocated to several of our individual sales companies, and then into teams, and on to individual marketers as well. LINKS only runs on local Windows client workstations. If a user wishes to use the client software but they don’t have it installed on their workstation, they must first have all the prerequisite software installed (including report viewers, .NET Frameworks, etc). In the interest of accessing this system from any computer, regardless of operating system and location, this system can be modified and written as a web application with added functionality. With the right framework and architecture, the program can be built for easy expansion in the future as well. In speaking with Darrin Clawson, NMR’s CIO, I learned that the demand for an iPhone or mobile phone app is growing within the company. Many associates have iPhones, or other phones with the ability to browse the web. Instead of locking down the software to run on iPhones (as would be the case with a native iPhone application), we could instead have one 4 CIS591: Planning Report
  • 5. Part I: Background web application that works the same on modern mobile phones as it does in a desktop web browser. Initial technological assumptions The new system will be built using the Django web framework, which is built upon Python. It will use a MySQL database backend. The design will be done using object-oriented design principles (Django uses object-relational mapping between the Python code and the SQL database). As Django loosely follows the model-view-controller pattern, design will be in three layers. Initially the system will not be integrated with the existing LINKS system. This functionality could be added later. This project will perform some of the same functionality as LINKS, while adding others as well, and perhaps most importantly, the ability to expand to other functions much more easily. I’m challenging myself some initially with the technology I’ll be using for this project. I’m already quite familiar with the workings of MySQL, and I’m somewhat familiar with web frameworks (I’ve done some work with Ruby on Rails before), but this will be the first time I’ve ever used a Python-based web framework. I don’t anticipate many problems with this, CIS591: Planning Report 5
  • 6. Part I: Background however, as Python compliments Java & C# (languages I’m familiar with) more than Ruby does. I’m currently reading The Definitive Guide to Django, which was written by one of the creators of Django, and I have another book on my shelf as well titled Practical Django Projects, which details using development methodologies when creating a Django web application. The online documentation for the language is also very robust and descriptive. Any snags I may run into while coding the project should be easily resolved. Implemented use case: define customer The use case I implemented is the define customer use case. The screenshot you see above is a form from a basic administration page allowing changes to a customer in the database. When a customer’s information has been edited and successfully updated in the database, the user is sent back to a list of all available customers from the database, along with a banner at the top telling them their update is complete. 6 CIS591: Planning Report
  • 7. Part I: Background The code representing my database’s connection information is defined in my Django site’s master settings file, settings.py. That database connection code is shown below. DATABASE_ENGINE = 'mysql' DATABASE_NAME = 'birdie' DATABASE_USER = 'birdie' DATABASE_PASSWORD = 'birdie' DATABASE_HOST = '/tmp/mysql.sock' DATABASE_PORT = '' The SQL command is being executed behind-the-scenes (Django’s database API handles that for me using object-relational mapping). The model (and database structure) is defined in the models.py file as shown below. CIS591: Planning Report 7
  • 8. Part I: Background from django.db import models from django.contrib.localflavor.us.models import USStateField, PhoneNumberField class Customer(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) address = models.CharField(max_length=100) city = models.CharField(max_length=60) state = USStateField() zip = models.CharField(max_length=10) country = models.CharField(max_length=50) phone = PhoneNumberField() def __unicode__(self): return '%s %s' % (self.first_name, self.last_name) The database structure is below, along with the data from the database. The result is shown in PHPMyAdmin. 8 CIS591: Planning Report
  • 9. Part I: Background Initial requirement assumptions Event table Event Trigger Source Use Case Response Destination Processing wants to Management New lead source Processing rep Define lead source Lead source create a lead source Processing Processing wants to Management enter a lead in New lead Processing rep Create new lead Lead Processing manually Marketers Processing wants to Management import a batch of Batch lead import Processing rep Import external leads Leads Processing leads Marketers Processing wants to Management New promotion Processing rep Define promotion Promotion create a promotion Processing Processing wants to New marketing Define marketing Management Processing rep Marketing campaign create a campaign campaign campaign Processing Processing wants to Batch assign lead Assign leads to lead Management classify leads to a Processing rep Categorized lead(s) paths path Marketers path Processing chooses Sales company Distribute leads to Leads assigned to sales company to Assign leads Processing rep management sales company sales company receive leads Marketers Sales company management wants Sales company Distribute leads to Leads assigned to Division management Assign leads to distribute leads to management division division Marketers divisions Division management Distribute leads to Leads assigned to Sales teams wants to distribute Assign leads Division management sales team sales team Marketers leads to teams Sales teamleaders want to assign leads Assign leads to Leads assigned to Assign leads Sales teamleaders Marketers to individual marketers marketers marketers Marketer follows up Upgrade/downgrade Lead with changed Marketers Lead properties Marketer on lead lead status status Sales teamleaders Time to archive Updated archived ‘End of day’ Archive inactive leads inactive leads leads list Any level of Management (any Customized lead Management (any management wants a Report request Generate lead report level) report level) lead report Any level of management wants a Management (any Generate marketer Customized marketer Management (any Report request report on certain level) report performance report level) marketer(s) Sales company management wants a Sales company Generate overall Master performance Sales company Report request report on overall management report report management performance Processing needs a Export leads Processing rep Export lead list Exported lead data Processing rep master list of leads Processing needs to Marketers add or change a Edit customer Processing rep Define customer Modified customer Management (any customer’s details level) CIS591: Planning Report 9
  • 10. Part I: Background Problem domain classes • Lead Source • Promotion • Pipeline • Sales Company • Division • Team • Marketer • Lead • Product • Event • Order Development methodology & architecture I’ll be using the Unified Process as the development methodology for this project. UML diagrams will be built based on a master list of use cases as well (both requirements and design models). The project, in accordance with the coding principles of Django, will follow the model-view- controller architecture. Django actually uses a slightly different variant of this architecture, called the model-template-view architecture. The Django framework handles the controller layer using a URL configuration file for the project, and views become the business logic of the project. These views render templates, which are the presentation layer. Models are still the database logic and schema. Ultimate disposition of project My sponsor (Darrin Clawson) will be somewhat involved in the project. He and the chief software architect of the current LINKS system (Michael Battey) will offer guidance as to the elementary business processes I’ll need to map out. It’s more of a prototype system based on the idea of a web-based retooling to the existing system. Our office has been incorporating some Macs into daily operations lately, and more and more associates of the companies are using mobile phones with full-fledged Internet browsers. They’ll need a way to access functions of the system from their non-Windows computers, or even their mobile phones. This system should serve as a prototype of how that system can work, although whether it will be implemented once the project is completed is doubtful. I have complete control over the system’s abilities and scope. 10 CIS591: Planning Report
  • 11. Part II: System Benefits Part II: System Benefits Tangible benefits of new system The following are assumed tangible benefits of using the new system over using the old system. Assumptions made are those that each lead lost costs the company an average $1,000 of revenue, and that on average, 300 leads are lost due to improperly importing or assigning them. Also assumed is a 10% growth in the number of leads handled each year. Year 1 Reduction of possible errors in leads handling (revenue from lost leads) $300,000 Increased efficiency in processing department (2 people @ $30,000) $60,000 Added savings from database hosting costs $6,000 Added savings from development costs ($800 Visual Studio x 5) $4,000 Year 1 total $370,000 Year 2 Reduction of lead handling errors (revenue from lost leads) $330,000 Added savings from database hosting costs $6,000 Year 2 total $336,000 Year 3 Reduction of lead handling errors (revenue from lost leads) $363,000 Added savings from database hosting costs $6,000 Added savings from dev environment upgrades $4,000 Year 3 total $373,000 3-year grand total $1,079,000 The current system in place does provide benefits over the old way of handling leads (which was printing out an Excel spreadsheet and cutting them into paper strips containing lead information). Plenty of money has been and will continue to be saved with this new system. In fact, the new system will allow users to store their generated reports for future retrieval. Costs for database hosting is based off of retail cost of Microsoft SQL Server 2008, which is currently used to host many of our databases, including the application database for LINKS. Moving to MySQL will drastically reduce, or even eliminate, those costs. Intangible benefits of new system Perhaps one of the greatest intangible benefits of the new system is the increased accessibility. With the Internet being accessible in more and more places, as well as increases in coverage from high-speed cellular data networks like 3G and EVDO, the new system can be accessible from any Internet connected device at any time, as opposed to being tied to a client workstation or laptop at home or in the office. CIS591: Planning Report 11
  • 12. Part II: System Benefits In addition to accessibility, the new system will be platform-independent, so regardless of the OS of the client (be it Windows, Linux, Mac OS X, or any specialized mobile platform), as long as there’s an web browser, the system can be accessed. Another intangible benefit is the ability for easier expansion. The system will be written in Python, using the Django framework, which allows for easy scalability and expansion. Extra functionality can be developed on any machine with Python and Django installed, and then activated in mere seconds on the production server. 12 CIS591: Planning Report
  • 13. Part III: Project Schedule & Costs Part III: Project Schedule & Costs Phases, activities, tasks, and person-hours Business modeling 19 Understanding the business environment 6 Research problems with current system 2 Identify stakeholders 1 Determine integration with other systems 1 Understand new system’s place with existing system architecture 2 Create the system vision 6 Identify system objectives 2 Determine system capabilities 2 Identify benefits 2 Create business models 7 Create organizational chart 1 Create sales lead workflow model 2 Create computing infrastructure diagram 2 Create marketer lead processing workflow model 2 Requirements 63 Gather detailed information 12 Gather existing documentation on work processes 3 Review existing LINKS system 4 Get information about desired reports 2 Observe users of current LINKS system 3 Define functional requirements 18 Write detailed use case descriptions 7 Create use case diagram(s) 2 Create problem domain class diagram 2 Create interaction diagrams 7 Define nonfunctional requirements 6 Define security requirements 1 Define reliability requirements 1 Define technological requirements 2 Define usability requirements 2 Prioritize requirements 5 Determine core requirements 2 Plan other requirements per iteration 2 Set aside some requirements for future releases 1 Develop user interface dialogs 15 Create storyboards for each use case 8 Determine color scheme 1 Create mockups for overall site design (desktop browsers) 3 Create mockups for mobile site design 3 Evaluate requirements with users 7 CIS591: Planning Report 13
  • 14. Part III: Project Schedule & Costs Interview users regarding requirements 4 Revise requirements based on interviews 2 Remove unnecessary requirements 1 Design 139 Design the support services architecture and deployment environment 5 Plan for server operating systems 2 Design internal site access vs. external site access 2 Determine periodic system upgrade plan 1 Design the software architecture 8 Establish model-template-controller components 5 Design package diagrams 3 Design use case realizations 72 Create design class diagram 4 Create expanded sequence/interaction diagrams 8 Implement core use cases 40 Implement non-core use cases 20 Design the database 7 Finalize domain class diagram 2 Use domain class diagram to define schema 2 Specify relationships between tables 2 Determine if integration with other DBs is necessary 1 Design the system and user interfaces 35 Markup storyboards as necessary 2 Define Django templates 20 Design reports and forms 10 Choose system fonts 2 Determine links and integrations to other systems if necessary 1 Design the system security and controls 12 Determine security groups and users 2 Determine access levels for each group 2 Determine system administrators 2 Design login area 4 Set an encryption level 2 Implementation 90 Build software components 85 Write view logic 40 Write models 10 Write presentation templates 20 Write URL configurations 10 Write settings file 5 Integrate software components 5 Upload changes from test server to production server 5 Testing 38 Define and conduct unit testing 14 14 CIS591: Planning Report
  • 15. Part III: Project Schedule & Costs Define unit tests to be done 4 Carry out unit tests on core system functions 4 Carry out unit tests on extra features 2 Carry out unit tests on system security 4 Define and conduct integration testing 8 Define integration tests to be done (core functions must always work) 4 Carry out integration testing on each part of system as it’s built 4 Define and conduct usability testing 4 Compare storyboards with actual system interfaces 2 Determine ease-of-use with users 2 Define and conduct user acceptance testing 12 Have users test core functions for acceptance 6 Have users test extra features for acceptance 6 Deployment 42 Acquire hardware and system software 8 Download server operating system 2 Download MySQL Server 1 Download Django framework 1 Obtain server hardware 4 Package and install components 7 Install server OS on hardware 2 Install MySQL Server on server 1 Install Django framework on top of Python 1 Install all upgrades as necessary 2 Setup Apache with mod_python 1 Train users 21 Develop training documentation for system 10 Distribute training documentation 1 Implement documentation within system 5 Hands-on training sessions with users 5 Convert and initialize data 6 Import needed geographical data 2 Import initial batch of leads 2 Add users and security groups to the system 2 Project Management 35 Evaluate the project’s scope and risk 10 Determine project scope with use case list 4 Create problem domain class list 2 Determine project risk 2 Identify any possible threats to progress of project 2 Confirm the project’s feasibility 9 Calculate net present value 2 Calculate rate of return on project 2 List costs per year of system 2 Develop payback analysis 2 CIS591: Planning Report 15
  • 16. Part III: Project Schedule & Costs Complete feasibility study section of planning report 1 Develop the project and iteration schedules 9 List out all tasks as required by project 6 Discuss direction of project schedule with Dr. Satzinger 1 Determine tasks to be done per iteration 2 Monitor and control the project’s iterations 7 Log time worked on all tasks 2 Keep a journal of everything done per day 2 Adjust project schedule / iterations as necessary 2 Develop periodic deliverable reports for Dr. Satzinger 1 Configuration and Change Management 8 Develop change control procedures 4 Keep daily backups of all code and documentation 2 Develop plan for moving code to production server 2 Manage models and software components 4 Update models as project evolves 2 Keep documentation on changes to code (versioning) 2 Environment 47 Select, configure, and understand the development tools 34 Establish programming software (obtain and install) 2 Establish software needed for model creation, diagramming 2 Learn Python / Django as needed 30 Tailor the UP development process 10 Lay out and setup project deliverables 4 Meet with Dr. Satzinger as often as needed 5 Determine which models to develop and include in deliverables 1 Provide technical support services 3 Answer questions of any test users 3 Grand Total of Hours 481 Project Costs I’ve determined that I’ll be charged $35.00/hour for my development services (similar to a salary of $72,800). That would make labor costs for developing the system $16,835. I’m also assuming that the time required to maintain the system will be roughly half of the time spent developing it (just over 240 hours), and that time may increase by about 20% each year due to aging system specs and adding new features. I’m also assuming that I’ll be the only person working on developing and maintaining this new system. Software licensing costs will be next to nothing, as most of the software used in implementing the system is open-sourced (with the exception of word-processing programs, spreadsheet software, diagramming applications, and the like). That should allow us more money from whatever budget we’re operating on to be focused on hardware and other supplies. 16 CIS591: Planning Report
  • 17. Part III: Project Schedule & Costs Due to the size of the company as far as number of users go (675 users maximum, assuming current employment numbers of almost 300 and adding 50% yearly growth for 3 years), I’m allowing roughly $20,000 per year to be spent on server equipment like blades, as well as development materials like laptops or desktops. Dev Costs/ Hourly Rate Year 0 Year 1 Year 2 Year 3 Total $ 25.00 $ 32,025.00 $ 26,012.50 $ 27,215.00 $ 28,658.00 $ 113,910.50 $ 30.00 $ 34,430.00 $ 27,215.00 $ 28,658.00 $ 30,389.60 $ 120,692.60 $ 35.00 $ 36,835.00 $ 28,417.50 $ 30,101.00 $ 32,121.20 $ 127,474.70 $ 40.00 $ 39,240.00 $ 29,620.00 $ 31,544.00 $ 33,852.80 $ 134,256.80 $ 45.00 $ 41,645.00 $ 30,822.50 $ 32,987.00 $ 35,584.40 $ 141,038.90 $ 50.00 $ 44,050.00 $ 32,025.00 $ 34,430.00 $ 37,316.00 $ 147,821.00 CIS591: Planning Report 17
  • 18. Part IV: Feasibility Study Part IV: Feasibility Study I. Organizational feasibility I don’t believe there to be a lot of risk in terms of the organization. Nobody’s going to be changing positions, and nobody’s going to be eliminated from their positions by this system (not as far as the system is planned out). A similar system is already in place, and most organizational changes took place when that system was implemented (very few changes were made). The previous project, and the current one, are both quite organizationally feasible. 10/10. II. Cultural feasibility This feasibility category, along with organizational feasibility, doesn’t carry a lot of risk with it. Nobody’s afraid of computers; in fact, so many people are embracing them (and different types of them) that looking into a project like this has been requested. If anything, staff and management will have even more control (especially in our sales companies) over what and how much their people are doing than before. 10/10. III. Technological feasibility Technological feasibility could be an issue. I’m not too familiar with Django, and I’m even less familiar with the Python language it’s written in (I’m currently learning both, however, quite quickly). If this were being implemented in an actual company environment (as opposed to doing this in a individual project environment), I’d request that we hire a couple of people that already know Django and Python to assist in developing the project, and perhaps more importantly, in supporting it once it’s finished. I’m keeping an eye on this one. 6/10. IV. Schedule feasibility Seeing as I have all semester to complete the project (with various milestones along the way requiring deliverables to help keep me on track), I don’t think time will be too much of an issue. Most of my schedule is open (I’m only taking one other 3-credit-hour class, and I work roughly 20-30 hours a week at my on-campus IT job), so I’ll be able to devote good portions of time on this project. It will be important to for me gauge how far along I am in the project by determining how many hours I’ve worked and how many use cases I’ve implemented in code, and so forth, so I’ll be keeping an eye on this category as well. 7/10. V. Resource feasibility The users are there, currently using the old system; I can tap them as needed to ask them any questions I need. The major issue with this category is that I’m the only ‘staff member’ assigned to doing this project. I’m the planner, the analyst, the programmer, the tester, and manager. I have people I can call on if I need technical help, and I can use my professor as a resource, but this also could be a problem. 5/10. 18 CIS591: Planning Report
  • 19. Part IV: Feasibility Study VI. Economic feasibility Costs/ benefits Year 0 Year 1 Year 2 Year 3 Total Value of $ 370,000.00 $ 336,000.00 $ 373,000.00 benefits Discount factor 1 0.9000 0.8100 0.7290 (10%) Present value of $ 333,000.00 $ 272,160.00 $ 271,917.00 $ 877,077.00 benefits Dev costs $ (36,835.00) $ (36,835.00) Ongoing costs $ (28,417.00) $ (30,101.00) $ (32,121.20) Present value of $ (25,575.30) $ (24,381.81) $ (23,416.35) $ (73,373.46) costs PV of net of $ (36,835.00) $ 307,424.70 $ 247,778.19 $ 248,500.65 benefits, costs Cumulative NPV $ (36,835.00) $ 270,589.70 $ 518,367.89 $ 766,868.54 decimal: 0.1198 Payback period $36,835.00 / (36,835.00 + 270,589.70) days: 44 3-year return on ($877,077.00 - (36,835.00 + 73,373.46)) / (36,835.00 + 73,373.46) 695.83% investment I wasn’t quite sure originally, but it looks like this project is quite economically feasible! If there was any area where I’d have to second-guess my calculations, it would be on the costs of the system; however, since I’m the only one being paid labor hours to do this project, labor costs are very low. 10/10. VII. Overall feasibility If I total up my arbitrary scores for each feasibility category, I’d get a figure that says this project is 80% feasible. I’d definitely recommend that the project continue, as it seems most areas of feasibility recommend it. CIS591: Planning Report 19
  • 20. Part V: Project Monitoring / Reporting to Date Part V: Project Monitoring / Reporting to Date Week # Hours Actual Allotte Hours Activities d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Worked Business modeling Understanding the business environment - Research problems with current system 2 1 1 2 Identify stakeholders 1 1 1 Determine integration with other systems 1 1 1 Understand new system’s place with existing system 2 2 2 architecture Create the system vision Identify system objectives 2 1 1 2 Determine system capabilities 2 1 1 2 Identify benefits 2 1 1 2 Create business models Create organizational chart 1 0 Create sales lead workflow model 2 0 Create computing infrastructure diagram 2 0 Create marketer lead processing workflow model 2 0 Requirements Gather detailed information Gather existing documentation on work processes 3 1 2 3 Review existing LINKS system 4 2 2 4 Get information about desired reports 2 1 1 2 Observe users of current LINKS system 3 0 Define functional requirements Write detailed use case descriptions 7 0 Create use case diagram(s) 2 0 Create problem domain class diagram 2 0 Create interaction diagrams 7 0 Define nonfunctional requirements Define security requirements 1 1 1 Define reliability requirements 1 1 1 Define technological requirements 2 1 1 Define usability requirements 2 1 1 Prioritize requirements Determine core requirements 2 1 1 2 Plan other requirements per iteration 2 1 1 2 Set aside some requirements for future releases 1 0 Develop user interface dialogs Create storyboards for each use case 8 0 Determine color scheme 1 0 Create mockups for overall site design (desktop 3 0 browsers) Create mockups for mobile site design 3 0 Evaluate requirements with users Interview users regarding requirements 4 2 2 Revise requirements based on interviews 2 0 Remove unnecessary requirements 1 0 Design 20 CIS591: Planning Report
  • 21. Part V: Project Monitoring / Reporting to Date Week # Hours Actual Allotte Hours Activities d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Worked Design the support services architecture and deployment environment Plan for server operating systems 2 1 1 2 Design internal site access vs. external site access 2 2 2 Determine periodic system upgrade plan 1 0 Design the software architecture Establish model-template-controller components 5 0 Design package diagrams 3 0 Design use case realizations Create design class diagram 4 0 Create expanded sequence/interaction diagrams 8 0 Implement core use cases 40 3 3 Implement non-core use cases 20 0 Design the database Finalize domain class diagram 2 0 Use domain class diagram to define schema 2 1 0.5 Specify relationships between tables 2 0 Determine if integration with other DBs is necessary 1 0 Design the system and user interfaces Markup storyboards as necessary 2 0 Define Django templates 20 0 Design reports and forms 10 0 Choose system fonts 2 0 Determine links and integrations to other systems if 1 0 necessary Design the system security and controls Determine security groups and users 2 0 Determine access levels for each group 2 0 Determine system administrators 2 0 Design login area 4 0 Set an encryption level 2 0 Implementation Build software components Write view logic 40 0 Write models 10 1 1 Write presentation templates 20 0 Write URL configurations 10 1 1 Write settings file 5 1 1 Integrate software components Upload changes from test server to production server 5 0 Testing Define and conduct unit testing Define unit tests to be done 4 0 Carry out unit tests on core system functions 4 0 Carry out unit tests on extra features 2 0 Carry out unit tests on system security 4 0 Define and conduct integration testing Define integration tests to be done (core functions must 4 0 always work) CIS591: Planning Report 21
  • 22. Part V: Project Monitoring / Reporting to Date Week # Hours Actual Allotte Hours Activities d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Worked Carry out integration testing on each part of system as 4 0 it’s built Define and conduct usability testing Compare storyboards with actual system interfaces 2 0 Determine ease-of-use with users 2 0 Define and conduct user acceptance testing 12 0 Have users test core functions for acceptance 6 0 Have users test extra features for acceptance 6 0 Deployment Acquire hardware and system software Download server operating system 2 0 Download MySQL Server 1 0 Download Django framework 1 0 Obtain server hardware 4 0 Package and install components Install server OS on hardware 2 0 Install MySQL Server on server 1 0 Install Django framework on top of Python 1 0 Install all upgrades as necessary 2 0 Setup Apache with mod_python 1 0 Train users Develop training documentation for system 10 0 Distribute training documentation 1 0 Implement documentation within system 5 0 Hands-on training sessions with users 5 0 Convert and initialize data Import needed geographical data 2 0 Import initial batch of leads 2 0 Add users and security groups to the system 2 0 Project Management Evaluate the project’s scope and risk Determine project scope with use case list 4 2 2 4 Create problem domain class list 2 2 2 Determine project risk 2 2 2 Identify any possible threats to progress of project 2 2 2 Confirm the project’s feasibility Calculate net present value 2 2 2 Calculate rate of return on project 2 2 2 List costs per year of system 2 2 2 Develop payback analysis 2 2 2 Complete feasibility study section of planning report 1 1 1 Develop the project and iteration schedules List out all tasks as required by project 6 4 2 6 Discuss direction of project schedule with Dr. Satzinger 1 1 1 Determine tasks to be done per iteration 2 0 Monitor and control the project’s iterations Log time worked on all tasks 2 0 0 0 0 0 0 0.6 Keep a journal of everything done per day 2 0 0 0 0 0.4 Adjust project schedule / iterations as necessary 2 0 22 CIS591: Planning Report
  • 23. Part V: Project Monitoring / Reporting to Date Week # Hours Actual Allotte Hours Activities d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Worked Develop periodic deliverable reports for Dr. Satzinger 1 0 0.1 Configuration and Change Management Develop change control procedures Keep daily backups of all code and documentation 2 0 0 0 0 0 0 0.6 Develop plan for moving code to production server 2 0 Manage models and software components Update models as project evolves 2 0 Keep documentation on changes to code (versioning) 2 0 Environment Select, configure, and understand the development tools Establish programming software (obtain and install) 2 2 2 Establish software needed for model creation, 2 1 1 2 diagramming Learn Python / Django as needed 30 4 4 4 3 5 20 Tailor the UP development process Lay out and setup project deliverables 4 2 1 1 4 Meet with Dr. Satzinger as often as needed 5 1 1 1 Determine which models to develop and include in 1 0 deliverables Provide technical support services Answer questions of any test users 3 0 Grand Total of Hours 493 98.2 CIS591: Planning Report 23