• Like
  • Save
Introducing Continuous Integration Using Vsts
Upcoming SlideShare
Loading in...5
×
 

Introducing Continuous Integration Using Vsts

on

  • 1,661 views

A presentation I gave about Continuous Integration and it's role in the software development life cycle with some of my real life experiences.

A presentation I gave about Continuous Integration and it's role in the software development life cycle with some of my real life experiences.

Statistics

Views

Total Views
1,661
Views on SlideShare
1,615
Embed Views
46

Actions

Likes
0
Downloads
23
Comments
0

2 Embeds 46

http://www.techgig.com 42
http://www.slideshare.net 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introducing Continuous Integration Using Vsts Introducing Continuous Integration Using Vsts Presentation Transcript

    • Introducing Continuous Integration using VSTS
      Presented By:
      Mohamed Samy
      Technical Architect/MVP/Geek
    • What lifecycle phase do you hate the most?
      Gathering requirements? Analyzing requirements? High level design? Detailed Design? Development? Testing?
      What lifecycle phase requires the most rework and most experienced developers?
      My sad story, every developers story.
      Problem Definition
    • The Cost of bugs
    • Who’s code is responsible for the problem?
      It was working great on my machine!
      The problem is not with our code, the mainframe/server is very slow.
      Integration nightmares
    • Put the best developers on the job?
      Estimate with a lot of buffering for this phase and pray?
      Leave integration till the end?
      What was done about it?
    • Working on someone else’s code. Who likes to do that?
      Fixing old projects? Upgrading existing code?
      Adding new features?
      Project nightmares
    • Get your hands dirty and start debugging.
      Read the old design docs.
      Attend handover sessions.
      Download the code, build and pray.
      What was done about them?
    • A solution for integration issues.
      Makes getting into a new project easier.
      Increases the quality of the software.
      Reduces development time?
      Introducing CI
    • Unit test
      Testing the smallest part of the code (the method)
      TDD
      Self testing code, code that tests code
      Common terms
    • “Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration summarizing the technique and its current usage. “
      Martin Fowler- Thoughtworks.
      CI definitions
    • Continuous integration describes a set of software engineering practices that speed up the delivery of software by decreasing integration times.
      CI definitions 2
    • We need to spread the pain across the whole development cycle and maybe even from the beginning of the design.
      More frequent small pain instead of one big concentrated jolt of lightning at the end 
      As a developer, life is pain, get used to it!!!!
      My CI definition
    • Maintain a single source control repository
      Automate the build
      Make your build self testing
      Everyone commits every day
      Every Commit Should Build the Mainline on an Integration Machine
      Keep the Build Fast
      Test in a Clone of the Production Environment
      CI practices
    • The seven commandments
    • Compilation
      Test Execution
      Database integration
      Code inspection
      Automated deployment
      Documentation generation
      The 6 ingredients of a build
    • Do you need to develop an enterprise solution that integrates with other applications?
      Is part of your solution running on other platforms? (web services, RPCs, remoting, Com, CORBA)
      Is it a big project with multiple components across multiple teams?
      Are you afraid of the integration phase?
      How do I know I need CI?
    • ICL 1.0- Next to none
      ICL 1.5- Test on 2 DBs
      ICL 2.0- Automated regression
      My Story
    • Are you crazy? You want the developers to write more code?
      We need to ship fast, this will slow us down!
      We can do integration testing at the end of the project.
      How can I convince the PM?
    • We always design on the go!
      Design always evolves even on the waterfall model!
      Things change midway through the project no matter what your methodology.
      The industry’s best kept secret
    • You catch build breaks early on.
      Helps developers communicate frequently about the build.
      less regression
      The feedback loop is smaller.
      Integration testing moves up in the chain.
      Every check-in goes through the integration testing where problems are caught early.
      Continuous integration enforces better development processes.
      Each developer is held accountable.
      You always have a latest-and-greatest build to use in demos, showcases, etc.
      Advantages of CI
    • Maintenance overhead often increases.
      Some teams find that the level of discipline required for continuous integration causes bottlenecks. This often requires a shift in the developer mindset.
      The immediate impact of a check-in often causes a backup because programmers cannot check in partially completed code.
      Disadvantages of CI?
    • Performance testing
      Human interaction with UI e.g. usability testing
      Load testing
      What CI doesn’t do
    • CI Process in TFS
    • Demo
    • http://www.ibm.com/developerworks/java/library/j-ap11297/
      http://msdn.microsoft.com/en-us/library/ms364045(VS.80).aspx
      http://en.wikipedia.org/wiki/Continuous_Integration
      http://www.thevstsguy.com/adventures
      Ahmedbahaa.blogspot.com
      VSTS Fans - facebook
      references