SlideShare a Scribd company logo
Real World Software Development MethodologyBart LoweSenior Consultant
AgendaDecision Source MethodologyIterative DeploymentsImportance of AnalysisContinuous IntegrationRole of TestingJob Seeking Advice
AnalysisImproper analysis is the number one cause for project failureThe 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 IntegrationSource ControlAutomated BuildsSelf-Testing BuildsAutomated DeploymentContinuous Integration ServerContrary to popular belief, continuous integration is an attitude, not a tool.--James Shore
Source ControlDevelopers 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 BuildsEnsures that your build is documented & repeatable.TipsBuild 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.
Software engineering
Self Testing BuildsUnit TestingTest Driven Development Failed Tests should cause the build to failTool: NunitCode Coverage TestingTests the how much of your code is exercised by your unit tests.Tool: NCoverCode AnalysisValidates conformance to design guidelines.Tool: FxCop
Automatic DeploymentDeployments 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 deploymentCreate deployment scripts with every build.
Continuous Integration ServerA 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 breaksAllows you to see detailed test resultsProvides build history reporting
Helpful LinksCruise Control .Nethttp://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NETNant taskshttp://nant.sourceforge.net/release/0.85/help/tasks/FxCophttp://www.gotdotnet.com/Team/FxCop/Nunithttp://www.nunit.org/
Other Tools NdocAutomatic class library documentationhttp://ndoc.sourceforge.net/WatirRuby based web application testinghttp://wtr.rubyforge.org/FitnesseAllows non-technical users to define acceptance testshttp://fitnesse.org/Simian	Looks for duplication in large software code bases.http://www.redhillconsulting.com.au/products/simian/
Role of TestingTesting is often the most disrespected role of software developmentA testing strategy should be formed at the very beginning of  a project. Test Early Test Often.Testing is a very specialized skillA defect database is a critical component of any competent software team.
Software engineering
Software engineering
Software engineering
For Presentation Slides Emailbart.lowe@decisionsource.com

More Related Content

PPTX
Using Continuous Integration To Ensure Project Health New
PPTX
Lets talk about CI CD Pipeline in Agile
PPTX
Continuous Integration and Continuous Deployment in Enterprise scenario
PPT
Continuous Integration and Builds
PDF
Continuous Integration at T3CON08
ZIP
Introduction To Continuous Integration
PPTX
Continuous Integration for Beginners
PPTX
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Using Continuous Integration To Ensure Project Health New
Lets talk about CI CD Pipeline in Agile
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Builds
Continuous Integration at T3CON08
Introduction To Continuous Integration
Continuous Integration for Beginners
Keeping Your CI/CD Pipeline as Fast as It Needs to Be

What's hot (20)

PDF
Continuous Integration 101
PDF
WSO2 IoTS Device Manufacturer Guide
PDF
Continuous Integration
PPTX
Continuous Integration as a Way of Life
PDF
Continuous integration
PDF
Simple Continous Integration
PPTX
Continuous integration, delivery & deployment
PDF
Continuous Integration - What even is it?
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
PPTX
Continuous delivery applied
PDF
CICD by Teerapat
PDF
Intro to CI/CD using Docker
PPT
Continuous integration
PPTX
DevQAOps - Surviving in a DevOps World
PPTX
The four generations of test automation
PPT
Continuous Integration
PDF
Improving software quality using Continuous Integration
PDF
Devops | CICD Pipeline
PPT
Continuous deployment steve povilaitis
PPTX
Continous integration with jenkins
Continuous Integration 101
WSO2 IoTS Device Manufacturer Guide
Continuous Integration
Continuous Integration as a Way of Life
Continuous integration
Simple Continous Integration
Continuous integration, delivery & deployment
Continuous Integration - What even is it?
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous delivery applied
CICD by Teerapat
Intro to CI/CD using Docker
Continuous integration
DevQAOps - Surviving in a DevOps World
The four generations of test automation
Continuous Integration
Improving software quality using Continuous Integration
Devops | CICD Pipeline
Continuous deployment steve povilaitis
Continous integration with jenkins
Ad

Viewers also liked (14)

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

Similar to Software engineering (20)

PDF
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
PPTX
Agile a to z chapter 4 feedback loop
PDF
Delivering Quality Software with Continuous Integration
PPTX
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
PPT
Part 2 improving your software development v1.0
PPTX
Hudson
 
PPTX
What is Continuous Integration and Continuous Delivery
PPTX
Continous integration and delivery for single page applications
PPT
Presentation 1 open source tools in continuous integration environment v1.0
PPT
Continuous Integration: A Case Study
PPT
Continuous Integration
PPTX
Continuous Integration and development environment approach
PDF
Continuous Everything
ODP
Agile Engineering
PDF
Back to basics - PHPUnit
PPTX
How Azure DevOps can boost your organization's productivity
PDF
jenkins.pdf
PDF
Jenkins_1679702972.pdf
PPTX
Automated Build using teamcity
PPTX
Continuous integration with Jenkins
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile a to z chapter 4 feedback loop
Delivering Quality Software with Continuous Integration
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Part 2 improving your software development v1.0
Hudson
 
What is Continuous Integration and Continuous Delivery
Continous integration and delivery for single page applications
Presentation 1 open source tools in continuous integration environment v1.0
Continuous Integration: A Case Study
Continuous Integration
Continuous Integration and development environment approach
Continuous Everything
Agile Engineering
Back to basics - PHPUnit
How Azure DevOps can boost your organization's productivity
jenkins.pdf
Jenkins_1679702972.pdf
Automated Build using teamcity
Continuous integration with Jenkins

Software engineering

  • 1. Real World Software Development MethodologyBart LoweSenior Consultant
  • 2. AgendaDecision Source MethodologyIterative DeploymentsImportance of AnalysisContinuous IntegrationRole of TestingJob Seeking Advice
  • 3. AnalysisImproper analysis is the number one cause for project failureThe 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 IntegrationSource ControlAutomated BuildsSelf-Testing BuildsAutomated DeploymentContinuous Integration ServerContrary to popular belief, continuous integration is an attitude, not a tool.--James Shore
  • 5. Source ControlDevelopers 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 BuildsEnsures that your build is documented & repeatable.TipsBuild 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.
  • 8. Self Testing BuildsUnit TestingTest Driven Development Failed Tests should cause the build to failTool: NunitCode Coverage TestingTests the how much of your code is exercised by your unit tests.Tool: NCoverCode AnalysisValidates conformance to design guidelines.Tool: FxCop
  • 9. Automatic DeploymentDeployments 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 deploymentCreate deployment scripts with every build.
  • 10. Continuous Integration ServerA 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 breaksAllows you to see detailed test resultsProvides build history reporting
  • 11. Helpful LinksCruise Control .Nethttp://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NETNant taskshttp://nant.sourceforge.net/release/0.85/help/tasks/FxCophttp://www.gotdotnet.com/Team/FxCop/Nunithttp://www.nunit.org/
  • 12. Other Tools NdocAutomatic class library documentationhttp://ndoc.sourceforge.net/WatirRuby based web application testinghttp://wtr.rubyforge.org/FitnesseAllows non-technical users to define acceptance testshttp://fitnesse.org/Simian Looks for duplication in large software code bases.http://www.redhillconsulting.com.au/products/simian/
  • 13. Role of TestingTesting is often the most disrespected role of software developmentA testing strategy should be formed at the very beginning of a project. Test Early Test Often.Testing is a very specialized skillA defect database is a critical component of any competent software team.
  • 17. For Presentation Slides Emailbart.lowe@decisionsource.com

Editor's Notes

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