hci programming studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · hci programming...

38
COGS 121 HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew Du Brian Soe Website: cogs121.ucsd.edu Jingchun Zhou Jacob Browne

Upload: others

Post on 21-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

COGS 121 HCI Programming Studio

Spring 2016

Instructor: Nadir Weibel

Amy Rae Fox

Jesse Qin

Jasmine Roberts

Andrew Du

Brian Soe

Website: cogs121.ucsd.edu

Jingchun Zhou

Jacob Browne

Page 2: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Project Managementwhat it is (and isn’t!)

understanding the SDLCmaking a productive teamagile vs. waterfall methods

the role of designtips and tools

Page 3: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

What is a Project?

Page 4: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

a temporary endeavor undertaken to create a unique product, service or result

Project Management Book of Knowledge, 2004

Page 5: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

What is Project Management?

Page 6: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

The application of knowledge, skills, tools, and techniques to project activities

to meet the project requirements.

Project Management Institute, 2004

Page 7: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

• a discipline and profession

• a set of practices that anyone can (and should!) apply

• governed by the Project Management Institute, which sets standards and administers certifications

• knowledge codified into the PMBOK: Project Management Book of Knowledge

Project Management

www.pmi.org

Page 8: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

• management of resources & constraints to meet a goal as efficiently as possible– Resources: Time, money, people, equipment– Constraints: preceding task completion

• a science or an art? – Science: based on statistical means & norms– Art: based on intuition into human behavior

Project Management

Balancing the known and unknown in a chaotic and risk-filled environment in order to achieve a more predictable result

Page 9: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

16

The Emergence of Standardized PM

• Organized as a formal Discipline in 1917• Henry Gantt introduced standardized PM tools • Gantt Chart – visual tracking of tasks and

resources, including relationships between tasks• Created out of need and frustration as

industrialization became ever more complex• Little change to PM for another 40 years

Page 10: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Project Management

www.pmi.org

Initiating

Planning

Executing

Monitoring and Controlling

Closing

ScopeTimeCostQualityHuman ResourcesCommunicationRiskProcurementStakeholdersIntegration

5 Processes 10 Knowledge Areas

Page 11: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Project Management Book of Knowledge, 2004

develop project plan

manage project work

collect requirements & define scope

perform quality assurance

manage project team

What’smostrelevanttous?

Page 12: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Project Management in Software Development

Managing the SDLC Systems Development Lifecycle

“Waterfall”

Plan Analyze Design Build Test Deliver

Page 13: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Enter agile…

Page 14: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

The Agile ManifestoWe are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Manifesto for Agile Software Development, 2001

Page 15: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

AgileProjectManagement

• Premise:softwareprojectsareunpredictableandmarketuncertaintyisgoingtodrivechange.

• Requirementswillneedtochangeoverthelifeoftheproject,andthemoreuncertaintheprojectis,themoretheorganizationshouldplantoadapt

• Projectrequirementsshouldbewrittenasthinverticalslicesoftheoverallsystemandconstructedinsuchawaythattheyaremostlyindependent,whichallowsthemtobeprioritizedandimplementedinanyorder.

Page 16: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

AgileProjectManagement

A philosophyA set of practices and methodsResponsive to change Focused on development

Better for all projectsAn excuse to not planBuild first, design laterAn excuse to not document

IS IS NOT

and others…

Page 17: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

“Agile”

Plan Analyze Deliver

Design

Build

Test

Deliver

Plan

“Waterfall”

Plan Analyze Design Build Test Deliver

Page 18: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Requirementsthe“needs”thesystemneedstofulfill(functional,non-functional)DesignsdecisionsonhowtomeetrequirementsActivitiesunitsofwork

Featuresimplementationofdesignstomeetrequirements

Milestonescheckpointsinaprocess

Deliverablestangibleoutcomesdeliveredtothecustomer

Concepts

Page 19: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

9

ToolsGanttChart:Abarchart.Whilevisuallyappealingonatask/durationbasis,itislimitedbecauseitdoesnotshowtaskorresourcerelationshipswell.Strength:easytomaintainandread.

19

Page 20: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

9

ToolsNetworkDiagram:Awirediagram,AlsoknownasaPERTnetworkdiagram.Adiagramthatshowstasksandtheirrelationships.Limitedbecauseitshowsonlytaskrelationships.Strength:easytoreadtaskrelationships.

20

Page 21: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

ProjectControlWorkwiththeclienttodeterminetheprojectneeds&constraints(ANALYZE)Defineprojectmilestonesanddeliverables(PLAN)

whileprojecthasnotbeencompletedorcancelled(EXECUTE) Drawupprojectschedule Initiateactivitiesaccordingtoschedule Wait(forawhile) Reviewprojectprogress Reviseestimatesofprojectparameters Updatetheprojectschedule Re-negotiateprojectconstraintsanddeliverables if(problemsarise)then Initiatetechnicalreviewandpossiblerevision endifendloop

Closeproject(DELIVER)21

Page 22: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

22

An example…Writingaresearchpaper

Page 23: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

23

Requirements:definedbytheassignment,andmyexpectations—>IwilllisttheseinarequirementsbacklogDesignsdecisionsonhowtomeetrequirements—>IwillmakeaproposalsoIcanrememberandgetapprovalfrommyprofessorActivitiesworkIneedtodotomeettherequirements—>Iwillorganizetheworkintologicalunits—aworkbreakdownstructure(WBS)

Featuresthecontentsandqualitiesofthepaper—>Iwillactuallydothework:-)

Milestonesthecheckpointstokeepmyselfontrack—>I’lldefinetheseintheWBSandschedulethemintheprojectplan

Deliverablestangibleoutcomesdeliveredtothecustomer—>I’lldefinetheseintheWBSandschedulethemintheprojectplan

Page 24: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

1:RequirementsDefinition{productgoals}

– 20pages– Doublespaced– Onatopicaddressingaquestionoftheeffectivenessofagileandwaterfallmethods

– Includesaliteraturereview– Includesaproposalforaresearchstudy– Includeshypotheses&expectedresults– IEEEcitationformat– Referenceatleast10peer-reviewedpapers

Page 25: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

2:WorkBreakdownStructure{logicalunitsofworktoaccomplishgoals}

1. PlanningA. Picktopic&researchquestionB. BrainstormpotentialresearchstudiesC. MakelistofpaperstoreadD. DocumentA-CinaproposalE. Discussproposalwithprofessor

2. ResearchingF. ReadresearchpapersG. Documentkeyideas

3. WritingH. OutlinepaperI. WritefirstdraftJ. Discussdraftwithprofessor

4. Editing&PolishingK. RevisedraftL. CheckreferencesandcitationformatM. ChecklengthandformattingN. ProofreadO. Submitpaper

milestone

milestone

milestone

deliverable

deliverable

deliverable

Page 26: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

3:ProjectPlan…partofitactivitynetworkdiagramtofindactivitydependencies

Page 27: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

3:ProjectPlan…partofitganttcharttoestimatetimeandschedulewithdependencies

canalsoreflectassigned“resources”(people),andtoseetheirworkallocations(howmanyhourstheyareassigned)

Page 28: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

ProjectManagementTools

• Trello• Basecamp• Jira• Asana• Github+ZenHub• Tom’sPlanner• Gantter• Github+Zenhub

28

Page 29: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Trello

• Highlyvisual• Flatandsimple• Boards,ListsandCards

• mobileappsavailable

https://trello.com

Page 30: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Basecamp• MorestructureandPMtools

• to-doswithdeadlines• projecttemplates• timetracking• invoicingtools• filebackupa• synchronizingtools• softwaredevelopmenttools.

• Mobile

https://basecamp.com

Page 31: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Jira• ProjectTracking• Agile,Developmentsupport• ProjectPlanning,IssueTracking

• CodeIntegration• Mobile• ConnecttoLDAPandActiveDirectory

• BugTracking• GitIntegration• 1000'sofAdd-ons• OnDemandorHosted• FreeforOpensourceprojects

• eMailNotifications

Page 32: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Gantter

• Web-based,canaddaschromeextension

• EASYtocreateWorkBreakdownStructure

• Ganttchartwithmultiplepeopleandexternalresources

• GoogleDriveintegration

• Exportcapabilities• FREE

Page 33: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Github+Zenhub

• Githubforfreecoderepositoryandsourcecontrol

• Zenhub(FREEChromeextension)addskanban-styleboardsfeaturestoGithubissues

Page 34: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Cloud-based“connectors”

• Zapier:https://zapier.com/• Cloudwork:https://cloudwork.com/

• IFTTT:Ifthisthenthat:https://ifttt.com/

Page 35: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Amy’sPersonalRecommendation

TrelloFor capturing requirements and sorting them into priorities

+

GantterTurning requirements into a WBS and scheduling w/ dependencies

+

Github+ZenhubSource control + feature tracking linked to commits *

Page 36: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

Amy’sAdvice

• Usedeliverableandplanningtemplates• UseasystemlikeGoogleDocsorSlacktorecord&documentyourteammeetings,withspecialattentiontoactionitemsanddecisions

• TakethetimetomakeaGanttchart,andkeepitupdatedbasedonyourprogress

• Keepyourprojectplanfairlysimple(nottoodetailedattheactivitylevel),butsetclearmilestones(withdates!)andsticktothem

• Learnthelingo…itmayhelpyougetajob!36

Page 37: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

References

ProjectManagementInsmtute.(2004).Aguidetotheprojectmanagementbodyofknowledge(PMBOKguide).NewtownSquare,Pa:ProjectManagementInsmtute.TaskForceonPMCurricula(2015).PMCurriculumandResources.NewtownSquare,Pa:ProjectManagementInsmtute.Beck,Kentetal."ManifestoForAgileSopwareDevelopment".Agilemanifesto.org.N.p.,2001.Web.25Mar.2016.

Want to learn more about PM practices, certification, templates? See Amy at office hours - before class on Thursdays

Page 38: HCI Programming Studiocogs121.ucsd.edu/data/uploads/lecture-slides/cogs... · HCI Programming Studio Spring 2016 Instructor: Nadir Weibel Amy Rae Fox Jesse Qin Jasmine Roberts Andrew

1. Customer satisfaction by early and continuous delivery of valuable software

2. Welcome changing requirements, even in late development3. Working software is delivered frequently (weeks rather than

months)4. Close, daily cooperation between business people and developers5. Projects are built around motivated individuals, who should be

trusted6. Face-to-face conversation is the best form of communication (co-

location)7. Working software is the principal measure of progress8. Sustainable development, able to maintain a constant pace9. Continuous attention to technical excellence and good design10. Simplicity—the art of maximizing the amount of work not done—is

essential11. Best architectures, requirements, and designs emerge from self-

organizing teams12. Regularly, the team reflects on how to become more effective, and

adjusts accordingly