Birdie Analysis


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • - Birdie is my project
    - Written in Python using Django framework
    - Sales leads tracking app
  • - Touch on the basis for the app
    - What it does, in a nutshell
  • - NMR, partnered with PMI in Utah
    - They do consulting and marketing
    - One of their functions is phone marketing
  • - Sales leads tracking and management system
    - Leads come into company
    - Processing reps file the leads according to their sources
    - Distribute them through our channels
    - Current system is tied to Windows clients, need access for browsers and mobile phones

  • - Show the feasibility study from my last report
  • - No change, really
    - Most organizational changes already took place with previous system

  • - Still not much risk
    - People are mostly tech-savvy here
    - Marketers are least tech-savvy, but most still are sharp on tech
  • - My first major exposure to Django OR Python
    - Issue at beginning but: easy to pick up, very powerful
    - Know people that know Django
  • - Not much risk as long as I manage my time
    - Could spend longer than alotted; I tend to pay too much attention to small details
    - No time for that
  • - Small (but growing) company, know most users of system
    - I’m the scarce resource (as developer)
  • - Numbers on my last report
    - Quite feasible, economically and overall
  • - The fun stuff, pretty pictures
    - Some of what the system needs to do
  • - Processing rep does a lot of management of the data
    - Customers, sources, promotions, campaigns
    - Initial lead distribution
  • - Various levels of mgmt
    - Leads go to sales mgrs, then to division mgrs, then teamleaders
    - All levels can see lead reports and marketer reports
    - Only sales mgrs can see overall reports
  • - Marketer has one: change lead status
    - Upgrade/downgrade lead depending on outcome of followup
    - Complex, lots of data entry; focal point
  • - From description
    - Happens when marketer follows up on lead via phone
    - Makes calls for each lead on their list
    - Pull up detail report and fill out extra details, change status
  • - Teamleaders preside, customers are contacted
    - Lead must have complete path, be assigned to show up in list
    - After, lead is modified, be active or inactive
  • - Diagram: follow arrows
    - Gets active leads list, chooses one, updates info
    - Gets redirected

  • - Lead is in center
    - Order/product is off to side, somewhat separate from main part
    - Person super of customer, user
    - User is anyone who logs into system, includes bottom row classes
  • - REALLY fun stuff
    - Mockup designs, what’s implemented
  • - Initial prototype, layout of leads list for mktr
    - Select a lead, go to lead detail
  • - Leads list implementation
    - Same functionality, choose between lead phases (a/i/e)
  • - Second prototype: detail report
    - Marketer gets this for each lead they call
    - Add details, fill in demographics
  • - Implementation of lead detail report
    - Haven’t added demographics
    - Working status change and detail/notes
  • - Third mockup: lead report
    - May or may not have graph; extra feature
    - Shows statistics of leads over time period
    - Not yet implemented
  • - Planned menu hierarchy
    - Dependent on credentials
    - Section headers
  • - Managers, processing reps have access
  • - Processing reps, mgmt, teamleaders have access to certain sections
  • - Processing reps have first 4
    - Mgmt has 3 & 4
    - Mktr has 5th
  • - Processing reps get all these
    - Mgmt can access as well
  • - Mgmt have all 3
    - Teamleaders only have first 2
  • - Real basic main menu implemented now
    - Tailored to your credentials
    - Clicking on your name in upper-right gets you to menu
    - Breadcrumb always helps you find your way
  • - MTV: model/template/view
    - MVC: model/view/controller
    - different names for same thing
    - Django ‘controller’ is URL direction file, biz-logic in ‘views’
    - Templates are rendered HTML files
  • - Dev-ing w/ prerelease build of Django 1.1, due in couple of weeks
    - Database testing with SQLite, full build MySQL; Django handles DB differences
    - All Mac dev-environment

  • - As previously explained
    - Models = models
    - Views = templates
    - Controllers = views
    - Actual controlling = URL direction, regex’s
    - Objects/models predefined, view classes/forms = biz-logic
  • - What it looks like going from through system
    - Follow steps
  • - End! Stop sweating now
  • Birdie Analysis

    1. 1. CIS591 Analysis Presentation
    2. 2. Brief system background What the system is used for
    3. 3. The company National Marketing Resources (Kearney, MO) Sister company to Professional Marketing International (Utah) Employs roughly 300 people across all sites Internet business consulting and product marketing Services for entrepreneurs, investors, small business owners One function: phone marketing following sales leads
    4. 4. Brief system description Sales leads tracking system Computerizes the process of obtaining / categorizing sales leads Forwards them to marketers Marketers follow through on those leads If necessary, they upgrade their statuses to accounts
    5. 5. Feasibility study Benefits and costs of the project as well as its overall feasibility
    6. 6. Organizational feasibility Not much risk here No switching or eliminating positions Similar system already in place Most organizational changes took place when that system was implemented Both projects are organizationally feasible
    7. 7. Cultural feasibility Also not much risk Many people are embracing computers / technology Staff / management will have more control over their people
    8. 8. Technological feasibility Could be an issue Never previously exposed to Django / Python I’d request hiring a couple of people that already know Django / Python to assist in development / support (if this weren’t for a class)
    9. 9. Schedule feasibility I have all semester to complete the project; not much risk Most of my schedule is open for this project Gauging where I’m at periodically is important I’ll keep an eye on managing my time Time usage must be efficient (could spend more than a semester working on system)
    10. 10. Resource feasibility I can tap current users as needed to ask them any questions Major issue: I’m the only ‘staff member’ assigned to doing this project I have people I can call on if I need technical help Could be an issue; some risk
    11. 11. Economic feasibility Present value of benefits Estimated present value of net benefits, costs $877,077.00 $400k $320k Present value of costs $73,373.46 $240k $160k Payback period 44 days $80k $0k 3-yr return on investment 695.83% ($80)k Year 0 Year 1 Year 2 Year 3
    12. 12. Requirements models Highlighting actors, use cases, and domain classes
    13. 13. System Define lead source Create new lead Use case Import external leads diagram Define promotion Define marketing campaign Processing representative Processing Assign leads to Rep lead path Distribute leads to sales company Export lead list Define customer
    14. 14. System Distribute leads to sales team Distribute leads to division Division Generate lead manager report Generate marketer report Sales manager Generate overall report Sales Assign leads to teamleader marketers Use case diagram Managers
    15. 15. Use case System diagram Modify lead status Marketer Marketer
    16. 16. Use case: change lead status Triggering event: Marketer follows up on sales lead Brief description: A marketer will go down their list of leads assigned to them and make sales calls. Depending on the status of the phone call (if the lead hung up, was busy, wasn’t home, etc), the marketer will change the status of that lead in the system. They’ll login to the system, visit their active leads, click on the lead they’re working on, and change the details of that lead.
    17. 17. Use case: change lead status Stakeholders: Sales teamleaders, customers Preconditions: Lead in the list must already exist in the system with complete details Lead must already be assigned to a marketer Postconditions: Lead will be modified with additional details on the prospective customer Lead will either be active or inactive depending on status
    18. 18. Use case: change lead status Marketer visits leads page System System gives leads list Marketer Marketer selects current lead Open active leads page System gives detail page Choose current lead Marketer updates lead info Update lead information and status, submit Redirect to active leads page System saves info to DB Marketer returns to lead list
    19. 19. Domain model class diagram
    20. 20. Lead Source 1 companyName Product address productName 1 * city productSource * state productPrice Promotion zip productDescription promotionName country productPicture promotionSource phone 1..* 0..1 OrderDetails 0..1 orderID productID qty * * * Lead Order createDate Sales Company orderDate expireDate companyName orderCustomerID customerID address orderTotal sourceID city orderPaymentMethod promotionID 0..1 * state orderDueDate pipelineID zip orderPayDate salesCompanyID country 1 divisionID * phone * teamID isInternal marketerID managerID status 1 1 detail * * * 0..1 * Division Person Team divisionName firstName divisionID companyID lastName 0..1 teamLeaderID managerID address * city 1 1 1 1 state zip country phone 0..1 1 User Customer userid age maritalStatus 0..1 0..1 numChildren assetAmount 0..1 * 0..1 liabilityAmount Manager Team Leader Marketer Processing Rep managerType commissionRate commissionRate managerID teamID salesCompanyID 1 * *
    21. 21. Prototypes & implementation Screen designs, report designs, menus, and more
    22. 22. Design prototype: leads list (and web app layout)
    23. 23. Report design work-in-progress: leads list (active)
    24. 24. Report prototype: Lead detail report
    25. 25. Report design work-in-progress: Actual system lead detail report
    26. 26. Report prototype: Overall lead report
    27. 27. Menu hierarchy: headers External company management Internal company management Leads management Customer management Order management Reports
    28. 28. Menu hierarchy: External company management Add new lead source View existing lead sources Add new promotion View existing promotions
    29. 29. Menu hierarchy: Internal company management Add new sales company View existing sales companies Add new division View existing divisions Add new team View existing teams Add new marketer View existing marketers
    30. 30. Menu hierarchy: Leads management Add new lead Import leads Export leads Distribute leads View my leads
    31. 31. Menu hierarchy: Customer management Add new customer View existing customers Order management Add new order View existing orders
    32. 32. Menu hierarchy: Reports Generate lead report Generate marketer report Generate overall report
    33. 33. Screen design work-in-progress: main menu
    34. 34. Application architecture How Birdie represents model-template-view (MTV) architecture using Django
    35. 35. Technology & working environment Web application running on Django 1.1 (beta), Python 2.5.4, SQLite Features locked; 1.1 is slated for April SQLite for development only; production will use MySQL All development done on my MacBook under Mac OS X TextMate, CSSEdit, Pages/Keynote/Numbers, OmniGraffle, GitHub
    36. 36. App architecture, design approach Model-Template-View (three-layer architecture) Models represent data access and definition Templates contain presentation logic Views contain business logic Similar to Model-View-Controller architecture Object-oriented design approach Python is object-oriented
    37. 37. Web browser URL controller Template layer View layer Model layer Database Marketer Open active leads page (/leads/marketer) Get active leads view Get active leads view Get active leads for marketer Get all active leads for marketer Marketer's active leads Marketer's active leads Template context for active leads Rendered active leads template Select active lead Get lead detail view Get lead detail view Get lead detail for lead #001 Get lead detail for lead #001 Lead #001 detail Lead #001 detail Template context for lead #001 Rendered lead detail template Update lead details, submit form Get update lead view Get update lead view Update lead #001 Update lead #001 Redirect to active leads template Template context for active leads Rendered active leads template Detailed sequence diagram Change lead status (for demonstration)