A Tale of Two Apps WHY DEVELOPMENT PRACTICES MATTER Zendcon 2013 1 Oct 8 2013.

Slides:



Advertisements
Similar presentations
TeraGrid Deployment Test of Grid Software JP Navarro TeraGrid Software Integration University of Chicago OGF 21 October 19, 2007.
Advertisements

Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.
Project Management Principles (or what’s a really good process and documents to consider) (and how I’d run your game dev process if I was your digital.
Test Automation Framework Ashesh Jain 2007EE50403 Manager Amit Maheshwari.
Agile development By Sam Chamberlain. First a bit of history..
MICROCONTROLLED HOME Keith Jones EKU Deparment of Technology CEN.
How to Optimize Your Existing Regression Testing Arthur Hicken May 2012.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Red Hat Linux Network. Red Hat Network Red Hat Network is the environment for system- level support and management of Red Hat Linux networks. Red Hat.
Jason Iapicco Rowan Computer Science Class of 2006.
Computer Science 162 Section 1 CS162 Teaching Staff.
Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
How to build your own computer And why it will save you time and money.
Enterprise Development on a Shoestring Budget Zendcon 2013 Oct
Agile Testing with Testing Anywhere The road to automation need not be long.
Internet2 Network: Controlling a Slice of the National Network Eric Boyd Senior Director of Strategic Projects.
Continuous Integration for Databases Learn how to automate your build and test Steve Jones Red Gate Software Part II of the Continuous Delivery for Databases.
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
Stop Motion Animation We have been creating Stop Motion Animations that relate to “Keeping ourselves fit.”
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
SYSTEM LIFE CYCLES. OBJECTIVES o Be able to describe the stages of development of a hardware/software system. o Know what the different stages of the.
Simship.com LRC, September 22, 2004 Dr. Stephen Flinter Connect Global Solutions.
Internet Service Provisioning Phase - I August 29, 2003 TSPT Web:
SDT NIWA Systems Development Team Andrew Watkins SDT Overview Taking dull repetitive work from scientists and giving it to robots since 2008.
Using Microsoft ACCESS to develop small to medium applications on campus.
1 A Real-World Development Lifecycle Greg Wilson
@benday #vslive Automated Build, Test & Deploy with TFS, ASP.NET, and SQL Server Benjamin
Extreme Programming Software Developing Methodology.
Troubleshooting Kinetic Request and Task You will never find a more wretched hive of scum and villainy.
Bringing power of simulation to the public.
System Development Life Cycle. The Cycle When creating software, hardware, or any kind of product you will go through several stages, we define these.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
Configuration Database MICE Collaboration Meeting 28, Sofia David Forrest University of Glasgow Antony Wilson Science and Technology Facilities Council.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Database Mirroring: Maximizing Availability Through Automation Robert L Davis.
Selenium and Selenium on Rails. Agenda  Overview of Selenium Simple Selenium Tests Selenium IDE  Overview of Selenium on Rails  Problems with Selenium.
CS 4720 Dynamic Web Applications CS 4720 – Web & Mobile Systems.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Optimizing Your Computer To Run Faster Using Msconfig Technical Demonstration by: Chris Kilkenny.
With a hint of HP Quality Center Agile development and functional testing: friend or foe? Tom Vercauteren, June 26th, 2009.
Grade Book Database Presentation Jeanne Winstead CINS 137.
Budgeting Tool Brandon Ganch Chris George Paul Perello Mike Schmidt.
Eric Wagner Mike Taylor Phil Joseph Copyright © 2009 Catavolt, Inc. All rights reserved.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
Matthew Glenn AP2 Techno for Tanzania This presentation will cover the different utilities on a computer.
Feedback + Services Justine, Katie, Jude and Angela.
Version Control and SVN ECE 297. Why Do We Need Version Control?
TSSG Case Study: Using Free & Open Source Tools to Manage Software Quality EECS811: Software/IT Project Management Agile Integration Management Case Study.
Overview of Basic 3D Experience (Enovia V6) Concepts
Catch Your Bugs By Surprise: Testing with PHPUnit Orion Ifland Tipping Canoe
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
Building Enterprise Applications Using Visual Studio®
Stress Free Deployments with Octopus Deploy
Selenium and Selenium on Rails
Tracking and Squashing Bugs
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Un</br>able’s MySecretSecrets
Continuous Performance Engineering
Real Testing Scenario Strategy: Bringing this all together – Success!
Lunch & Learn: Are you letting your users be your testers?
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Get your ETL flow under statistical process control
What is Software Testing?
Presented by : Chirag Dani & Dhaval Shah
WebDriver on Windows 10 Greg
Bringing more value out of automation testing
SSMS to Azure Data Studio
Software Testing Software Testing is a process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements.
Presentation transcript:

A Tale of Two Apps WHY DEVELOPMENT PRACTICES MATTER Zendcon Oct

Who Am I?  Chris Tankersley  Been Doing PHP for 9+ Years  Lots of projects no one uses, and a few that some do:  ank ank  Worked in insurance for 4.5 years  I know RPG! Zendcon 2013 Oct

What did we need to do? “Build an app for agents to quote and issues new policies online, print ID cards, and policy documents, and all the fun stuff associated with that.” Zendcon * ‘Fun Stuff’ was subjective Oct

We had this… kinda  Backend iSeries vendor supplied a ‘solution’ for our Personal Auto policies  Only worked with Personal Auto  After many years, support was dropped Zendcon Oct

What did we have? Zendcon Oct

We needed a solution  We needed something that worked with our existing backend, which had all of our raters and business logic. We didn’t want to switch processing systems.  Turns out we had two things – a web app and a “RESTful” interface to the iSeries. The interface used ACORD XML, which is a standard XML schema. We could replace the web app with a new one that understood ACORD! Zendcon Oct

What we decided to do  Build one!  Purchase one! Zendcon We went with a vendor with a pedigree in insurance. They had a Tomcat+Postgres solution, and since the magical black box talked XML, they were confident they could swap out their rating system with theirs. We’d be done in 6 months. Oct

Their Solution Zendcon More on them later though Oct

We finally build our own! We needed to bring our commercial business online to help sell it. We had the technology (but not $6 million) Zendcon Oct

Our Solution Zendcon Oct

Why Two Solutions? Notice how I said that the Tomcat/Postgres app would be done in 6 months? Zendcon Yeah… The app took much more time and budget than originally thought. How did we do a PHP app in 7 months and much less money? Oct

What was different?  Proper specifications  Development Lifecycle  Understanding your stack  Testing and QA  Deployment Practices Zendcon Oct

Proper Specifications  Functional and technical specifications are a must. If you don’t know what you are building, how will you know how to build it? Or when it’s finished? Zendcon Oct

There is a difference between this Zendcon Oct

And This Zendcon Oct

Development Lifecycle  Waterfall  Spiral/Prototype  Agile (SCRUM, Kanban, etc) Zendcon Oct

They used Waterfall Zendcon Oct

We used Agile-ish-stuff Zendcon Oct

Understanding Your Stack  If you don’t know how your stack works, it makes it really hard to figure out problems with things go belly up. Zendcon Oct

Their Stack Zendcon Oct

Our Stack Zendcon Oct

Testing and QA  You do test your code, right?  How do you prove your code works?  Can anyone run your tests or are they only accessible to certain people? Zendcon Oct

They used only “HP Functional Testing”  As the name implies, it just did functional testing. In the end, it was a very expensive Selenium.  While they wrote in Java, they did not use (nor understand why anyone would use) JUnit or other unit testing frameworks.  Because it was cost prohibitive, we could not run tests. Zendcon Oct

We used standard PHP tools  PHPUnit  We settled on PHPUnit for unit testing. It was/is widely documented and we even managed to get it to run on the iSeries.  Selenium  We manually ran these tests as we hadn’t worked out how to get it to run headless. Not a big deal because we had to support IE, which only supported manually running it anyway.  phpUnderControl  This ran PHPUnit automatically for us and built our documentation Zendcon Oct

Unit Testing Works!  Using unit testing and continuous integration, we were able to detect test failures right away. Being able to run PHPUnit on the iSeries helped us identify and fix platform-specific bugs. Since developers could run PHPUnit and Selenium locally, we had less regressions.  Since HP Functional Testing was expensive, only the vendor could run the functional tests so developers (even at the vendor) never knew when the tests broke. Since it was only functional, it didn’t find subtle bugs in the code. Zendcon Oct

Deployment Practices  Continuous Integration Tools (Jenkins, xinc/phing)  Build file with manual deployment  Custom deployment script  Hope and a Prayer Zendcon Oct

We went the custom route 1. Tagged trunk in SVN 2. Script checked out the build, SCP’d it to the iSeries 3. MySQL Updates were applied by the script This worked pretty well considering we could tag a revision in SVN that passed tests, which we could check via phpUnderControl. Zendcon Oct

They went with the last option 1. The code on the dev server was packaged as a WAR file 2. The SQL needed for the upgrade was put into a file 1. Sometimes multiple SQL files that would need to be run in order 3. A zip file was created from this 4. It was ed to us 5. We put the WAR file into place and ran the SQL files manually against Postgres 6. Tomcat was restarted tl;dr: Stuff blew up regularly Zendcon Oct

Putting it all together  Auto Quoter  Originally 6 months to production and small price tag. Ended up being way over budget and way over time. When I left, it had just barely gotten to where v1 had originally been. This was due to poor specs, poor QA, and poor development practices.  Artisan Quoter  We ended up 1 month over time, but much cheaper (even when payroll was considered). It ran on existing hardware, so the software cost only ended up being Zend Server. Zendcon Oct

Questions? Oct Zendcon

Thank You!   Oct Zendcon