The Struggles of New College Graduates in their First Software Development Job Andrew Begel, Human Interactions in Programming, MS Research Beth Simon.

Slides:



Advertisements
Similar presentations
Using Data to Tune a Software Team Jonathan Alexander VP Engineering, Vocalocity.
Advertisements

BADM 4400 Skills Portfolio. Agenda Objective Objective Background Background Structure Structure Examples Examples Tips Tips Questions Questions.
PD Plan Agenda August 26, 2008 PBTE Indicators Track
Strand C – In Depth. Competencies 8 and 9: The teacher demonstrates a willingness to examine and implement change, as appropriate. The teacher works productively.
‘Colin, I need to speak to you some time about my own CPD - I’ve been so busy that I just haven’t had time to think about myself… ’. ‘The most important.
…………………………………………………………………………………… DAN NEWMARK PRINCIPAL, APRIMO INC. EPW Process - Setting Expectations and Delivering Performance Evaluations 1.
Oregon Division of DD Tools to Help with Career Planning and Talking about Employment DD Council Guide for Career Discovery Employment Guide to Planning.
Key Skills: Introduction Presented by Bill Haining.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
April 2005RPT Workshop1 Preparing a Successful RPT Application Gail M. Dummer, KIN Suzanne Wilson, TE.
Professional Development Training. The Big Picture The Hermes Model – Slide 3 Your Role as an On-Site Facilitator – Slide 4 What is Asynchronous Learning?
Professional Skills Development
COMPUTER SCIENCE 10: INTRODUCTION TO COMPUTER SCIENCE Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
Job Search Skills. Congratulations! Hiring statistics for recent college graduates.
Presenter: Gary Bates.  “If a certificated employee receives a rating of ineffective or improvement necessary, the evaluator and the certificated employee.
1 Welcome to EQ2430/EQ2435/EQ2440 Project in Wireless Communication Lecture 1 March 20, 2015 Per Zetterberg School of Electrical Engineering.
Education Bachelor’s Degree in Elementary Education Began the Master’s of Special Education program in January of 2011 Professional After graduation Sorensen.
Unit 2: Managing the development of self and others Life Science and Chemical Science Professionals Higher Apprenticeships Unit 2 Managing the development.
Clinical Teaching/Student Teaching
LONGER SCHOOL DAY PARAMETERS & PLANNING TEMPLATE Longer School Day Design Parameters and Planning Template Tuesday, December 13, :30 – 10:30 AM.
1 Commissioned by PAMSA and German Technical Co-Operation National Certificate in Paper & Pulp Manufacturing NQF Level 3 Lead a team, plan, organise and.
PDC Procedures – Individual Growth Action Plan The Individual Growth Action Plan (IGAP) is a plan each individual completes describing professional.
© L.A.C.E. Research Group, 2003 University of Cadiz Eudoxos Project Teaching Science with a Robotic Telescope EVALUATION OF THE EUDOXOS PROJECT The evaluation.
TAKE CONTROL OF YOUR OWN PROFESSIONAL DEVELOPMENT Session 24.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
Assessment Cycle California Lutheran University Deans’ Council February 6, 2006.
Project Workflow. How do you do it? -Discussion-
February 28, 2008The Teaching Center, Washington University The Teaching Citation Program & Creating a Teaching Portfolio Beth Fisher, Ph.D. Assistant.
Fundamental Skills The skills needed as a base for further development You will be better prepared to progress in the world of work when you can: Manage.
CS 110: Introduction to Computer Science Frequently asked questions about a CS major and CS career.
LESSON STUDY INSTRUCTIONAL LEARNING TEAMS – LIVING WITHIN A PROFESSIONAL LEARNING COMMUNITY By Nancy J. Larsen, Ph.D.
South Western School District Differentiated Supervision Plan DRAFT 2010.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Leadership Team July 24, Learning Targets 1. Familiarize and use The Framework of Teaching in the areas of engagement and questioning to observe.
Facilitating Learning in Professional Experience: Mentoring for Success Module 1 - An Introduction.
Jeffrey Murray Test Manager PowerPoint Microsoft Silicon Valley.
Unit 2 (task 28) In this PowerPoint I will tell you about 7 important IT job roles and if a candidate might want one what he would have to do to get one.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Academic Practicum Winter Academic Practicum Seminar2 Agenda 4 Welcome 4 Burning ??’s 4 Routines & Organizational Systems 4 Overview of Academic.
Why do so many adults warn against procrastination (waiting until the last minute to get things done)? Was there ever a time when you waited until the.
CSE8A: Introduction to Programming in Java Fall 2012 Prof. Christine Alvarado cse8afall.weebly.com.
Game Programmer By: Lindsey Holcomb. What they do Game programmers work at the heart of the game development process. They design and write the computer.
Documenting Completion of your PDP
S3.kth.se EQ2430/2440 Lecture 21/3-11 Per Zetterberg.
Silver Arts Award Guide Use this PowerPoint to help you to complete your Silver Arts Award. The instructions in GREEN tell you what you need to do, these.
Increasing Student Engagement Caroline Clements, Ph.D. Director, Center for Teaching Excellence Freshman Seminar Annual Instructor Kickoff August 9 th.
Coaching an Oregon Games Project Challenge team November 14, 2015 Peter Steinfeld –
T Iteration Demo Tikkaajat [PP] Iteration
ECE297 TA GUIDE Project supervision. Agenda M0 feedback Project overview M1 overview Project supervision.
PREPARING FOR A JOB FAIR Joyce Donahue Career Development Coordinator Engineering Career Center BYENG 310 (480)
+ DGM 3870 Web Graphics (Photoshop) Bryce Newell, J.D.
Supervision vs Management. What is… Supervision A developmental process designed to support and enhance an individual’s acquisition of the motivation,
University of California, San Diego Beth Simon Sr. Associate Director of Learning Sciences and Technology, Center for Teaching Development and Lecturer.
INTRODUCTION TO LANGUAGE LEARNING Basics to get you started.
21 st century Teaching and Learning District Educator Deborah Harris EDU620: Meeting Individual Student Needs With Technology Instructor: Adriane Wheat.
Cape Cod Tech Educator Plan Presentation. Educator Plan Form Due October 15 th …. It is an extension of your Goal Setting Form It is either a 1-year or.
UNISON Insert name of Branch here Presented by Insert name of presenter here NMC Revalidation.
Earth Educators’ Rendezvous Workshop Leader Webinar Introduction Workshop Design Best Practices Utilizing the Web Tools Evaluation Instruments David McConnell,
Coaching an Oregon Game Project Challenge team
Good Morning  Please be sure to take care of your belongings.
Good Morning  Please be sure to take care of your belongings.
Good Morning  Please be sure to take care of your belongings.
Good Morning  Please be sure to take care of your belongings.
Good Morning  Please be sure to take care of your belongings.
Good Morning  Please be sure to take care of your belongings.
COM 295 RANK Perfect Education/ com295rank.com.
INFO 461: Cooperative Software Development
Ed 11: Beginning Field Experience
INFO 461: Cooperative Software Development
Continuing Professional Development (CPD)
Presentation transcript:

The Struggles of New College Graduates in their First Software Development Job Andrew Begel, Human Interactions in Programming, MS Research Beth Simon *, University of California, San Diego * Visiting researcher at Microsoft Andrew Begel, Human Interactions in Programming, MS Research Beth Simon *, University of California, San Diego * Visiting researcher at Microsoft March 14, 2008SIGCSE 2008

Study Questions How do new developers learn their jobs? What are the critical skills they need for learning and productivity? How well does university prepare CS graduates for a first job in software engineering? Goals:Improve CS educational pedagogy Improve developer training at Microsoft How do new developers learn their jobs? What are the critical skills they need for learning and productivity? How well does university prepare CS graduates for a first job in software engineering? Goals:Improve CS educational pedagogy Improve developer training at Microsoft

Study Methodology 8 new Microsoft developers  4 BS, 1 MS, 3 PhD  2 USA education, 2 Chinese, 1 Pakistan, 1 Australia, 1 Kuwait, 1 Mexico. All PhD education took place in USA.  Only one had work experience prior to Microsoft (2 years).  Hired between Oct 2006 and March new Microsoft developers  4 BS, 1 MS, 3 PhD  2 USA education, 2 Chinese, 1 Pakistan, 1 Australia, 1 Kuwait, 1 Mexico. All PhD education took place in USA.  Only one had work experience prior to Microsoft (2 years).  Hired between Oct 2006 and March 2007.

But wait, this is Microsoft! Surely, this study couldn’t be relevant for my students. But wait, this is Microsoft! Surely, this study couldn’t be relevant for my students.

The Takeaway New developers’ problems are mainly due to poor communication, not technical skills.

Study Methodology Observations 4-5 times over a two month period (concentrated in early April and late May 2007) Each observation was 2-3 hours. Total of 85 hours. Participants recorded 3-5 minute videos to answer reflective questions (which we provided). Each recorded around 27 videos. Total of 216 videos. $50 Amazon gift certificate paid for each week of participation. Observations 4-5 times over a two month period (concentrated in early April and late May 2007) Each observation was 2-3 hours. Total of 85 hours. Participants recorded 3-5 minute videos to answer reflective questions (which we provided). Each recorded around 27 videos. Total of 216 videos. $50 Amazon gift certificate paid for each week of participation.

TimestampDescription Task TypeSubtask Type Task Type #2 Subtask Type #2 11:45:43 AMreruns copy script. DebuggingReproducing 11:46:18 AMscript done. checks over script output to make sure it looks right. Says that the script is complaining that the files aren't signed. with source directory says that they are signed. Weird. copied successfully, but binaries aren't signed. DebuggingReproducingMeta- Cognition Struggling with Tools 11:47:26 AMShakes head. T is confused. Team lead says they’re signed. But empirical evidence says they're not. DebuggingReproducingMeta- Cognition Confusion 11:48:11 AMT says maybe he wants to sign the binaries himself. Meta- Cognition Planning 11:48:36 AMT mutters to himself “bad bad very bad” Meta- Cognition Reflection

Analysis Methodology Each observation, record action at the moment with timestamp. Each day, code tasks and summarize observations. Each week, abstract activities into categories. Later, resort activities into categories. Recode actions into events a third party could have seen. Each observation, record action at the moment with timestamp. Each day, code tasks and summarize observations. Each week, abstract activities into categories. Later, resort activities into categories. Recode actions into events a third party could have seen.

What Do New Developers Do? Programming (reading >> writing, commenting, proofreading) Working on bugs ((repro, reporting, triage) >> debugging) Testing (writing, running) Revision Control (check in, check out, revert) Documentation (reading >> writing, search) Specifications (reading >> writing) Tools (discovering, finding, installing, using, building) Communication (asking questions, persuasion, coordination, , meetings, meeting prep, finding people, managers, teaching, learning, mentoring) Programming (reading >> writing, commenting, proofreading) Working on bugs ((repro, reporting, triage) >> debugging) Testing (writing, running) Revision Control (check in, check out, revert) Documentation (reading >> writing, search) Specifications (reading >> writing) Tools (discovering, finding, installing, using, building) Communication (asking questions, persuasion, coordination, , meetings, meeting prep, finding people, managers, teaching, learning, mentoring)

The Good and the Bad New devs are good at  Programming  Design  Peer mentoring  Using many strategies when debugging They interact naïvely with other team members when  Asking questions  Triaging and resolving bugs  Attending meetings New devs are bad at  Engaging a large, legacy codebase without using written docs  Reproducing bugs  Using new tools  Reflecting on their own progress (knowing when they are stuck) New devs are good at  Programming  Design  Peer mentoring  Using many strategies when debugging They interact naïvely with other team members when  Asking questions  Triaging and resolving bugs  Attending meetings New devs are bad at  Engaging a large, legacy codebase without using written docs  Reproducing bugs  Using new tools  Reflecting on their own progress (knowing when they are stuck)

Beliefs of New Developers Perfectionism 1.I must prove I am smart, productive and write quality code from day 1. 2.I must do everything by myself. 3.I must fix all bugs I personally find in the code. 4.Don’t ask questions. Delusion 1.It compiles, therefore it works. If it has bugs… well, that’s what testers are for. 2.I know when I get stuck. Self Esteem 1.It can’t be the bug repro instructions, it must be me. 2.My self-worth is directly related to how much I coded today.

Recommendations for CS Educators Scaffold and support social interactions in software teams  Employ legitimate peripheral participation, communities of practice Design higher-fidelity software engineering courses  Work with larger, legacy codebases, pre-existing teams, minimal docs  Make bug fixes, implementation changes, or non-critical new features  Deliver capricious management directives Meta-cognitive skill development: Am I stuck now? Scaffold and support social interactions in software teams  Employ legitimate peripheral participation, communities of practice Design higher-fidelity software engineering courses  Work with larger, legacy codebases, pre-existing teams, minimal docs  Make bug fixes, implementation changes, or non-critical new features  Deliver capricious management directives Meta-cognitive skill development: Am I stuck now?

Future Work on this Study Describe differences between novice and expert professional developers. Recode observation logs with “functional coding” schema. Analyze video diaries: What do new developers say when reflecting on their own learning? Describe differences between novice and expert professional developers. Recode observation logs with “functional coding” schema. Analyze video diaries: What do new developers say when reflecting on their own learning?

Future Research Plans Improve “onboarding” process at Microsoft Mentoring, mentoring, mentoring Modeling appropriate behavior Teach managers how to teach Study new hires in Other roles (requirements engineering, testing) Non-USA locations (e.g. China, India) Globally distributed development Mass onboarding (corporate acquisitions) Improve “onboarding” process at Microsoft Mentoring, mentoring, mentoring Modeling appropriate behavior Teach managers how to teach Study new hires in Other roles (requirements engineering, testing) Non-USA locations (e.g. China, India) Globally distributed development Mass onboarding (corporate acquisitions)