22
Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National Center for Atmospheric Research Boulder, CO USA

Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Embed Size (px)

Citation preview

Page 1: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Software Engineering Committee Status Report to the Community: Preliminary Recommendations

Richard Loft and Gerry Wiener

SE Committee Co-chairs

National Center for Atmospheric Research

Boulder, CO USA

Page 2: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

The Software Committee was charged to:

assess the status, needs, and priorities in software engineering and computer science at NCAR based on discussions with NCAR scientific and technical staff and external experts;synthesize the results of those discussions in the context of the NCAR Strategic Plan for High Performance Scientific Simulation, and to produce as a result an Implementation Plan to accompany the Strategic Plan; andmake recommendations related to software engineering and computer science that would require action before the Implementation Plan is completed.

Page 3: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

SE Committee Members

Lawrence Buja, CGDChris Burghart, ATDTony Craig, CGDCecelia DeLuca, SCDJose Garcia, HAORich Loft, SCD (co-chair)John Michalakes, MMMBill Preeg outside consultantRuss Rew, UnidataEric Scharff, ESIGChris Webster, ATDGerry Weiner, RAP (co-chair)

Page 4: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

SE Committee Activities

Committee has met monthly since March, 2003Committee Members collected data via surveys from own divisionsWebsite: http://www.scd.ucar.edu/secomm

Swiki site (document repository): http://swiki.ucar.edu/secomm

Page 5: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Purpose of this Meeting

Explain preliminary recommendations of committee.Get feedback from software engineering community.Use this information to write final report.

Page 6: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Things to keep in mind…

What do you like?What don’t you like?What have we missed?What should we drop?How would you like to see your profession change at NCAR?

Page 7: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Recommendations…

Page 8: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Recommendations Goals

General goals of our recommendations:– Improve project management practices.– Augment HPC engineering resources.– Improve training of software

engineering staff.– Improve communication and knowledge

exchange between software engineers.– Encourage better software process

practices.

Page 9: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Proposal Review

Senior software engineers with relevant expertise should be added as reviewers of those new proposals with a strong software engineering component.Applies only to proposed NCAR projects and initiatives.Externally funded proposals may have other evaluation criteria.Goal is to identify the engineering issues of new projects in advance.

Page 10: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Project Planning

Funded NCAR projects involving software engineering above a certain size should be required, at their inception, to provide a Project Plan to NCAR management. This plan should specify at least three items: – a work breakdown structure– a project management structure – and the software process to be used

Goal is to improve the planning and execution of new projects.

Page 11: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Application GroupWe recommend that a group specializing in geophysical applications be created as a standing, cross-divisional engineering resource for projects in the new Sun, Weather, and Climate Laboratory (Swickle). Characteristics of the Application Group – Members would be integral members of project

teams; on completion they would be reassigned to other projects.

– such a group would ensure projects access to adequate dedicated computer science and software engineering expertise.

– Would create a persistent reservoir of talent and experience.

Group would maintain close ties with the Computational and Information Systems Laboratory (Sizzle).

Page 12: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

SE Staff Training TargetAll software engineering staff should attend at least one week of relevant training per year.Specific type of training is mutually agreed upon with supervisor.Training performed should be documented and tracked by management.Software project managers should be receive appropriate management training.Goal is to maintain software engineering staff’s technical currency.

Page 13: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

HR Training Courses

Additional HR software engineering training courses should be created.– A customized software project

management course should be added.– Software engineer mentoring course.

The specific types of courses offered should be determined by the NCAR engineering staff, via a web voting procedure.Goal is to improve the relevance of internally offered courses.

Page 14: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Software Engineer Mentoring

A new software engineer mentoring system should be created. The elements of this new program will be:– Assigning mentors to new staff– Training mentors– Recognition of mentors through

performance evaluations.– Open to all (not just the SE job title).

Focus:– New employees or engineers with few peers– Other staff performing software engineer

functions. Goal: to improve staff orientation and professional development.

Page 15: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Seminar SeriesA cross cutting seminar series entitled Science and Engineering in the Geosciences should be created.Focus of talks: progress, success stories,technology trendsComposition:– Computer scientists, software

engineers, physical scientists– Both local and outside expertsGoal is to foster cross disciplinary knowledge and cooperation between the scientific and engineering disciplines at NCAR.

Page 16: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Knowledge Management System

We propose the creation of a Software Engineering Knowledge Management (SEKM) system. This system should provide:– best practice recommendations for software

process – profiles / home pages / links to software engineers – a "software map" of NCAR software projects – evaluations of software engineering tools – announcements of in-house and external SE-

related events – access to SE mailing lists – software process documents – style guides – a search engine and site map

Goal is to improve the communication between software engineers.

Page 17: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

NCAR Project Database

The committee recommends that a database should be created for all NCAR software projects to help share knowledge within NCAR.A basic template for – project name– description– code architect– software tools

Goal is to help share knowledge of projects within NCAR.

Page 18: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

SEKM Librarian

help gather initial information create example web pages for projects encourage participation of SEs in other divisionsensure that information is up to date modify the KM system to encourage greater participation from the community organizing information create a high quality Web presence for the SE community

Page 19: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

SEKM Milestones

Initial Activities– The creation of a web site – A mechanism for engineers to

contribute to the web site – The integration of the web site with

existing sources of information (such as SE mailing lists) and the possible creation of new mailing lists

– Research and prototype deployment of a knowledge management system.

Page 20: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Software Process

We recommend that the institution commits to develop and maintain a set of best practices and software processes for each kind of three levels software development. These are:

R&D, e.g., one SE and a scientist - none to minimal process Research prototype, small team, no formal system deliverables -- none to minimal process Large project, large teams, formal deliverables -- minimal to quite formal process We recommend that best practices be developed for each level of project.

Page 21: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Example of “Best Practices”

Adopt an appropriate software processUse software configuration management and build toolsUse bug tracking softwareEmphasize portability for current and future platformsDocument code for later maintainersIsolate decisions that may changePractice test-driven development

Page 22: Software Engineering Committee Status Report to the Community: Preliminary Recommendations Richard Loft and Gerry Wiener SE Committee Co-chairs National

Comments?

What do you like?What don’t you like?What have we missed?What should we drop?How would you like to see your profession change?