HumanCentric Software Engineering COSC 494594 Spring 2019 Dr

  • Slides: 31
Download presentation
Human-Centric Software Engineering COSC 494/594, Spring 2019, Dr. Austin Henley

Human-Centric Software Engineering COSC 494/594, Spring 2019, Dr. Austin Henley

Today… • • • My experience with SE What is SE? What is human-centric

Today… • • • My experience with SE What is SE? What is human-centric SE? What topics will we cover? What will you get out of this? Course structure

Today… • • • My experience with SE What is SE? What is human-centric

Today… • • • My experience with SE What is SE? What is human-centric SE? What topics will we cover? What will you get out of this? Course structure

My SE experience • In undergrad, I made $$$ by making games

My SE experience • In undergrad, I made $$$ by making games

My SE experience • In grad school, I did 5 internships

My SE experience • In grad school, I did 5 internships

My research • Tools to make software engineers more productive

My research • Tools to make software engineers more productive

My research • Tools to make software engineers more productive If you’re interested, I’m

My research • Tools to make software engineers more productive If you’re interested, I’m hiring Ph. D students…

Survey! What are your experiences? • Internships? • Full-time jobs lined up? • Have

Survey! What are your experiences? • Internships? • Full-time jobs lined up? • Have you made $$$ off anything you’ve built?

Today… • • • My experience with SE What is SE? What is human-centric

Today… • • • My experience with SE What is SE? What is human-centric SE? What topics will we cover? What will you get out of this? Course structure

What is Software Engineering? • Software engineering is the application of a systematic, disciplined,

What is Software Engineering? • Software engineering is the application of a systematic, disciplined, quantifiable approach to the design, development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. – IEEE’s definition

What does SE consist of? Requirements Design Implementation Verification Maintenance

What does SE consist of? Requirements Design Implementation Verification Maintenance

ing it on Ev a u l a n sig De ts en em

ing it on Ev a u l a n sig De ts en em ir qu Re Initial Planning Plan n Analys is What does SE consist of? e lem Imp n o i t ta n Test ing Deployment

Software failures cost $1. 1 trillion in 2016 [Tricentis ’ 17]

Software failures cost $1. 1 trillion in 2016 [Tricentis ’ 17]

The “Software Crisis” Since the 1960 s (More like a depression) Of 28, 000

The “Software Crisis” Since the 1960 s (More like a depression) Of 28, 000 projects completed in 2000… 2002 Study: 78% of orgs landed in court (Standish Group) (Cutter Consortium)

Although stats improving, challenges remain… More headlines (Oct 2013–Aug 2014) • Tech Problems Plague

Although stats improving, challenges remain… More headlines (Oct 2013–Aug 2014) • Tech Problems Plague First Day Of Health Exchange Rollout ( ) • Health Exchange Tech Problems Point To A Thornier Issue • It's Easy To Blame The Canadians For Health. Care. gov Problems • Sebelius: Hold Me Accountable For Health. Care. gov Debacle • Add Security To The List Of Health. Care. gov Tech Issues • Oregon's State Exchange May Be Worse Than Health. Care. gov ( ) • Could A Tech Giant Build A Better Health Exchange? Maybe Not • Official In Charge Of Creating Health. Care. gov Steps Down • Giving Up On Its Obamacare Exchange No Cure For Oregon's Ills • Oregon Sues Oracle For "Abysmal" Healthcare Website

You can help save the world! Anecdotal experience: • New grad? West coast tech

You can help save the world! Anecdotal experience: • New grad? West coast tech will pay $150 k salary/stock • Masters degree? Expect around $200 k

Human-Centric Software Engineering • Devs are people! • All bugs are caused by people.

Human-Centric Software Engineering • Devs are people! • All bugs are caused by people. – Flawed requirements – Flawed design – Flawed implementation • So… how do we solve humans?

Today… • • • My experience with SE What is SE? What topics will

Today… • • • My experience with SE What is SE? What topics will we cover? What will you get out of this? Course structure

Broadly… • Understanding developer behavior • Tools to make developers more productive • Evaluating

Broadly… • Understanding developer behavior • Tools to make developers more productive • Evaluating tools

Example topics • • Productivity Code editors Debugging Program comprehension Version control Continuous integration

Example topics • • Productivity Code editors Debugging Program comprehension Version control Continuous integration Documentation API usability • • • Code reviewing Collaboration Software testing Software metrics Refactoring Program analysis Usability of tools End-user programming Visual languages

Today… • • • My experience with SE What is SE? What topics will

Today… • • • My experience with SE What is SE? What topics will we cover? What will you get out of this? Course structure

Real-world knowledge • State of the practice on dev tools • State of the

Real-world knowledge • State of the practice on dev tools • State of the research on human aspects of dev http: //flic. kr/p/9 DTDXi • Goal: make you a better developer & get that job

Today… • • • My experience with SE What is SE? What topics will

Today… • • • My experience with SE What is SE? What topics will we cover? What will you get out of this? Course structure

Course Structure • Presentations • Participation • Project • No exams • Few lectures

Course Structure • Presentations • Participation • Project • No exams • Few lectures – How to evaluate dev tools? – How to comprehend a large codebase?

Participation • Class time is based around discussions • Everyone should contribute – You’ll

Participation • Class time is based around discussions • Everyone should contribute – You’ll be graded on it! • Discussions will be led a student • Occasional in-class activities – Competition: fix a small bug as fast as possible – Give feedback on each other’s project – May require some effort outside of class (install a tool)

Presentations • Everyone will regularly present • 10 -15 minutes • Demo a tool

Presentations • Everyone will regularly present • 10 -15 minutes • Demo a tool or present a paper • Each week will have a theme • You have some choice in what you present • Based on how many people enrolled… – 1 paper presentation and 2 tool demos • If you aren’t presenting… at least skim the papers!

Who and what gets presented? • Each Friday you can volunteer to present next

Who and what gets presented? • Each Friday you can volunteer to present next week • I’ll decide the topic and papers • You can decide which tools to demo for the topic • I’ll provide templates

Example weeks • Monday: 2 paper presentations and discussions • Wed: 3 tool demos

Example weeks • Monday: 2 paper presentations and discussions • Wed: 3 tool demos and discussions • Fri: 2 tool demos & decide who will present next week • Monday: lecture and activity • Wed: 3 tool demos and discussions • Fri: 2 tool demos & decide who will present next week

Project • Design, implement, and evaluate a dev tool • More details to come…

Project • Design, implement, and evaluate a dev tool • More details to come…

This course is your oyster • Have an interest in a topic? • Want

This course is your oyster • Have an interest in a topic? • Want to try an activity in-class? • Prepping for the job market? Let me know! I might fit it in. This class is meant to benefit you.

Let’s tour the course web page https: //tiny. utk. edu/cosc 494

Let’s tour the course web page https: //tiny. utk. edu/cosc 494