Presentation is loading. Please wait.

Presentation is loading. Please wait.

Connect communicate collaborate Bringing Governance into Distributed R&D Software Development – GÉANT Case Study Branko Marović

Similar presentations


Presentation on theme: "Connect communicate collaborate Bringing Governance into Distributed R&D Software Development – GÉANT Case Study Branko Marović"— Presentation transcript:

1 connect communicate collaborate Bringing Governance into Distributed R&D Software Development – GÉANT Case Study Branko Marović branko.marovic@rcub.bg.ac.rs Paweł Kędziora kedziora@man.poznan.pl Marek Lewandowski marekl@man.poznan.pl Cezary Mazurek mazurek@man.poznan.pl

2 connect communicate collaborate Motivation Software governance  Efficient development and quality Complexity of Organisational structure behind development process – Independent and distributed groups of developers from NRENS Domain where the results are applied – The multi-domain GÉANT network interconnects Europe’s NRENs using combination of routed IP and switched infrastructure. GÉANT network services are grouped into Connectivity Services Network Performance and Operations Services End User Applications Need for consistent development methodology, management procedures, tools…

3 connect communicate collaborate Software Governance in GN3 New activity, independent from developments, directly responsible to project officers Best Practices – collecting and publishing best practices related to software architecture, software development and quality assurance Development Infrastructure – establishing and maintaining common infrastructure for development Quality Assurance (QA) – verification of application of best practices and common software development infrastructure by means of periodical audits

4 connect communicate collaborate Initial Status How to consolidate established and diverse software developments toward the common ground? Baseline - survey of all GN3 software developments on practices, technologies, issues and expectations on governance. Developments mostly in Java. Difference in practices and tools. Overlapping efforts, integration problems, uneven quality. Although teams declared use of agile methodologies, most introduced them inconsequently or selectively. Development infrastructure was multiplied  Ineffective usage of manpower; inadequate accessibility of source code and documentation. Interest in guidelines related to various aspects of coding, testing, deployment…

5 connect communicate collaborate Best Practices Guide the software developments towards a common path across individual developments and methodologies. Common sense, wide-ranging, informative guidelines. From programming and development procedures to access and use of the support infrastructure to support and project closing. Guides: Software Developer Software Architecture Strategy Quality Assurance

6 connect communicate collaborate QA Audits Periodic measurement of projects’ progress in terms of Alignment with best practices. Use of common tools and provided development infrastructure. Resulted in numerous recommendations that were given to developers. More advanced or specific topics and tools related to later software lifecycle stages are addressed in best practices updates and infrastructure extension.

7 connect communicate collaborate QA Audits

8 connect communicate collaborate SW Development Infrastructure Based on mainstream development tools Shared across all distributed teams Set of commonly used services Source code management and reviewing Issue tracking system Artefacts repository Collaborative work platform Continuous integration system

9 connect communicate collaborate Gradual Approach Incremental alignment, continuous detailing of initial recommendations, addition and integration of more advanced tools. Mapping of recommendations on actual use of common tools. Software governance itself is strongly aligned with the principles of agile methodologies promoted for software development. Relies on developers’ feedback and demands. Issues identified through QA.

10 connect communicate collaborate Proactive Attitude Initial results were widely applied by developers, so we extended the scope with Extension of best practices with guidelines related to the transformation of developments into reliable products. Facilitation of knowledge and experience sharing. In-depth audits on software quality, reliability, efficiency and security. Support in appliance of the recommendations from periodical audits. Support to the Project Office with tools for verification of compliance with the IPR policy.

11 connect communicate collaborate Summer Developers Schools Developers mingle, exchange experiences, learn best programming practices and solve common problems together. Targeted tutorials. Working in small groups on prepared related tasks. Shared development infrastructure used in hands-on sessions. Presentation and analysis of results. Also contribution to two security-related trainings.

12 connect communicate collaborate QA Persons Not all of QA recommendations were implemented. First line of support for each development team established by introducing Quality Assurance Personnel. QA persons: Advisors supporting project teams. Observe the development process and proactively investigate potential issues. Issues reported to lead developers. If not solved internally, QA persons initiate communication and knowledge exchange with other teams and available experts.

13 connect communicate collaborate In-Depth Audits Performed for two applications under development in addressing architecture, reliability, and efficiency; process related suggestions. Security audit for an application in migration from pilot to operational. QA persons served as liaisons between the auditors and developers. Recipients of the results agreed that such detailed and sophisticated analyses would not be possible by using internal reviewing and testing.

14 connect communicate collaborate QA Testbed Infrastructure for demos, testing in development and QA. Comprised of a number of virtual machines with shared storage. Demonstration and testing by development teams. Scheduled pool for distributed QA testing.

15 Dell R710 Physical Machines QA Testbed VMsSWD VMs … Storage Virtualised View Common Services SW Development Services Group User Identity Service QA Testbed Infrastructure Services VM Admin Management SWD storage (incl. work space, VMs’ images & snapshots) QA Testbed storage (incl. work space, VMs’ images & snapshots) Backups

16 connect communicate collaborate Addressing IPR GÉANT services are developed by distributed teams hired by numerous NRENs. It became crucial to establish GN3 IPR policy and manage its appliance in development. Separate IPR coordination activity Artifactory Pro License Control – tool supporting IPR coordination and conformance. Interaction with CI and Maven. Tracking of licenses for built software and dependencies. Repository of allowed and forbidden licenses. Verification of projects’ IPR policy.

17 connect communicate collaborate Conclusions Importance and impact of the software governance in distributed software development in R&D project. Used approach goes beyond the usual methodologies and frameworks – tailored for the characteristics of GÉANT developments. Everyday procedures (best practices). Formal processes (audits). Support resources and activities (maintenance of development infrastructure). Addressing difficult underlying areas: identification of needs, motivating developers to apply guidelines, trainings, stimulating knowledge sharing. This approach may be applied in other large scale distributed projects.

18 connect communicate collaborate Acknowledgements This work is supported by the GN3 project, which is in part funded by the European Commission under the Seventh Framework Programme, contract number FP7-ICT 238875.


Download ppt "Connect communicate collaborate Bringing Governance into Distributed R&D Software Development – GÉANT Case Study Branko Marović"

Similar presentations


Ads by Google