1 / 14

The Struggles of New College Graduates in their First Software Development Job

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. SIGCSE 2008. March 14, 2008. Study Questions.

janellej
Download Presentation

The Struggles of New College Graduates in their First Software Development Job

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 SIGCSE 2008 March 14, 2008

  2. 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 pedagogyImprove developer training at Microsoft

  3. 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 2007.

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

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

  6. 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.

  7. 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.

  8. 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, email, meetings, meeting prep, finding people, managers, teaching, learning, mentoring)

  9. 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)

  10. Beliefs of New Developers

  11. 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?

  12. 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?

  13. 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)

More Related