Practical Project Maintenance

Slides:



Advertisements
Similar presentations
Test-First Programming. The tests should drive you to write the code, the reason you write code is to get a test to succeed, and you should only write.
Advertisements

Illinois Institute of Technology
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Data Structures and Programming.  John Edgar2.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
SKA/KAT SPIN Presentation Software Engineering (!?) Robert Crida.
Creating a Maintainable Software Ecosystem Jeremy D. Miller November 27th, 2007.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Program Development Life Cycle (PDLC)
Security - Why Bother? Your projects in this class are not likely to be used for some critical infrastructure or real-world sensitive data. Why should.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
LCG-SPI: SW-Testing LCG AppArea internal review (20/10/03)
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
Community Codes Free and shared resource Ongoing distributed development by both research and operational communities – Maintained under version control.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
JD Edwards Support & Tools Gillian Boshell Product Service Advisor, Oracle Australia.
1 Software Testing & Quality Assurance Lecture 15 Created by: Paulo Alencar Modified by: Frank Xu.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B.
Text2PTO: Modernizing Patent Application Filing A Proposal for Submitting Text Applications to the USPTO.
OPERATING SYSTEMS (OS) By the end of this lesson you will be able to explain: 1. What an OS is 2. The relationship between the OS & application programs.
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.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Patrick Gartung LArSoft Usability Meeting 22 June 2016 Build system explorations: Spack.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
The complex world of Quality Assurance on OpenOffice.org Thorsten Ziehm Manager Quality Assurance for Ooo/SO at Sun Microsystems.
TUF: Secure Software Updates Justin Cappos NYU Poly Computer Science and Engineering.
NB UML takeover by community Sergey B. Petrov Former NetBeans UML Developer Jiří Kovalský NetBeans Community Manager August 16 th, 2010.
How To Exclude Paths In McAfee Antivirus 2017 Call: mcafee.antivirussupportaustralia.com.
Software Development.
Open source development model and methodologies.
Continuous Delivery and Quality Monitoring
Development Environment
MASS Java Documentation, Verification, and Testing
Software Testing Strategies for building test group
Customizing custom.
MDSplus Quality Improvement Project T. Fredian, J. Stillerman, G
Software Tango Meeting - May 2011 N. Leclercq on behalf of the SOLEIL Computing Team.
Software Packaging and Releasing
Chapter 18 Maintaining Information Systems
OpenSAF Developer Days 2008 OpenSAF Release Management Session 15-07
Software Development Life Cycle
Chapter 6: Design of Expert Systems
CVS revisions UML diagram
Software Development CMSC 202.
Maintaining software solutions
Dilbert Scott Adams Manage It! Your Guide to Modern, Pragmatic Project Management. Johanna Rothman.
5 SYSTEM SOFTWARE CHAPTER
Validation & conformity testing
Applied Software Implementation & Testing
Software Development Initiation Planning Design Analysis Development
Lunch & Learn: Are you letting your users be your testers?
Case Application Development Method
Leigh Grundhoefer Indiana University
Lecture 09:Software Testing
5 SYSTEM SOFTWARE CHAPTER
CSE 303 Concepts and Tools for Software Development
Chapter 7 –Implementation Issues
APPLICATION LIFECYCLE MANAGEMENT(ALM) QUALITY CENTER(QC)
Chapter 8 Software Evolution.
F II 1. Background Objectives
Integration Reading: McConnell, Code Complete, Ch. 29
Release definition & scheduling
ENERGY 211 / CME 211 Lecture 27 November 21, 2008.
Chapter 7 Software Testing.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Practical Project Maintenance Thomas Vander Stichele GUADEC Birmingham 2007-07-19

Version 0.1

It's about Free Software

patches accepted

Why

Because it's your code

you like someone else's project and you want it to grow

Goal

Goal

Mediate fantastic new code excellent bug fixes rocking features developers experience of user installing software

How

reorganize development one reorganize development to increase quality with minimal friction

two grow community of people

three make that community respect the process

because they share the goal three because they share the goal but they want to hack

four by doing releases that will work for end users

by getting those releases five by getting those releases onto computers of users

Reorganize focus on quality

Measure

Testing Unit tests run for every check-in with a buildbot- like tool generate coverage data valgrind unit tests profile unit tests

Testing Interactive tests more “expensive” to run integration tests

Testing data validation tests fuzzing tests get error paths tested

Warnings

compiler warnings depecration guards documentation checks

broken windows

possibly harmless warnings obscure harmful ones Are you smarter than the compiler ? Every time ? zero tolerance is easier to maintain

Friction add warning checks after they pass fix yourself or create the buy-in and get people to help

Bugs

fool you twice, shame on you put your knowledge about the bug in a test

Stack hacking bug can be in any layer higher layer bug exposing lower layer bug fix top to bottom

Organize code

mental friction coding style change at stable points mirror directory layouts inline API docs

avoid copy/paste internal libraries good for testing too share build infrastructure One Two Many

do it the first time copy it the second time refactor and abstract after that

Dependencies

Dependencies how new is now ? consider distro release cycles

Dependencies how many people can use your code if it depends on unreleased development code the latest source release packaged updates packages in the last distro versions packages in the previous distro versions

Version numbers

3 3.1 3.14 3.141 3.1415 3.14159 3.141592

TeX 3 3.1 3.14 3.141 3.1415 3.14159 3.141592

TeX ... the "absolutely final change (to be made after my death)" will be to change the version number to π, at which point all remaining bugs will become permanent features.

0.93 1.0pre1, 2, 3 1.0pre3try2 1.0pre4, 5 1.0pre5try2 1.0pre6 1.0pre6a 1.0pre7, 8

MPlayer 0.93 1.0pre1, 2, 3 1.0pre3try2 1.0pre4, 5 1.0pre5try2 1.0pre6 1.0pre6a 1.0pre7, 8

Release

give the quality to the users with minimal bugs

quality is a random walk with possibly big discontinuities releases should capture the local maxima

How to release announce freeze stabilize prerelease test the ice

you announce a freeze mails come in

NO

my feature ? NO my API addition ? NO memleak fixes ? NO non-regression bug fixes ? NO

my feature ? NO my API addition ? NO memleak fixes ? NO non-regression bug fixes ? NO

Yes documentation fixes bug fixes for regressions crasher bugs more tests translations