SlideShare a Scribd company logo
1 of 17
Real World Software Development Methodology Bart Lowe Senior Consultant
Agenda Decision Source Methodology Iterative Deployments Importance of Analysis Continuous Integration Role of Testing Job Seeking Advice
Analysis Improper analysis is the number one cause for project failure The goal of analysis is to make sure that the software actually solves someone’s problem. Proper analysis ensures that everyone has the correct assumptions and expectations.
Continuous Integration Source Control Automated Builds Self-Testing Builds Automated Deployment Continuous Integration Server Contrary to popular belief, continuous integration is an attitude, not a tool. --James Shore
Source Control Developers should commit to the mainline frequently. Ensures problems are found quickly when used in conjunction with self-testing builds. Don’t commit changes that will break the build. Developers should get the latest version and run a local test build before committing changes. Store everything required to ship the product (including database scripts).
Automatic Builds Ensures that your build is documented & repeatable. Tips Build only from a full checkout of source control. Maintain a history of past builds. Make it easy for everyone to get latest executables. Broken builds should be fixed ASAP. Number your builds. Keep your builds fast. Treat build scripts as code.  Use a build scripting tool such as Nant.
Self Testing Builds Unit Testing Test Driven Development  Failed Tests should cause the build to fail Tool: Nunit Code Coverage Testing Tests the how much of your code is exercised by your unit tests. Tool: NCover Code Analysis Validates conformance to design guidelines. Tool: FxCop
Automatic Deployment Deployments can be just as error prone as builds. Strive for one click deployments. Create a deployment script for each environment (Dev, QA, Production) Include a rollback mechanism in your deployment Create deployment scripts with every build.
Continuous Integration Server A Continuous Integration server brings it all together. Automatically triggers a build when a developer checks in code. Provides a communication center for your build.  Records what changes where made since the last build along with who made the changes. Alerts team members when a build breaks Allows you to see detailed test results Provides build history reporting
Helpful Links Cruise Control .Net http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET Nant tasks ,[object Object],FxCop http://www.gotdotnet.com/Team/FxCop/ Nunit http://www.nunit.org/
Other Tools  Ndoc Automatic class library documentation http://ndoc.sourceforge.net/ Watir Ruby based web application testing http://wtr.rubyforge.org/ Fitnesse Allows non-technical users to define acceptance tests http://fitnesse.org/ Simian	 Looks for duplication in large software code bases. http://www.redhillconsulting.com.au/products/simian/
Role of Testing Testing is often the most disrespected role of software development A testing strategy should be formed at the very beginning of  a project.  Test Early Test Often. Testing is a very specialized skill A defect database is a critical component of any competent software team.
For Presentation Slides Email bart.lowe@decisionsource.com

More Related Content

What's hot

WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer GuideWSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guidehugo lu
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of LifeMelissa Benua
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationhugo lu
 
Simple Continous Integration
Simple Continous IntegrationSimple Continous Integration
Simple Continous IntegrationRicky Martaputra
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deploymentMartijn van der Kamp
 
Continuous Integration - What even is it?
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?Rob Jacoby
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentChristopher Read
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery appliedMike McGarr
 
Intro to CI/CD using Docker
Intro to CI/CD using DockerIntro to CI/CD using Docker
Intro to CI/CD using DockerMichael Irwin
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationamscanne
 
DevQAOps - Surviving in a DevOps World
DevQAOps - Surviving in a DevOps WorldDevQAOps - Surviving in a DevOps World
DevQAOps - Surviving in a DevOps WorldWinston Laoh
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automationrenard_vardy
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationtwuniversity
 
Improving software quality using Continuous Integration
Improving software quality using Continuous IntegrationImproving software quality using Continuous Integration
Improving software quality using Continuous IntegrationWouter Konecny
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkinsvodQA
 

What's hot (20)

Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 
WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer GuideWSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guide
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of Life
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Simple Continous Integration
Simple Continous IntegrationSimple Continous Integration
Simple Continous Integration
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Continuous Integration - What even is it?
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
CICD by Teerapat
CICD by TeerapatCICD by Teerapat
CICD by Teerapat
 
Intro to CI/CD using Docker
Intro to CI/CD using DockerIntro to CI/CD using Docker
Intro to CI/CD using Docker
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
DevQAOps - Surviving in a DevOps World
DevQAOps - Surviving in a DevOps WorldDevQAOps - Surviving in a DevOps World
DevQAOps - Surviving in a DevOps World
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Improving software quality using Continuous Integration
Improving software quality using Continuous IntegrationImproving software quality using Continuous Integration
Improving software quality using Continuous Integration
 
Devops | CICD Pipeline
Devops | CICD PipelineDevops | CICD Pipeline
Devops | CICD Pipeline
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkins
 

Viewers also liked

Overview of egls requirement list
Overview of egls requirement listOverview of egls requirement list
Overview of egls requirement listMakoto Murata
 
Why your employer brand matters whitepaper
Why your employer brand matters   whitepaperWhy your employer brand matters   whitepaper
Why your employer brand matters whitepaperBalakrisna
 
นาโนเทคโนโลยี (Man and tech)
นาโนเทคโนโลยี (Man and tech)นาโนเทคโนโลยี (Man and tech)
นาโนเทคโนโลยี (Man and tech)sudza
 
如何抓住青春的尾巴又免開刀
如何抓住青春的尾巴又免開刀如何抓住青春的尾巴又免開刀
如何抓住青春的尾巴又免開刀Ivan Lin
 
Egls sapporo meeting
Egls sapporo meetingEgls sapporo meeting
Egls sapporo meetingMakoto Murata
 
Recruitment Process
Recruitment ProcessRecruitment Process
Recruitment ProcessBalakrisna
 
韓国教育ICT標準化動向
韓国教育ICT標準化動向韓国教育ICT標準化動向
韓国教育ICT標準化動向Makoto Murata
 
Epub3.0の国際デジュール動向、現在協議検討されていることについて
Epub3.0の国際デジュール動向、現在協議検討されていることについてEpub3.0の国際デジュール動向、現在協議検討されていることについて
Epub3.0の国際デジュール動向、現在協議検討されていることについてMakoto Murata
 
W3 c日本語組版ノートとepub3
W3 c日本語組版ノートとepub3W3 c日本語組版ノートとepub3
W3 c日本語組版ノートとepub3Makoto Murata
 
R E C R U I T M E N T
R E C R U I T M E N TR E C R U I T M E N T
R E C R U I T M E N TBalakrisna
 
W3C日本会議発表資料
W3C日本会議発表資料W3C日本会議発表資料
W3C日本会議発表資料Makoto Murata
 
The Data Warehouse Lifecycle
The Data Warehouse LifecycleThe Data Warehouse Lifecycle
The Data Warehouse Lifecyclebartlowe
 

Viewers also liked (14)

Overview of egls requirement list
Overview of egls requirement listOverview of egls requirement list
Overview of egls requirement list
 
Why your employer brand matters whitepaper
Why your employer brand matters   whitepaperWhy your employer brand matters   whitepaper
Why your employer brand matters whitepaper
 
นาโนเทคโนโลยี (Man and tech)
นาโนเทคโนโลยี (Man and tech)นาโนเทคโนโลยี (Man and tech)
นาโนเทคโนโลยี (Man and tech)
 
如何抓住青春的尾巴又免開刀
如何抓住青春的尾巴又免開刀如何抓住青春的尾巴又免開刀
如何抓住青春的尾巴又免開刀
 
Egls sapporo meeting
Egls sapporo meetingEgls sapporo meeting
Egls sapporo meeting
 
Recruitment Process
Recruitment ProcessRecruitment Process
Recruitment Process
 
Menulis proposal
Menulis proposalMenulis proposal
Menulis proposal
 
韓国教育ICT標準化動向
韓国教育ICT標準化動向韓国教育ICT標準化動向
韓国教育ICT標準化動向
 
Epub3.0の国際デジュール動向、現在協議検討されていることについて
Epub3.0の国際デジュール動向、現在協議検討されていることについてEpub3.0の国際デジュール動向、現在協議検討されていることについて
Epub3.0の国際デジュール動向、現在協議検討されていることについて
 
W3 c日本語組版ノートとepub3
W3 c日本語組版ノートとepub3W3 c日本語組版ノートとepub3
W3 c日本語組版ノートとepub3
 
R E C R U I T M E N T
R E C R U I T M E N TR E C R U I T M E N T
R E C R U I T M E N T
 
BAB IV Norma
BAB IV NormaBAB IV Norma
BAB IV Norma
 
W3C日本会議発表資料
W3C日本会議発表資料W3C日本会議発表資料
W3C日本会議発表資料
 
The Data Warehouse Lifecycle
The Data Warehouse LifecycleThe Data Warehouse Lifecycle
The Data Warehouse Lifecycle
 

Similar to Software engineering

Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile ME
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopWajih Aslam
 
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous IntegrationDelivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous IntegrationAspire Systems
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...eleksdev
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
Hudson
HudsonHudson
Hudson8x8
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery Sarah Elson
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case StudyIndicThreads
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationJoseph Wang
 
Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approachAleksandr Tsertkov
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile EngineeringJohn Lewis
 
Back to basics - PHPUnit
Back to basics - PHPUnitBack to basics - PHPUnit
Back to basics - PHPUnitSebastian Marek
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityIvan Porta
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdfMahmoudAlnmr1
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcityMd Jawed
 

Similar to Software engineering (20)

Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loop
 
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous IntegrationDelivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Hudson
HudsonHudson
Hudson
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approach
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
 
Back to basics - PHPUnit
Back to basics - PHPUnitBack to basics - PHPUnit
Back to basics - PHPUnit
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcity
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 

Software engineering

  • 1. Real World Software Development Methodology Bart Lowe Senior Consultant
  • 2. Agenda Decision Source Methodology Iterative Deployments Importance of Analysis Continuous Integration Role of Testing Job Seeking Advice
  • 3. Analysis Improper analysis is the number one cause for project failure The goal of analysis is to make sure that the software actually solves someone’s problem. Proper analysis ensures that everyone has the correct assumptions and expectations.
  • 4. Continuous Integration Source Control Automated Builds Self-Testing Builds Automated Deployment Continuous Integration Server Contrary to popular belief, continuous integration is an attitude, not a tool. --James Shore
  • 5. Source Control Developers should commit to the mainline frequently. Ensures problems are found quickly when used in conjunction with self-testing builds. Don’t commit changes that will break the build. Developers should get the latest version and run a local test build before committing changes. Store everything required to ship the product (including database scripts).
  • 6. Automatic Builds Ensures that your build is documented & repeatable. Tips Build only from a full checkout of source control. Maintain a history of past builds. Make it easy for everyone to get latest executables. Broken builds should be fixed ASAP. Number your builds. Keep your builds fast. Treat build scripts as code. Use a build scripting tool such as Nant.
  • 7.
  • 8. Self Testing Builds Unit Testing Test Driven Development Failed Tests should cause the build to fail Tool: Nunit Code Coverage Testing Tests the how much of your code is exercised by your unit tests. Tool: NCover Code Analysis Validates conformance to design guidelines. Tool: FxCop
  • 9. Automatic Deployment Deployments can be just as error prone as builds. Strive for one click deployments. Create a deployment script for each environment (Dev, QA, Production) Include a rollback mechanism in your deployment Create deployment scripts with every build.
  • 10. Continuous Integration Server A Continuous Integration server brings it all together. Automatically triggers a build when a developer checks in code. Provides a communication center for your build. Records what changes where made since the last build along with who made the changes. Alerts team members when a build breaks Allows you to see detailed test results Provides build history reporting
  • 11.
  • 12. Other Tools Ndoc Automatic class library documentation http://ndoc.sourceforge.net/ Watir Ruby based web application testing http://wtr.rubyforge.org/ Fitnesse Allows non-technical users to define acceptance tests http://fitnesse.org/ Simian Looks for duplication in large software code bases. http://www.redhillconsulting.com.au/products/simian/
  • 13. Role of Testing Testing is often the most disrespected role of software development A testing strategy should be formed at the very beginning of a project. Test Early Test Often. Testing is a very specialized skill A defect database is a critical component of any competent software team.
  • 14.
  • 15.
  • 16.
  • 17. For Presentation Slides Email bart.lowe@decisionsource.com

Editor's Notes

  1. No Demos needed here.
  2. Describe and showReference App functionality and architecture.Describe whatNant is.
  3. Talk about build process at a high level before drilling into details.
  4. Show Nunit GUIShow FxCop GUIWalk through Nunit and FxCop steps in build scriptDemonstrate what happens when a unit test fails.
  5. Show Deployment script section of Build Script.Discuss process for deploying database scripts.Show resulting scripts
  6. Show Cruise Control .netShow cctrayDemonstrate what happens when a build is triggered.