Status and first objectives 14/06/2012Jean-Christophe Garnier1.

Slides:



Advertisements
Similar presentations
Copyright © , Armstrong Process Group, Inc., and others All rights reserved Made available under EPL v1.01 Project Management Review Eclipse Process.
Advertisements

Armstrong Process Group, Inc. Copyright © , Armstrong Process Group, Inc., and others All rights reserved Armstrong Process.
Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay (SAP)
Feb Alten Group Started in France in 1988 Currently more than people Presence in 10 countries Active in The Netherlands since 2002.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Agile development By Sam Chamberlain. First a bit of history..
Software Development Process Models. The Waterfall Development Model.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Agile Methodologies for Project Management By – Komal Mehta.
Chapter 24 - Quality Management Lecture 1 1Chapter 24 Quality management.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
CSE G674/2009 Project Project Management Section Presented by: Amir Aref Adib.
Chapter 3 Agile Software Development (2/2) Yonsei University 2 nd Semester, 2013 Sanghyun Park.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Software Engineering - I
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. Software Design Process.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
Process Presentation 27 th May 2010 Team BASH Sher Jun Tan, Rosh Sam Abraham, Sascha Morris, Waqas Khalid Lone, Rafael.
1© Nokia Siemens Networks Presentation / Author / Date For internal use T Better Code Faster - Next Generation Java Continuous Integration Environment.
What Is DevOps? DevOps is "a portmanteau of 'development' and 'operations'" and is "a software development method that stresses communications, collaboration,
Theories of Agile, Fails of Security Daniel Liber CyberArk.
CERN IT Department CH-1211 Genève 23 Switzerland t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
PV213 EIS in Practice: 06 – Development process 1 PV213 Enterprise Information Systems in Practice 06 – Development process.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
MPE and BE-CO Collaborations  MPE and BE-CO collaborations Jean-Christophe Garnier 01/12/2015 On behalf of TE-MPE.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
1. ENTERPRISE AGILE TRANSFORMATION AT THE US POSTAL SERVICE MAY 24, Agile Business Solutions.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
 TE-MPE-PE Clean code workshop – R.Heil, M.Koza, K.Krol Introduction to the MPE software process Raphaela Heil TE-MPE-PE Clean code workshop - 9 th July.
Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova An Introduction to Scrum and XP Prof. Riccardo Berta.
Introducing an Agile Process to an Organization By Mike Cohn and Doris Ford IEEE Computer.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
CS223: Software Engineering
AGILE SCRUM METHODOLOGY
CS4311 Spring 2011 Process Improvement Dr
Testing Process Roman Yagodka ISS Test Leader.
IEEE Std 1074: Standard for Software Lifecycle
Chapter 3 – Agile Software Development
Rapid software development
Introduction to Software Engineering
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Teaching slides Chapter 1.
Chapter 3: Agile Software Processes
Refactoring.
Extreme Programming.
Presentation transcript:

Status and first objectives 14/06/2012Jean-Christophe Garnier1

 7 software developers  ~40 distinct software applications  BIS, QPS, SMP, Post Mortem, AccTesting, PcInterlock, etc.  3 main technologies: Java, C/C++, LabVIEW  What about VHDL?  Collaborations with EN/ICE, BE/CO, BE/OP 14/06/2012Jean-Christophe Garnier2

 Purposes  Basis for Software Quality  Sharing  Future steps 14/06/2012Jean-Christophe Garnier3

 Improve software quality  Reach a common agreement for SW practices  Coding conventions  Testing recommendations  Consistent infrastructure + tools  Documentation ▪ For users ▪ For developers 14/06/2012Jean-Christophe Garnier4

 Coordinate resource allocation on projects  Working primarily with students  Improve collaboration with other groups  FESA3  DIAMON2  Software Upgrade Working Group 14/06/2012Jean-Christophe Garnier5

14/06/2012Jean-Christophe Garnier6 External Quality Correctness Efficiency Maintenance Cost Invisible Root Program Structure Complexity Coding Practices Testability Reusability Maintainability Readability

 Define Coding Conventions  Define Testing Rules  Unit Testing  Static Code Analysis  Test / Pre-prod environment  Implement Continuous Integration  Quality control performed frequently 14/06/2012Jean-Christophe Garnier7

 Improve readability for long-term maintenance  Indentation  Name length  Acronyms  Syntax highlighting  Discussion still on-going  Following or extending CO rules  Helping and auditing using code checking tools 14/06/2012Jean-Christophe Garnier8

 Purpose  Correctness of individual modules  No contact with outside -> Mocking  Test Driven Development?  Solutions  Toolset already established by CO for Java  C++ definition on-going -> Google Testing 14/06/2012Jean-Christophe Garnier9

 Purpose  No program execution needed  Check for possible coding errors  Formal methods to check if program behaviour matches specifications  Solutions  PH-SFT using Coverity ▪ Line of Code license or Team License  BE-CO ▪ CheckStyle ▪ FindBugs ▪ PMD 14/06/2012Jean-Christophe Garnier10

14/06/2012Jean-Christophe Garnier11  Coverity  FindBugs

 Tests in an exact copy of the production environment  Decoupled from operation  Needed for the Post-Mortem data collection  3 alternatives  EN-ICE test-bed  BE-CO test-bed  Virtual test-bed 14/06/2012Jean-Christophe Garnier12

 Automatic build  Automatic test execution  Audit of code quality  Using Bamboo from CO for Java projects 14/06/2012Jean-Christophe Garnier13

 CheckStyle  Static Code Analysis with PMD  Code Coverage

 Projects in Continuous Integration  AccTesting  PcInterlock  SMP software  To be done  BIS and QPS software  Post Mortem data collection ▪ See with BE-CO and EN-ICE to compare different solutions  Limits  Report’s configurations is not consistent yet  Better having the same tool for Java and C++ 14/06/2012Jean-Christophe Garnier15

 R&D  Software Upgrade Working Group 14/06/2012Jean-Christophe Garnier16

 Identify and extract redundant features  Projects were developed independently by different developers  Some features could prove to be useful for other projects ▪ SMP Logger to be extended for BIS ▪ History Buffer interpretation and display ▪ Client / Server architecture ▪ Etc. 14/06/2012Jean-Christophe Garnier17

 Software Quality Tools  Inventory and test of existing tools ▪ Particularly for C++  Analysis of software development practices and tools ▪ Consistent configurations ▪ Spread across technologies and groups  Change-tracking framework ▪ Better diagnostic on software failure 14/06/2012Jean-Christophe Garnier18

 Aims  Quality of upgrade interventions  Software quality  Standardization of development practices  Involved groups  BE-CO, BE-OP, BE-BI, BE-RF, EN-STI, EN-CV, EN- ICE, GS-ASE, TE-ABT, TE-PO, TE-MPE  Numerous possible contributions 14/06/2012Jean-Christophe Garnier19

 Technologies  Spring Framework  Project Management  Agile Programming with Scrum  eXtreme Programming (XP) 14/06/2012Jean-Christophe Garnier20

 Open Source  Programming and configuration model  Inversion of Control  Configure the objects at run-time from outside ▪ Create the dependencies and the dependant object ▪ Inject dependencies into dependant object  Enhance testability  Aspect-oriented programming  Improvement for crosscutting concerns  Enhance maintainability  Many other nice features 14/06/2012Jean-Christophe Garnier21

 Spring for future projects  Simplify application configurations  Simplify maintenance  Testability ▪ Injecting mocked objects  Not intrusive  Already used in  PcInterlock  AccTesting  SMP pre-op 14/06/2012Jean-Christophe Garnier22

14/06/2012Jean-Christophe Garnier23  Main characteristics  Self-Organizing teams  Requirements are captured as items in a list of “product backlog”  Product progresses in series of 2-4 week “sprints” = iteration  Monitoring progress per day and per sprint Extracted from slides from Mike Cohn –

14/06/2012Jean-Christophe Garnier24  Roles  Product Owner ▪ Define and prioritize features of the product ▪ Define deadline ▪ Available to provide information/feedback frequently  Scrum Master ▪ Management of the project ▪ Interface with outer world  Team ▪ 5-9 full time people ▪ Self organized

14/06/2012Jean-Christophe Garnier25  Statistics on 230 people in 150 companies, computed by Scrum User Group France in 2009 Adopted Agile Methods Used Scrum practices Scrum users: Google, Microsoft, Yahoo, Siemens, Nokia, CERN (EDH developer team), etc.

14/06/2012Jean-Christophe Garnier26 Customer satisfaction Developer satisfaction

14/06/2012Jean-Christophe Garnier27  Specific engineering practices  Automated Testing ▪ On-going  Test Driven Development ▪ Long term idea  Pair Programming ▪ Writer focuses on current task ▪ Observer considers the overall direction ▪ Frequent switching of roles  Refactoring  Collective Code Ownership

14/06/2012Jean-Christophe Garnier28  Software Quality  Long term objective, needs assimilation  Identifying standard tools in collaboration with other groups  Project Management  Start using Scrum and XP ▪ Agree on which practices, if not all  Review feedback ▪ Internal and External points of view 