Using XP practices on 1960s green screen technology

Dec. 9, 2013
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
Using XP practices on 1960s green screen technology
1 of 37

More Related Content

What's hot

Paul Wilford - From a Small Experiment to a Half a Billion... | Agile Deliver...Paul Wilford - From a Small Experiment to a Half a Billion... | Agile Deliver...
Paul Wilford - From a Small Experiment to a Half a Billion... | Agile Deliver...Kayleigh Tiernan
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Patrick McDonnell
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016Codemotion
SDLC & DevSecOpsSDLC & DevSecOps
SDLC & DevSecOpsIrina Kostina
How to adapt the SDLC to the era of DevSecOpsHow to adapt the SDLC to the era of DevSecOps
How to adapt the SDLC to the era of DevSecOpsZane Lackey
Protect Your Drupal Site Against Common Security AttacksProtect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security AttacksAcquia

Similar to Using XP practices on 1960s green screen technology

Devops - why, what and how?Devops - why, what and how?
Devops - why, what and how?Malinda Kapuruge
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big pictureDevSecOpsSg
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big pictureStefan Streichsbier
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
Continuous Delivery Decision pointsContinuous Delivery Decision points
Continuous Delivery Decision pointsKelly Looney
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesShiva Narayanaswamy

Recently uploaded

Advancing Equity and Inclusion for Deaf Students in Higher EducationAdvancing Equity and Inclusion for Deaf Students in Higher Education
Advancing Equity and Inclusion for Deaf Students in Higher Education3Play Media
Metadata & Discovery Group Conference 2023 - Day 1 ProgrammeMetadata & Discovery Group Conference 2023 - Day 1 Programme
Metadata & Discovery Group Conference 2023 - Day 1 ProgrammeCILIP MDG
Webinar: Discover the Power of SpiraTeam - A Jira Alternative To Revolutioniz...Webinar: Discover the Power of SpiraTeam - A Jira Alternative To Revolutioniz...
Webinar: Discover the Power of SpiraTeam - A Jira Alternative To Revolutioniz...Inflectra
web test repair.pptxweb test repair.pptx
web test repair.pptxYuanzhangLin
Common WordPress APIs - Options APICommon WordPress APIs - Options API
Common WordPress APIs - Options APIJonathan Bossenger
Easy Salesforce CI/CD with Open Source Only - Dreamforce 23Easy Salesforce CI/CD with Open Source Only - Dreamforce 23
Easy Salesforce CI/CD with Open Source Only - Dreamforce 23NicolasVuillamy1

Recently uploaded(20)

Using XP practices on 1960s green screen technology

Editor's Notes

  1. Synopsis: Travis Perkins has introduced some very modern technologies in the last few years, but half of the 120-strong software engineeringteam is actively developing in BASIC on its 1960s green screen technology platform. Brian and Nik show how it is possible to introduce XP practices to technology that predates the moon landings, and will discuss lessons learned. They will cover unit testing, source control, and continuous integration, and will touch briefly on future objectives.
  2. Wider ContextTravis Perkins has embarked on a transformation of its IT practices with support and leadership from senior management.Where before small teams chipped away at the code face in single-function isolated silos, now they have grown their teams and embraced Agile principles, pairing and close working with stakeholders.
  3. Does it have Global Variables?Yes.All variables have global scope within a program or subroutine.It also has ‘very global’ variables that can be shared between programs and subroutines.And ‘very, very global’ variables that exist for the duration of a login session (permanent).
  4. What Engineers were SeeingThe engineers were learning java or sitting next to teams using java.So they were seeing those engineers working with TDD, frameworks and standard build processes.And they thought – does this apply to us?
  5. The ChallengeStu had to change four lines of code in a small routine.Here is the context ..
  6. .. And a bit more ..
  7. .. And a bit more ..
  8. .. And a bit more ..(This is one of the shorter routines. And Remember: every variable is global)
  9. What We DidWe wrote our own unit test framework for UniVerse and taught engineers about unit testing and pair programming.Then we rewrote the framework to simplify and extend it as the engineers began to take ownership and to request features.The we extended it with configuration and faking.
  10. Some LessonsUnits in UniVerse are different. The concept of a unit covers a wider block – you can’t build in Single Responsibility Principle in the same way. So we developed patterns for splitting and refactoring code to make the sections addressable for testing.The database is part of the code: we can’t separate it out as a dependency (though faking to isolate tests is possible).UniVerse engineers like TDD! And have taken it on board enthusiastically.. Eventually.
  11. A framework has to have a name. All our unit test program names started “UNIT.” But UniVerse has a limit of 62 characters for a label, and the team was worried about wasting them. So they elected to drop one character, and thus the framework was named…
  12. A token of RegardFrom the team to Nik...
  13. The codebase did get source control in early 2013, but TFS had its problems. The Java teams’ move to git was the catalyst to move to the UniVerse teams, too.
  14. Git AnguishMoving to git meant a change in mindset.UniVerse uses file locking to protect access to code. Previous source code control (TFS) also implemented locking.Moving to a distributed version control system with no visibility of who was working on what raised fears.
  15. CI PipelineWe built a CI pipeline based around gitlab post-commit hooks. These are captured using HTML listeners in UniVerse and commit details logged to file. A cron job runs a CI process on commit changes, feeding a segregated release system and packager.Unusually, the decision was taken to email notifications of passes as well as failures (the opposite of many black box CI systems).The aim is to publicize and celebrate success as well as notify failures.
  16. Consistent Reliable EnvironmentsShifting to TDD and CI led to changes in expectation about what would/could be run in a clean environment.In addition to data files, the application sets up configuration information on login. This is unavailable to the CI process.Many assumptions are made in the code about the existence of this and of standard parameter records.And this is a distributed system, so code expects to call routines on other machines.Fatal errors stop that UniVerse process: a problem as the CI runs in the same process (and cannot report back).And there were many programs that could not compile.
  17. September 2013: Switch-over to git + CIAugust 2013: Start git training for UniVerseJuly 2013: Start building CI pipelineJune 2013: Target for git switch-over (missed)May 2013: Started discussion of git and CI for UniVerse Apr 2013: Started TDD for UniVerse, Cloudshop moves to gitFeb 2013: Source control introduced (TFS), teams start working in stepJan 2013: TDD training startsDec 2012: Scrum teams arrangedSep 2012: Senior team assembled