Upload
mervyn-wright
View
214
Download
0
Embed Size (px)
Citation preview
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
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.
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)
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
Purpose of this Meeting
Explain preliminary recommendations of committee.Get feedback from software engineering community.Use this information to write final report.
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?
Recommendations…
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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?