CODE REVIEWS PART OF OOSWE by Johannes Unterstein - - PDF document

code reviews part of ooswe
SMART_READER_LITE
LIVE PREVIEW

CODE REVIEWS PART OF OOSWE by Johannes Unterstein - - PDF document

CODE REVIEWS PART OF OOSWE by Johannes Unterstein unterstein@me.com AGENDA INTRODUCTION INTRODUCTION Wording and communication Periphery Breaks Test Source code needed for practical review :-) Server:


slide-1
SLIDE 1

CODE REVIEWS PART OF OOSWE

by Johannes Unterstein unterstein@me.com

AGENDA

slide-2
SLIDE 2

INTRODUCTION INTRODUCTION

  • Wording and communication
  • Periphery
  • Breaks
  • Test
  • Source code needed for practical review :-)
  • Server: http://it-review.dhbw-stuttgart.de/
slide-3
SLIDE 3

MYSELF

  • Johannes Unterstein, unterstein@me.com
  • Finished DHBW in 2010
  • Currently software developer at 1&1 Internet AG
  • huge and distributed eBusiness web application
  • e.g. eShops, WebAnalytics, Search engine marketing

WHO IS HERE?

  • Which companies? Are you developers?
  • Who worked in a team yet?
  • How did you handle this situation?
  • Did your mentors reviewed your code?
  • Did you participate a code review?
  • What do you expect of this event?
slide-4
SLIDE 4

WHY THIS EVENT?

  • My first commit at 1&1
  • Objective view of source code
  • Separation of code remark and personal criticism
  • Better software quality
  • Desired presence in the academic world

THEORETICAL BASICS

slide-5
SLIDE 5

WHAT IS A REVIEW

  • Review in general
  • Look at things, re-view
  • After factoring process
  • Reflect things
  • Check correctness
  • View with mental distance

TARGETS

  • Code
  • Components
  • Architectures, Designs
  • Refactorings, Tests
  • Projects
slide-6
SLIDE 6

PRECONDITIONS

  • Team
  • Ability of constructive

criticism

  • Common code base
  • Common quality

entitlement

  • Administrative
  • Objective and diplomatic

moderation

  • Management
  • Suitable software

CLASSIFICATION

  • Important part of the software development process
  • Tool to improve software quality
  • No compensation for tests
  • Continuous vs. dedicated
  • It‘s not for free
slide-7
SLIDE 7

WHY

  • Continuous quality assurance
  • Prevent bugs
  • Distribution of knowledge
  • „Acceptance ritual“, new co-workers
  • Estimate coding skills of team members
  • Improve coding skills of all participants

WHAT KIND OF

  • Classic code reviews
  • Continuous code reviews
  • Extreme programming / agile processes
  • Open source
slide-8
SLIDE 8

HOW TO USE

  • Classic review process and tools
  • Web based
  • Commit mails (minimum)
  • Early recognition
  • Mentor model
  • Outsourcing

WHAT TO REVIEW

  • Defined amount of code
  • Semantically closed piece of software
  • Single commits
  • Diff of two revision
  • Size matters
  • Developers are expensive ;-)
slide-9
SLIDE 9

WHO

  • Roles
  • Author(s)
  • Organization
  • Reviewers
  • Moderator
  • People
  • According team
  • As much as possible
  • Good mix

COMMON REVIEW PROCESS

the classic way

slide-10
SLIDE 10

PREPARATION

  • Initialization
  • Organized by assistance or author(s)
  • Which code?
  • Which participants?
  • Meeting
  • Infrastructure

DISTRIBUTION

  • Code
  • Defined revision or tag
  • Tools, accounts, access ...
slide-11
SLIDE 11

INDIVIDUAL PHASE

  • Each participant reviews the code for himself
  • Makes remarks
  • Discipline
  • First step of knowledge transfer
  • Be thorough and handle with care
  • Take your time

THE REVIEW

  • Plan enough time
  • Don`t bother about usual

discussions

  • May not fit all organizations
  • Process
  • All points sequentially
  • Decide if valid
  • Decide how to handle
  • Decide who will handle
slide-12
SLIDE 12

REWORK AND CHECK

  • Solve issues
  • Mark tickets as resolved
  • Check the rework and close the ticket

FURTHER ASPECTS

slide-13
SLIDE 13

PROFIT - PEOPLE

  • Author(s)
  • Receives feedback
  • Profits from the know how of other participants
  • Reviewers
  • Know how exchange
  • Profits from the know how of other participants

PROFIT - CODE

  • Prevent, reduces bugs
  • Improves code quality
  • Improves code, product, project knowledge
  • Spreads knowledge
slide-14
SLIDE 14

PSYCHOLOGIC ASPECTS

  • Acceptance
  • Oh god, my code is reviewed!
  • Inspection, disgrace, transparency ...
  • Objective view vs. take to be personal
  • The code isn`t you!
  • Positive experience for the author

AUTOMATIC ANALYSIS

  • Goals
  • Improve software quality
  • Classification
  • Tools
  • Checkstyle
  • IDE build in tools
  • Findbug
  • Other metric tools
slide-15
SLIDE 15

OUTSOURCING

  • Pros:
  • Objectivity
  • Know how
  • New ideas
  • Cons:
  • Acceptance
  • Know how
  • Internals
  • Best practices
  • Standards, ...