Distributed Development: Lessons learned by Herschel GRITS 2011, June 17 Colin Borys.

Slides:



Advertisements
Similar presentations
Agile Software Distribution
Advertisements

Enterprise Resource Planning
Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
1 Software & Grid Middleware for Tier 2 Centers Rob Gardner Indiana University DOE/NSF Review of U.S. ATLAS and CMS Computing Projects Brookhaven National.
CS 5521 Configuration Management the problem Not a simple task! –Different versions of software usually is in the field during the life cycle –Different.
VisIt Software Engineering Infrastructure and Release Process LLNL-PRES Lawrence Livermore National Laboratory, P. O. Box 808, Livermore,
When will our bugs be fixed? When will our new features be added? When will the next release come out? Is my server up-to-date? Users Committers Program.
Maintaining and Updating Windows Server 2008
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Software Testing and QA Theory and Practice (Chapter 16: Test Team Organization) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and.
Planning. SDLC Planning Analysis Design Implementation.
PopMedNet Software Development Life Cycle Chayim Herzig-Marx Harvard Pilgrim Health Care Institute Daniel Dee Lincoln Peak Partners.
CSCI ClearQuest 1 Rational ClearQuest Michel Izygon - Jim Helm.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Implementing 2007 NRC Portals of the Universe Report Chandra X-ray Center 25 April 2012 Implementing Portals of the Universe, April
Project Risk Management. The Importance of Project Risk Management Project risk management is the art and science of identifying, analyzing, and responding.
MGS Testing A High Level Overview of Testing in Microsoft Games Studio Joe Djorgee – Test Lead.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Test Organization and Management
1 Software Testing and Quality Assurance Theory and Practice Chapter 16 Test Team Organization.
System Analysis and Design
CCSM Software Engineering Coordination Plan Tony Craig SEWG Meeting Feb 14-15, 2002 NCAR.
COMP-14: Automating your deployments using ANT Gary S Clink Business Consultant.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Understand Application Lifecycle Management
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
© 2014 cPrime Inc., All Rights Reserved JIRA User Essentials.
Development Methodology N. Draper. Introduction Development Process Test driven development Continuous Integration –Automated build and test Trac Ticket.
User Group 2015 Building A PopMedNet Community. Agenda Slide - 2 What is Open Source? Where are we today? Where should we go?
Test Team Organization. 2  Test Groups  Integration Test Group  System Test Group  Software Quality Assurance Group  Quality.
Jira Demo Blame Tony Edgin. Overview What is Jira? Requirement states Terminology Jira demo.
Kuali Rice at Indiana University From the System Owner Perspective July 29-30, 2008 Eric Westfall.
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
NASA Herschel Science Center - page 1 B. Bhattacharya NHSC Cycle 1 Open Time Proposal Planning Workshop 3-4 June 2010 PACS Logistics & Helpdesk B. Bhattacharya.
NASA Herschel Science Center - page 1 NHSC Cycle 1 Open Time Proposal Planning Workshop 3-4 June 2010 PACS Accepted Programs & Observations to Date B.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
WBL - 1 Observation Planning Workshop, Pasadena, CA 3-4 June 2010 Herschel Observer Support Overview William B. Latter NHSC Deputy Director.
March 2004 At A Glance autoProducts is an automated flight dynamics product generation system. It provides a mission flight operations team with the capability.
Process Modeling Across the Web Information Infrastructure Chris Jensen and Walt Scacchi Institute for Software Research School of Information and Computer.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Data Processing Workshop NHSC, Pasadena, CA 02 – 04 February 2011 Stephan Ott VG #1 PACS Overview and new developments in.
European Middleware Initiative (EMI) The Software Engineering Model Alberto Di Meglio (CERN) Interim Project Director.
Experience Report: Test Automation in an Agile Environment Len Vaz Oct 13, 2010.
University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI.
Page 1 PACS GRITS 17 June 2011 Herschel Data Analysis Guerilla Style: Keeping flexibility in a system with long development cycles Bernhard Schulz NASA.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Pavel Nevski DDM Workshop BNL, September 27, 2006 JOB DEFINITION as a part of Production.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
T Project Review Magnificent Seven Final demonstration
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
IBM Academic Initiative JazzHub Overview John Schilt Lead, IBM Academic Initiative Australia / New Zealand UNSW and IET (Young Professionals)
EMI INFSO-RI SA2: Quality Assurance Status Report Alberto Aimar(SA2) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
Copyright © 2004 R2AD, LLC Submitted to GGF ACS Working Group for GGF-16 R2AD, LLC Distributing Software Life Cycles Join the ACS Team GGF-16, Athens R2AD,
Comments on SPI. General remarks Essentially all goals set out in the RTAG report have been achieved. However, the roles defined (Section 9) have not.
Research and Service Support Resources for EO data exploitation RSS Team, ESRIN, 23/01/2013 Requirements for a Federated Infrastructure.
Phases of ERP Implementation Lifecycle By ControlERP
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
1 MAPPS Software Review Board MAPPS SRB – part II ESAC, Madrid, Spain 3 rd June 2016 ESA-ESTEC - “MAPPS Software Review Board” – MAPPS SRB - Part II, ESAC,
SCI-BS is supported by the FP7 Capacities Programme under contract nr RI Quality assurance in SCI-BUS project by applying agile testing practices.
eXtremely Distributed Software Development
Maintaining software solutions
Applied Software Implementation & Testing
X in [Integration, Delivery, Deployment]
Module 01 ETICS Overview ETICS Online Tutorials
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Distributed Development: Lessons learned by Herschel GRITS 2011, June 17 Colin Borys

- page 2 GRITS 2011 June 16/17 PACS NASA Herschel Science Center Ground Segment Organizational chart The Practical considerations General Development Infrastructure Inherent conflicts and how to cope Summary of lessons learned Overview

- page 3 GRITS 2011 June 16/17 PACS NASA Herschel Science Center Organizational chart Instrument Control Centers (ICCs) Core System Each software area manages their own CCB (configuration control board), which prioritizes work. Each also has their own manager and software QA. Archive

- page 4 GRITS 2011 June 16/17 PACS NASA Herschel Science Center The System Architect, QA Engineer, and top level managers define the entire development framework. Hire good ones! With developers spread across ~15 timezones, interaction is a challenge: With Europe, we generally have telecons at their end of day/our start of day. (6am) NHSC also has a representative onsite at ESAC (Madrid) to represent us at other meetings. (David Ardilla) The emergence of social networking, SKYPE, and now webex are also invaluable Practical Considerations

- page 5 GRITS 2011 June 16/17 PACS NASA Herschel Science Center IDE: Eclipse. Common, powerful, and has the ability to import project-specific plug-ins to aid in development conformity Code Repository: CVS. Old, but it works. Ticketing System: JIRA. Very effective, very configurable. Compilation: CIB (Continuous Integration Build) approach. Testing: Test harnesses, nightly tester, once per release acceptance testing. Development Infrastructure

- page 6 GRITS 2011 June 16/17 PACS NASA Herschel Science Center (some) Lessons Learned

- page 7 GRITS 2011 June 16/17 PACS NASA Herschel Science Center (some) Lessons Learned

- page 8 GRITS 2011 June 16/17 PACS NASA Herschel Science Center JIRA workflow for a person who submits a ticket User submits a ticket Developer analyzes issue Developer starts implementation Developer fixes issue User tests implementation Ticket appears on users’ ‘submitted by me’ panel Ticket appears on developer’s ‘assigned to me’ panel Ticket status is ‘Assigned’ Ticket status is changed to ‘In Analysis’ Ticket status is changed to ‘In Implementation’ Ticket status is changed to ‘Resolved’ Ticket disappears from developer’s panel Ticket appears on users’ ‘to be closed by me’ panel If test passed, user sets the ticket to ‘Completed’ and the workflow is complete. is sent to assignee, developer, and mentor at each step

- page 9 GRITS 2011 June 16/17 PACS NASA Herschel Science Center In our setup, the person who submits a bug report is also responsible for testing and closing the ticket once a developer fixes it. We do not release software when a ticket assigned to that version is ‘resolved’ but not closed. It is natural for a lot of development to happen near a code freeze, thus the testing duties for reporters get compressed. Consequence is that people who report bugs are inherently punished and this provides some motivation to work ‘outside’ the system. Consequences of JIRA workflow policy

- page 10 GRITS 2011 June 16/17 PACS NASA Herschel Science Center The HIPE ticketing interactions JIRAHelpdesk HSC/ICC/NHSC Astronomers and User Groups Developers Workshops The user base cannot directly submit tickets, but overhead on developers is lower. Increased need for calibration scientists to interact with community.

- page 11 GRITS 2011 June 16/17 PACS NASA Herschel Science Center HIPE is made up of >100 component packages (i/o, numerical, etc.) For each, there is a developer (or more) and mentor assigned. The majority of the packages have a calibration scientist as a mentor, and it is their job to : Advise developer on astronomer specific issues Vet tickets that are incorrectly assigned to a package Advise management on the priority of tickets in that package. Aid in documentation that is directed towards users. Good idea but can fail in practice (over tasked, lack of expertise for shared packages with a broad user base, ignored) The Developer-Mentor policy

- page 12 GRITS 2011 June 16/17 PACS NASA Herschel Science Center HIPE takes a long time to compile, and it used to be possible for conflicts to occur on packages under heavy development. Was particularly problematic around a code freeze. With a CIB, a new minor version of the software is created every time new code in a component is checked in. Therefore changes in package Y are immune to changes in X if Y is checked in first. Any code that does break the build becomes ‘quarantined’, and the owners of X and Y figure out why, and fix it. Continuous Integration Builds

- page 13 GRITS 2011 June 16/17 PACS NASA Herschel Science Center

- page 14 GRITS 2011 June 16/17 PACS NASA Herschel Science Center

- page 15 GRITS 2011 June 16/17 PACS NASA Herschel Science Center

- page 16 GRITS 2011 June 16/17 PACS NASA Herschel Science Center Occurs at many levels, the first being the code test harnesses associated with each component. This is easily one of the most controversial areas we deal with. Scripts designed to run the system in many different areas are automated once per night and the output compared to an expected value. This catches bugs that don’t break the build but do break the system. However does not test as much code as the test harnesses. Finally, every major release goes through extensive acceptance testing. Software testing

- page 17 GRITS 2011 June 16/17 PACS NASA Herschel Science Center Developers and Astronomers often have a different view on how things should be implemented. Data access in HIPE for example is sophisticated and powerful, but until recently only expert Astronomers could actually read in data easily! The US mandate is to support the US Astronomer. The European one also includes development of HIPE for future ESA missions. Code quality reviews places NHSC in a difficult position. Inherent conflicts

- page 18 GRITS 2011 June 16/17 PACS NASA Herschel Science Center Know your colleagues, figure out who they work for, and what they are hired to do. Don’t let developers write requirements, but don’t let astronomers limit developers. Pair developers with calibration scientists Hire good people at the top Embrace new technologies/approaches (i.e. social media, CIB) Purchase good development tools. Monitor policy decisions…they often have unintended side-effects Emphasize testing at every opportunity, but be flexible. No amount of requirement or policy planning will prevent conflict. (some) Lessons learned