SA4 Software Developer Survey Survey Specification v2.2



Similar documents
Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Deliverable DS4.3.2: Report on Development Infrastructure Usage and Adoption

Software infrastructure for Java development projects

Introduction to Programming Tools. Anjana & Shankar September,2010

Open Source vs. Collaborative Software: FOSS is Not Enough

Build management & Continuous integration. with Maven & Hudson

SMZ. SocialMedia. Z olutions

SOFTWARE DEVELOPMENT BASICS SED

Java Software Quality Tools and techniques

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures

Content. Development Tools 2(63)

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Agile Best Practices and Patterns for Success on an Agile Software development project.

Testing Tools Content (Manual with Selenium) Levels of Testing

Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911

Client Overview. Engagement Situation. Key Requirements

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Modulo II Qualidade de Software com Maven

Continuous Integration: A case study

Jenkins: The Definitive Guide

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Maven or how to automate java builds, tests and version management with open source tools

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Continuous Delivery. Alejandro Ruiz

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

LECTURES NOTES Organisational Aspects of Software Development

Getting Started with Open Source Compliance

Continuous Integration Multi-Stage Builds for Quality Assurance

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

THE OPEN SOURCE DEVELOPER REPORT

Theme 1 Software Processes. Software Configuration Management

TeamCity A Professional Solution for Delivering Quality Software, on Time

HP ALM11 & MS VS/TFS2010

Software Development Tools & Environments

1. Current strategy 2. Current situation 3. Update 4. Proposition

Continuous Integration

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Software Construction

Sandesh Prasanna Kumar

TEST AUTOMATION FRAMEWORK

Global sourcing of software development - a review of tools and services. 13/07/2009 Robert Martignoni

Source Control Systems

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

Software configuration management

Sonatype CLM for Maven. Sonatype CLM for Maven

An Introduction to Software Development Process and Collaborative Work

Software Continuous Integration & Delivery

QA & Test Management. Overview.

Aaron Evans Software Quality Assurance, Test Automation, SDET, Web Developer

RAP Software Process Checklist

Professional Java Tools for Extreme Programming. Ant, XDoclet, JUnit, Cactus, and Maven

Delivering Quality Software with Continuous Integration

Administrator s Guide: perfsonar MDM 3.0

SUMMARY CURRICULUM VITAE J. Andries

Expert PHP 5 Tools. Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications.

SOA Solutions & Middleware Testing: White Paper

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

Ikasan ESB Reference Architecture Review

Configuration & Build Management

TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization

JUSTIN J. LITTLE Build and Release Engineer

Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development

Continuous Integration

Automating Testing and Configuration Data Migration in OTM/GTM Projects using Open Source Tools By Rakesh Raveendran Oracle Consulting

Software Configuration Management. Addendum zu Kapitel 13

Figure 1. perfsonar architecture. 1 This work was supported by the EC IST-EMANICS Network of Excellence (#26854).

Jenkins TestLink Plug-in Tutorial

Guidelines and Procedures for Project Management

Framework as a master tool in modern web development

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

Change & Configuration! Management

Chapter 13 Configuration Management

Agile ALM. Lightweight tools and Agile strategies MANNING MICHAEL HUTTERMANN. Shelter Island

Software Development In the Cloud Cloud management and ALM

Enhancing The ALM Experience

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Documentation and Project Organization

Demand & Requirements Management Software Development QA & Test Management IT Operations & DevOps Change Management Agile, SAFe, Waterfall Support

Continuous Integration

JIRA Administration Best Practices

Meister Going Beyond Maven

Transcription:

Last updated: 30-06-2009 Activity: SA4 Dissemination Level: PP (Project Participants) Authors: Branko Marović (UoB/AMRES), Cezary Mazurek (PSNC), Gina Kramer (DANTE)

Table of Contents 1 Introduction 1 2 Software Developer Survey Contents 2 2.1 Instructions for Responders (at the Start of the Survey) 2 2.2 Project Demographics 3 2.3 Management and IPR 4 2.3.1 Project Management 4 2.3.2 IPR and Licensing 4 2.4 Development 5 2.4.1 Coding 5 2.4.2 Version Control Management and Bug Tracking 6 2.4.3 Building and Integration 6 2.4.4 Quality Assurance and Testing 6 2.4.5 Documentation 7 2.5 Rollout and User Support 7 2.5.1 Deployment 7 2.5.2 Maintenance and User Support 8 2.6 Submitter Details 8

1 Introduction This document describes the proposed contents of the SA4 (Software Governance) Software Developer Survey which targets software developers participating in other GN3 SA and JRA activities. The data gathered through this questionnaire will be used by SA4 tasks, primarily Task 1 (Best Practices) and Task 3 (Software Development Infrastructure). The purpose of the is to investigate developer perspective and needs in areas related to software governance, and to identify practices and tools that are already used in software development and maintenance within GN3. It will provide information about developers' experiences, practices, used tools, identified issues, plans and proposals related to SA4. The survey is to be performed in all SA and JRA activities and tasks that will use the recommendations and software development infrastructure developed by SA4. It is expected to be conducted by the primary technical contact or coordinator, or by a single competent representative for each software development or developer group that encompasses a single development or maintenance practise. One completion of this survey may cover a single or several closely related applications, as long as all of them apply a uniform set of software project management practises. The survey is to be implemented by using the Unit Command Climate Assessment and Survey System (UCCASS) software (http://www.bigredspark.com/survey.html) hosted by AMRES-RCUB at http://questionnaire.rcub.bg.ac.rs/. Its results will be available at the same address. 1

2 Software Developer Survey Contents 2.1 Instructions for Responders (at the Start of the Survey) The purpose of this survey is to investigate developer perspective and needs in areas related to software governance, and to identify practices and tools that are already used in software development and maintenance within GN3. The survey is to be performed in all SA and JRA activities and tasks that will use the recommendations and software development infrastructure developed by SA4, and should be filled in for each software development or developer group within GN3 that encompasses a uniform set of software project management practises. It should be conducted by the primary technical contact or coordinator, or by a single competent representative, for example, a senior developer familiar with actual development and software management procedure, requirements, and issues. The data gathered by the questionnaire will be used mostly by SA4 Tasks 1 (Best Practices) and 3 (Software Development Infrastructure). You do not have to answer questions regarding topics that are outside your interests or expertise, and you can skip sections that are not relevant to your application(s). However, if some subject is of your particular interest, please provide details about your needs, as well as additional information that you may have on the topic. This survey consists of 62 questions grouped into 12 pages. No input will be saved unless you click "Finish" on the last page. Further corrections are not possible after this point, but you can repeat the submission process (marking this in answer to the first question), or report correction to gn3-sa4-taskleaders@geant at net domain. To access the questions more easily you may decide to read the static version of SA4 Software Developer Survey, prepare detailed inputs off-line, and then fill in the web forms. The static version of the questionnaire is available at: http://wiki.geant.net/pub/sa4/admin/documentsmain/gn3-09-134-sa4-software-developer-survey- Specification.pdf http://wiki.geant.net/pub/sa4/admin/documentsmain/gn3-09-134-sa4-software-developer-survey- Specification.doc Your inputs are very important to the GN3 SA4 activity and will help addressing your needs, so please invest some time and effort in answering the questions. Please note that your answers will not be used to evaluate any work, software, practice, or achievements. 2

Questions marked with * are mandatory. 2.2 Project Demographics 1. *What is the acronym or name of your main project, development or tool? (For example perfsonar, AMPS, AutoBAHN, cnis, I-SHARe) 2. *If different, what is the name of your primary software component? (For example. perfsonar components are: RRD Measurement Archive, SQL Measurement Archive, SSH/Telnet Measurement Point, AS (Authentication and Authorization Service), E2Emon Measurement Point, CNM, perfsonarui ) 3. *What is the aim of your software project? (For example: proof of concept, prototype, pilot deployment, deployed operating solution, supporting tool (testing / measuring, library, plugin), integration tool ) 4. *What is your GN3 activity? JRA1 JRA2 JRA3 NA2 NA3 NA4 SA1 SA2 SA3 SA4 5. *What is your task in the above GN3 activity? T1 T2 T3 T4 T5 T6 T7 3

2.3 Management and IPR 2.3.1 Project Management 6. Is there any overall strategy for your software development? If so, describe it briefly. 7. List any project management or software development methodology you use. (Names or URLs, for example OpenUP, RUP, Extreme Programming (XP), Scrum If only some elements of some methodology are used, please describe briefly!) 8. Describe the overall software architecture of your development. 9. *Does your project design involve clear decomposition of components, modules or units and also clear specification of their responsibilities and interfaces? Yes No Partially Do not know 10. Is there a development roadmap plan or overall planning management procedure? 11. List any collaboration tools you use: wikis, forums, mailing lists, video conferencing platforms 12. Do you have any internal documentation with directions or recommendations related to best practices that could be offered to others? 13. Are there any apparent problems or possible solutions related to current project management practices? 2.3.2 IPR and Licensing 14. Describe your IPR policy and how it is coordinated with Geant/GN3, if in place. 15. *List the software your development is licensed to use. (Names or URLs, for example None, Proprietary, GPL, LGPL, BSD, Apache, MPL More extensive list is at http://en.wikipedia.org/wiki/open_source_license. If using a proprietary or less common license, please provide a brief description or link to it.) 4

16. Describe your distribution policy, if one has been defined. 17. *Is there any other proprietary or free/open source software that is combined with your development, and any other licensing or license-compatibility problem affecting the results of your development? (This is not related to the licensing status of internally used tools.) Other software is used, but there are no licensing issues Other software is used, there may be some licensing issues No Do not know 18. Describe any other potential issues regarding the license compatibility between your software and other software, library or component. (You may wish to describe the situation in terms of licenses without actually naming any particular software.) 19. Are there any other problems related to IPR and licensing and possible solutions? For example, can you describe in which areas clarifications are needed or recommend resources and tools that may help address IPR and licensing issues (like FOSSology software)? 2.4 Development 2.4.1 Coding 20. *List the programming languages you use. (Names or URLs, for example Java, C++, Python ) 21. List any other key technologies related to making, design or execution of code that require attention in terms of best practices. (Names or URLs, in relation to modelling, database management, code generation, GUI creation, or underlying platform your code is interacting with ) 22. Describe any coding rules, formatting, commenting and naming conventions you use. 23. List any procedures and tools you use for code quality checking and enforcement. (Names or URLs, for example Checkstyle, FindBugs, PMD/CPD, Glean, QALab, XRadar ) 24. *List any IDEs or build environments you use. (Names or URLs, for example Eclipse, NetBeans, JBuilder, Visual C, command line and build tools as make, CMake, Ant, Maven ) 5

25. Describe any security-related coding procedures or guidelines targeting checking and avoidance of vulnerabilities, access control, data validation and authentication. 26. Describe any means you use for the configuration management of development tools and infrastructure. 2.4.2 Version Control Management and Bug Tracking 27. *List the revision control (version control, source control, SCM) software you use. (Names or URLs, for example Subversion (SVN), CVS, SourceSafe, Mercurial, Bazaar, Git Also mention Web front-end, if any, as WebSVN, FishEye ) 28. Describe any commit procedures you use. (Description or URLs, in relation to frequency, branching, passing of builds, tests and other checks) 29. *List issue, bug, task reporting, tracking and management tools you use. (Names or URLs, for example Bugzilla, Jira, Trac, Mantis, spreadsheets, text documents ) 30. Describe current or desired operational parameters of revision control service, in terms of backup frequency, reliability, and need for failover. 31. Describe any problems related to current source control management practices and possible solutions. 2.4.3 Building and Integration 32. *Describe what aspects of the building and integration process are involved in your practice. (Building of executables, libraries, installations and documentation, dependency management, automatic deployment and testing, publishing, release management ) 33. List any build management and publishing tools you use. (Names or URLs, for example Maven, Ant, Ivy ) 34. List any continuous integration tools you use. (Names or URLs, for example Hudson, CruiseControl, Continuum, Bamboo ) 35. Describe any problems related to your current building and integration practices and possible solutions? 2.4.4 Quality Assurance and Testing 36. *Describe any QA procedures you are currently using. (Description or URLs, in relation to code reviews, testing, issue management ) 6

37. Describe what types of test you use. (Example test types: conformance, functional, unit performance, load, compatibility, portability, integration, security ) 38. List any test tools you use. (Names or URLs, for example JUnit, TestNG, Selenium, soapui, Cobertura, jcoverage ) 39. Describe any code metrics you use. 40. Describe your usage of dedicated testing infrastructure or servers. (Description) 41. Describe any problems related to current quality assurance practices and possible solutions. 2.4.5 Documentation 42. *Describe your approach and policies towards documentation, including any existing technical and user documentation guidelines. 43. List any documentation templates you use and describe good examples of technical and user documentation. 44. List any source code documentation tools or documentation generators you use. (Names or URLs, for example Doxygen, ROBODoc, Natural Docs ) 45. To what extent do you use UML and other type of modeling languages? (For example at conceptual level, within the whole lifecycle Also mention what software tools and types of diagrams are being used ) 46. List any user documentation, help authoring tools and formats you currently use. (Names or URLs, for example DocBook XML, wiki, MS Word, OpenOffice Writer, JavaHelp, RoboHelp, KeyTools, HelpSetMaker ) 47. Describe any problems related to current documentation practices and possible solutions. 2.5 Rollout and User Support 2.5.1 Deployment 48. *Describe any deployment management policies and procedures you use. (For example in relation to verification, piloting (use of alphas, betas, release candidates ), release management, naming of packages) 7

49. Describe any tool or processes you use for software packaging, installation, distribution and usage. 50. Describe your usage of code signing. (For example creation and usage of signatures, checksums and certificates, relation with AAA infrastructure) 51. Is there a need for configuration management for instances of deployed software? List any tools you use. (Description, names or URLs) 52. Describe any problems related to current deployment practices and possible solutions. 2.5.2 Maintenance and User Support 53. Describe any existing procedure and guidelines for release management. 54. Describe any installation and upgrade procedures you have. 55. Describe your issue prioritisation and user support procedures. 56. Describe any change management and feature request adoption process you have. 57. Describe any documentation dissemination procedures and distribution channels you use. 58. Describe your user training approach means and practices. 59. Describe your user support approach, as well as used tools and infrastructure as helpdesk, contact person, issue and request tracking or CRM software, support web site or information page, blog, forum, mailing list... (Names, description or URLs) 2.6 Submitter Details 60. *Enter you name and surname. 61. *Enter your organisation. 62. *Enter your email address. 8