SlideShare ist ein Scribd-Unternehmen logo
1 von 23
CIS 591 Planning Report: ‘Birdie’
                            Benjamin Kreeger
                               (816) 806-7096
                 kreeger545@missouristate.edu
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Andere mochten auch

ValueChain_OganGurel
ValueChain_OganGurelValueChain_OganGurel
ValueChain_OganGurelOgan Gurel MD
 
Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...
Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...
Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...Amazon Web Services
 
SSL暗号化通信を利用したネットワークセキュリティの向上
SSL暗号化通信を利用したネットワークセキュリティの向上SSL暗号化通信を利用したネットワークセキュリティの向上
SSL暗号化通信を利用したネットワークセキュリティの向上Atsushi Matsuo
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Tom Laszewski
 
Moving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWSMoving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWSAmazon Web Services
 
テストする人をおにぎり試食人で例えてみた
テストする人をおにぎり試食人で例えてみたテストする人をおにぎり試食人で例えてみた
テストする人をおにぎり試食人で例えてみたRina Fukuda
 
fukuokaphp7 PHP x twilio
fukuokaphp7 PHP x twiliofukuokaphp7 PHP x twilio
fukuokaphp7 PHP x twilioichikaway
 
Cv Joost de Vries nieuwe stijl 2016
Cv Joost de Vries nieuwe stijl 2016Cv Joost de Vries nieuwe stijl 2016
Cv Joost de Vries nieuwe stijl 2016Joost de Vries
 
Engineer as a Leading Role
Engineer as a Leading RoleEngineer as a Leading Role
Engineer as a Leading RoleSATOSHI TAGOMORI
 
FileMaker Server 15の新機能と改善点
FileMaker Server 15の新機能と改善点FileMaker Server 15の新機能と改善点
FileMaker Server 15の新機能と改善点Atsushi Matsuo
 
How to add non root user account to netapp for commvault
How to add non root user account to netapp for commvaultHow to add non root user account to netapp for commvault
How to add non root user account to netapp for commvaultAshwin Pawar
 

Andere mochten auch (14)

ValueChain_OganGurel
ValueChain_OganGurelValueChain_OganGurel
ValueChain_OganGurel
 
Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...
Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...
Automating Software Deployments with AWS CodeDeploy by Matthew Trescot, Manag...
 
Certificate PgCert
Certificate PgCertCertificate PgCert
Certificate PgCert
 
SSL暗号化通信を利用したネットワークセキュリティの向上
SSL暗号化通信を利用したネットワークセキュリティの向上SSL暗号化通信を利用したネットワークセキュリティの向上
SSL暗号化通信を利用したネットワークセキュリティの向上
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS
 
Moving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWSMoving Enterprise Windows Workloads to AWS
Moving Enterprise Windows Workloads to AWS
 
テストする人をおにぎり試食人で例えてみた
テストする人をおにぎり試食人で例えてみたテストする人をおにぎり試食人で例えてみた
テストする人をおにぎり試食人で例えてみた
 
fukuokaphp7 PHP x twilio
fukuokaphp7 PHP x twiliofukuokaphp7 PHP x twilio
fukuokaphp7 PHP x twilio
 
Cv Joost de Vries nieuwe stijl 2016
Cv Joost de Vries nieuwe stijl 2016Cv Joost de Vries nieuwe stijl 2016
Cv Joost de Vries nieuwe stijl 2016
 
Engineer as a Leading Role
Engineer as a Leading RoleEngineer as a Leading Role
Engineer as a Leading Role
 
FileMaker Server 15の新機能と改善点
FileMaker Server 15の新機能と改善点FileMaker Server 15の新機能と改善点
FileMaker Server 15の新機能と改善点
 
Migrating Enterprise Apps
Migrating Enterprise AppsMigrating Enterprise Apps
Migrating Enterprise Apps
 
「12のリーダーシップ・ストーリー」紀伊国屋大手町ビル店トークライブ
「12のリーダーシップ・ストーリー」紀伊国屋大手町ビル店トークライブ「12のリーダーシップ・ストーリー」紀伊国屋大手町ビル店トークライブ
「12のリーダーシップ・ストーリー」紀伊国屋大手町ビル店トークライブ
 
How to add non root user account to netapp for commvault
How to add non root user account to netapp for commvaultHow to add non root user account to netapp for commvault
How to add non root user account to netapp for commvault
 

Ähnlich wie Birdie Planning Report

CA-PMM Syste Recommendations v3
CA-PMM Syste Recommendations v3CA-PMM Syste Recommendations v3
CA-PMM Syste Recommendations v3Matthew Gibbs
 
University of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPUniversity of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPrashidalyasuog
 
FBPM2-Chapter09-ProcessAwareInformationSystems.pptx
FBPM2-Chapter09-ProcessAwareInformationSystems.pptxFBPM2-Chapter09-ProcessAwareInformationSystems.pptx
FBPM2-Chapter09-ProcessAwareInformationSystems.pptxssuser0d0f881
 
451 Research - Report Schedule & Overview Nov 2011
451 Research - Report Schedule & Overview Nov 2011451 Research - Report Schedule & Overview Nov 2011
451 Research - Report Schedule & Overview Nov 2011jdavidmcmahon3
 
01 content analytics-iw2015
01 content analytics-iw201501 content analytics-iw2015
01 content analytics-iw2015Kaizenlogcom
 
BI Project report
BI Project reportBI Project report
BI Project reporthlel
 
GanttChart for ClearQuest User Guide
GanttChart for ClearQuest User GuideGanttChart for ClearQuest User Guide
GanttChart for ClearQuest User GuideAlexander Novichkov
 
Extending capture capabilities measuring the roi
Extending capture capabilities   measuring the roiExtending capture capabilities   measuring the roi
Extending capture capabilities measuring the roiVander Loto
 
Cloud Integration for Hybrid IT: Balancing Business Self-Service and IT Control
Cloud Integration for Hybrid IT: Balancing Business Self-Service and IT ControlCloud Integration for Hybrid IT: Balancing Business Self-Service and IT Control
Cloud Integration for Hybrid IT: Balancing Business Self-Service and IT ControlAshwin V.
 
Al-Mqbali, Leila, Big Data - Research Project
Al-Mqbali, Leila, Big Data - Research ProjectAl-Mqbali, Leila, Big Data - Research Project
Al-Mqbali, Leila, Big Data - Research ProjectLeila Al-Mqbali
 
AIIM White Paper: Case Management and Smart Applications
AIIM White Paper: Case Management and Smart ApplicationsAIIM White Paper: Case Management and Smart Applications
AIIM White Paper: Case Management and Smart ApplicationsSwiss Post Solutions
 
Methodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examplesMethodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examplesLeonid Grinshpan, Ph.D.
 
TASK 1In regards to part 1 of this assessment, please read t.docx
TASK 1In regards to part 1 of this assessment, please read t.docxTASK 1In regards to part 1 of this assessment, please read t.docx
TASK 1In regards to part 1 of this assessment, please read t.docxmattinsonjanel
 
25 point-implementation-plan-to-reform-federal it
25 point-implementation-plan-to-reform-federal it25 point-implementation-plan-to-reform-federal it
25 point-implementation-plan-to-reform-federal itGovCloud Network
 
Risk analyticsmaster
Risk analyticsmasterRisk analyticsmaster
Risk analyticsmasterMamadou Bass
 

Ähnlich wie Birdie Planning Report (20)

CA-PMM Syste Recommendations v3
CA-PMM Syste Recommendations v3CA-PMM Syste Recommendations v3
CA-PMM Syste Recommendations v3
 
Birdie Project Proposal
Birdie Project ProposalBirdie Project Proposal
Birdie Project Proposal
 
Thesis
ThesisThesis
Thesis
 
Cloud view platform-highlights-web3
Cloud view platform-highlights-web3Cloud view platform-highlights-web3
Cloud view platform-highlights-web3
 
University of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPUniversity of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYP
 
FBPM2-Chapter09-ProcessAwareInformationSystems.pptx
FBPM2-Chapter09-ProcessAwareInformationSystems.pptxFBPM2-Chapter09-ProcessAwareInformationSystems.pptx
FBPM2-Chapter09-ProcessAwareInformationSystems.pptx
 
Sa002 abc
Sa002 abcSa002 abc
Sa002 abc
 
451 Research - Report Schedule & Overview Nov 2011
451 Research - Report Schedule & Overview Nov 2011451 Research - Report Schedule & Overview Nov 2011
451 Research - Report Schedule & Overview Nov 2011
 
01 content analytics-iw2015
01 content analytics-iw201501 content analytics-iw2015
01 content analytics-iw2015
 
BI Project report
BI Project reportBI Project report
BI Project report
 
GanttChart for ClearQuest User Guide
GanttChart for ClearQuest User GuideGanttChart for ClearQuest User Guide
GanttChart for ClearQuest User Guide
 
Extending capture capabilities measuring the roi
Extending capture capabilities   measuring the roiExtending capture capabilities   measuring the roi
Extending capture capabilities measuring the roi
 
Mobile shopping
Mobile shoppingMobile shopping
Mobile shopping
 
Cloud Integration for Hybrid IT: Balancing Business Self-Service and IT Control
Cloud Integration for Hybrid IT: Balancing Business Self-Service and IT ControlCloud Integration for Hybrid IT: Balancing Business Self-Service and IT Control
Cloud Integration for Hybrid IT: Balancing Business Self-Service and IT Control
 
Al-Mqbali, Leila, Big Data - Research Project
Al-Mqbali, Leila, Big Data - Research ProjectAl-Mqbali, Leila, Big Data - Research Project
Al-Mqbali, Leila, Big Data - Research Project
 
AIIM White Paper: Case Management and Smart Applications
AIIM White Paper: Case Management and Smart ApplicationsAIIM White Paper: Case Management and Smart Applications
AIIM White Paper: Case Management and Smart Applications
 
Methodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examplesMethodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examples
 
TASK 1In regards to part 1 of this assessment, please read t.docx
TASK 1In regards to part 1 of this assessment, please read t.docxTASK 1In regards to part 1 of this assessment, please read t.docx
TASK 1In regards to part 1 of this assessment, please read t.docx
 
25 point-implementation-plan-to-reform-federal it
25 point-implementation-plan-to-reform-federal it25 point-implementation-plan-to-reform-federal it
25 point-implementation-plan-to-reform-federal it
 
Risk analyticsmaster
Risk analyticsmasterRisk analyticsmaster
Risk analyticsmaster
 

Mehr von Benjamin Kreeger

Mehr von Benjamin Kreeger (16)

Wanadi, the creator
Wanadi, the creatorWanadi, the creator
Wanadi, the creator
 
Online Teaching Tools in the Classroom
Online Teaching Tools in the ClassroomOnline Teaching Tools in the Classroom
Online Teaching Tools in the Classroom
 
Etcetera: Checkout Workflow
Etcetera: Checkout WorkflowEtcetera: Checkout Workflow
Etcetera: Checkout Workflow
 
Etcetera Progress Report (2009-Dec-01)
Etcetera Progress Report (2009-Dec-01)Etcetera Progress Report (2009-Dec-01)
Etcetera Progress Report (2009-Dec-01)
 
Living and Learning in the Cloud: Online Services and Freeware
Living and Learning in the Cloud: Online Services and FreewareLiving and Learning in the Cloud: Online Services and Freeware
Living and Learning in the Cloud: Online Services and Freeware
 
Podcasting (Fall 2009)
Podcasting (Fall 2009)Podcasting (Fall 2009)
Podcasting (Fall 2009)
 
Being a Mac in a Windows World
Being a Mac in a Windows WorldBeing a Mac in a Windows World
Being a Mac in a Windows World
 
Birdie Design Presentation
Birdie Design PresentationBirdie Design Presentation
Birdie Design Presentation
 
Backup & File Management
Backup & File ManagementBackup & File Management
Backup & File Management
 
Mac OS X Tips & Tricks
Mac OS X Tips & TricksMac OS X Tips & Tricks
Mac OS X Tips & Tricks
 
Podcasting in Education
Podcasting in EducationPodcasting in Education
Podcasting in Education
 
Podcasting II
Podcasting IIPodcasting II
Podcasting II
 
Useful Freeware
Useful FreewareUseful Freeware
Useful Freeware
 
HDCP
HDCPHDCP
HDCP
 
Birdie Analysis Report
Birdie Analysis ReportBirdie Analysis Report
Birdie Analysis Report
 
Birdie Analysis
Birdie AnalysisBirdie Analysis
Birdie Analysis
 

Kürzlich hochgeladen

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Kürzlich hochgeladen (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

Birdie Planning Report

  • 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