+ All Categories
Home > Documents > Module 6 the Developer's Perspective

Module 6 the Developer's Perspective

Date post: 14-Apr-2018
Category:
Upload: eduardo-quintanilla
View: 220 times
Download: 0 times
Share this document with a friend

of 18

Transcript
  • 7/30/2019 Module 6 the Developer's Perspective

    1/18

    Module 6: TheDevelopers Perspective

  • 7/30/2019 Module 6 the Developer's Perspective

    2/18

    Overview

    Value-up Development Practices

    Improving Code Quality with VSTS

  • 7/30/2019 Module 6 the Developer's Perspective

    3/18

    Lesson 1: Value-up Development Practices

    Value-up Development Principles

    Quality Barriers

  • 7/30/2019 Module 6 the Developer's Perspective

    4/18

    Value-up Development Principles

    Focus on the development of deliverables that thecustomer can evaluate

    Embed quality assurance techniques throughout thelifecycle

    Eliminate processes that produce poor quality code

    Use tools to produce high quality code and reportlessons learned

  • 7/30/2019 Module 6 the Developer's Perspective

    5/18

    Quality Barriers

    Process Issues Leading to Quality Problems

    Poorly communicated, misunderstood, or out-of-daterequirements

    Programming errors

    Lack of testing feedback

    Version skew

    Lack of transparency

    1

    3

    4

    5

    2

  • 7/30/2019 Module 6 the Developer's Perspective

    6/18

    Lesson 2: Improving Code Quality with VSTS

    Using TDD to Ensure Requirements Clarity

    Demonstration: Unit Testing and Code Coverage

    Addressing Programming Errors with Code Analysis

    Demonstration: Enforcing Code Analysis with PolicyAddressing Code Quality with Profiling

    Demonstration: Code Metrics and Profiling

    Addressing Version Skew with Source Control

    Automating the Build

    Using Build Verification Tests

    Making Work Transparent

  • 7/30/2019 Module 6 the Developer's Perspective

    7/18

    Using TDD to Ensure Requirements Clarity

    TDD Benefits

    Forces a clear understanding of therequirements

    Catches mistakes earlyEncourages small increments andreuse to avoid unnecessary code

    Creates code that is easier to evolveand maintain

    Improves code quality

    Unit testing and coverage analysis can provideimmediate feedback about the code

    Frequent testing provides a measurement of variation

    Developers can find bugs introduced by new or

    refactored code

  • 7/30/2019 Module 6 the Developer's Perspective

    8/18

    Demonstration: Unit Testing and Code Coverage

  • 7/30/2019 Module 6 the Developer's Perspective

    9/18

    Addressing Programming Errors with Code Analysis

    Manual and automated code inspection techniques canhelp address programming errors

    VSTS has automated code review tools built-in

    FxCop for managed code

    PreFast for unmanaged code

    Code review tools can be run as part of the build process

    Check-in policies can be used to enforce automated

    code analysis

  • 7/30/2019 Module 6 the Developer's Perspective

    10/18

    Demonstration: Enforcing Code Analysis with Policy

  • 7/30/2019 Module 6 the Developer's Perspective

    11/18

    Addressing Code Quality with Profiling

    VSTS Profiler is a tool that helps find resource bottlenecks in your application

    Slow code (CPU bottleneck)

    Disk thrashing

    Memory allocation

  • 7/30/2019 Module 6 the Developer's Perspective

    12/18

    Demonstration: Code Metrics and Profiling

  • 7/30/2019 Module 6 the Developer's Perspective

    13/18

    Addressing Version Skew with Source Code Control

    Work Items resolved by this

    check-in

    Code, Security and

    Performance

    Reviewer NotesFiles to Check-in

    Notes Describing the

    Changes

    I l di th D t b U d U ifi d Ch

  • 7/30/2019 Module 6 the Developer's Perspective

    14/18

    Including the Database Under Unified ChangeManagement and Quality Control

    VSTS manages the database like other assets

    Supports offline database development

    Collection of files that represent your true schema

    Changes to schema normally have an immediate affect

    With offline project nothing changes until you deploy thechanges

    You can also run T-SQL unit tests

    Your database and code is now under unified changemanagement and unified quality practices

  • 7/30/2019 Module 6 the Developer's Perspective

    15/18

    Automating the Build

    Version control is incomplete without an automatedbuild system

    Build system needs to

    Automate the compilation

    Automate tracking and testing of the binaries against thesource versions

    Provide as many quality checks as possible

    At minimum, your build should

    Create the output binariesRun your code analysis

    Run your build verification tests

  • 7/30/2019 Module 6 the Developer's Perspective

    16/18

    Using Build Verification Tests

    BVTs are tests run as part of the automated buildBVTs determine whether a build is ready to be releasedfor testing

    BVTs generally include

    Any automated test that doesnt require manual setup

    Majority of unit tests, plus component integration testsand scenario tests

    BVTs should have high code coverage

  • 7/30/2019 Module 6 the Developer's Perspective

    17/18

    Making Work Transparent

    When code is checked in, you identify the tasks andscenarios that the delivered code implements

    This links the work items to a changeset

    This traceability

    Drives reports such as Remaining Work and Velocity

    Drives the build report so the whole team (notablytesters) can see what work is available

  • 7/30/2019 Module 6 the Developer's Perspective

    18/18

    Module Review

    Value-up development centers on delivering workingcode to customer quality

    VSTS tools support activities aimed at helpingdevelopers build higher quality code

    TDD forces explicit consideration of requirementsCode quality helped by static code analysis tools and

    profiling

    VSTS integrates version control and build automation


Recommended