class: middle
.eight[CSET-115]
.eight[Technical Requirements & Data Structures]
# Waterfall --- # All Projects Need A Plan - Maps - Recipes - Blueprints -- More complexity means more planning. --- class: middle, center # "If you don't know where you're going, you'll end up someplace else." --- # Project Methodology ## .eight[The process by which a project is managed and developed.] --- # Software Project Methodologies There's too many... - Waterfall - Agile - Scrum - Kanban - Scrumban - Lean - eXtreme - Six Sigma - PMBOK --- # Plans Pre-Programming .fourteen[Imagine you are tasked with building a bridge. What do you do?] --- # Plans Pre-Programming - Bridge for who? Or what? - Over what? - What resources do you have to build it with? - Any other rules? -- Before we can build it, we need to learn why we're building it. --- # Gathering Requirements - .eight[Deliverable]: What is being produced? - .eight[Stakeholder]: Who has a vested interest in the project? - .eight[Requirement]: What are the needs and wants? - .eight[Constraint]: What are the rules that limit the project? --- # Gathering Requirements Potentially the most important question: ## .eight[What are our assumptions?] --- # Design Now that we have the project requirements, we can design a solution to meet them. - .eight[Resources]: Anything needed to complete the project - .eight[Milestones]: Break deliverable into phases - .eight[Budget]: Estimate of total cost - .eight[Scope]: Total of all essential work --- # Design If a solution fails on paper, that's a lot better than a solution failing in real life. --- # Implementation A plan has been made, time to follow it! -- Simple. Go build the bridge. --- # Testing and Maintenance - Did it work? - Are all the requirements met? - How do you keep it working? --- class: center
--- # Waterfall Method .eight[One phase needs to be completed before moving to the next.] 1. Requirements 2. Design 3. Implementation 4. Testing 5. Maintenance --- # Plans For Programming Different types of companies: - Deliverable: Agency vs Product Team - Structure: Start-up vs Enterprise -- count: false - You: Employee vs Contractor --- # Project Roles - .eight[Client / Client Manager] - .eight[Project Manager] - .eight[Business Analyst] - .eight[Architect] - .eight[Designer] - .eight[Developer] - .eight[Quality Assurance] --- # Project Architecture - What languages we need to write the code - What frameworks we could use to write less code - What paradigms/styles we should use to keep our code consistent - What platforms or hardware our code will run on - How we'll deliver the code to customers - How we'll maintain the service over time --- # Project Design - Graphic Design - User Interface Design - User Experience Design --- # Project Design Deliverables - Moodboards - Focus Group Results - Wireframing - Mocks/Comps - Prototyping --- class: center
--- class: middle, center [How to Scope Work](http://danmall.me/articles/how-to-scope-work/) --- class: middle, center # .fourteen[Exercise: Requirements Gathering] Let's make a list of all the requirements and features needed to build a web-based game of Tic-Tac-Toe.