The open source development model has unique characteristics that make it in some

Similar documents
Software Maintenance

Three Strategies for Open Source Deployment: Substitution, Innovation, and Knowledge Reuse

Implementing a tool to Support KAOS-Beta Process Model Using EPF

November 17, 2017 ARIZONA STATE UNIVERSITY. ADDENDUM 3 RFP Digital Integrated Enrollment Support for Students

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

A Pipelined Approach for Iterative Software Process Model

Visit us at:

Pair Programming. Spring 2015

Introduction to Moodle

McGraw-Hill Connect and Create Built by Blackboard. Release Notes. Version 2.3 for Blackboard Learn 9.1

Strategic Practice: Career Practitioner Case Study

Explorer Promoter. Controller Inspector. The Margerison-McCann Team Management Wheel. Andre Anonymous

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

TotalLMS. Getting Started with SumTotal: Learner Mode

Getting Started with Deliberate Practice

Open Source Community Organization

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

The Enterprise Knowledge Portal: The Concept

A GENERIC SPLIT PROCESS MODEL FOR ASSET MANAGEMENT DECISION-MAKING

Nearing Completion of Prototype 1: Discovery

ELDER MEDIATION INTERNATIONAL NETWORK

Ministry of Education, Republic of Palau Executive Summary

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

ACCOMMODATIONS MANUAL. How to Select, Administer, and Evaluate Use of Accommodations for Instruction and Assessment of Students with Disabilities

Requirements-Gathering Collaborative Networks in Distributed Software Projects

Operational Knowledge Management: a way to manage competence

Evaluation of Learning Management System software. Part II of LMS Evaluation

CS 100: Principles of Computing

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

Fundraising 101 Introduction to Autism Speaks. An Orientation for New Hires

Red Flags of Conflict

Beyond the Blend: Optimizing the Use of your Learning Technologies. Bryan Chapman, Chapman Alliance

Unit 3. Design Activity. Overview. Purpose. Profile

Introduction to Modeling and Simulation. Conceptual Modeling. OSMAN BALCI Professor

An Introduction to the Minimalist Program

Team Dispersal. Some shaping ideas

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

By Merrill Harmin, Ph.D.

Student Experience Strategy

PROCESS USE CASES: USE CASES IDENTIFICATION

Web-based Learning Systems From HTML To MOODLE A Case Study

Department of Geography Bachelor of Arts in Geography Plan for Assessment of Student Learning Outcomes The University of New Mexico

Enhancing Customer Service through Learning Technology

Module Title: Managing and Leading Change. Lesson 4 THE SIX SIGMA

WikiAtoms: Contributions to Wikis as Atomic Units

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

JING: MORE BANG FOR YOUR INSTRUCTIONAL BUCK

CLASS EXODUS. The alumni giving rate has dropped 50 percent over the last 20 years. How can you rethink your value to graduates?

The Evolution of Random Phenomena

The IDN Variant Issues Project: A Study of Issues Related to the Delegation of IDN Variant TLDs. 20 April 2011

SESSION 2: HELPING HAND

Moodle Goes Corporate: Leveraging Open Source

Office of Planning and Budgets. Provost Market for Fiscal Year Resource Guide

Grade 2: Using a Number Line to Order and Compare Numbers Place Value Horizontal Content Strand

CREATING SHARABLE LEARNING OBJECTS FROM EXISTING DIGITAL COURSE CONTENT

White Paper. The Art of Learning

Seminar - Organic Computing

From Self Hosted to SaaS Our Journey (LEC107648)

The Wegwiezer. A case study on using video conferencing in a rural area

Inquiry Learning Methodologies and the Disposition to Energy Systems Problem Solving

Khairul Hisyam Kamarudin, PhD 22 Feb 2017 / UTM Kuala Lumpur

Data Fusion Models in WSNs: Comparison and Analysis

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

Fearless Change -- Patterns for Introducing New Ideas

KIEI-903: Corporate Innovation and New Ventures. Syllabus. Fall Professors Dean DeBiase & Paul Earle TA - J.J. Malfettone

An Industrial Technologist s Core Knowledge: Web-based Strategy for Defining Our Discipline

Guidelines in context

Section 3.4. Logframe Module. This module will help you understand and use the logical framework in project design and proposal writing.

Welcome to the session on ACCUPLACER Policy Development. This session will touch upon common policy decisions an institution may encounter during the

Interactive Whiteboard

Prepared by: Tim Boileau

Lecturer Promotion Process (November 8, 2016)

Using Moodle in ESOL Writing Classes

FAU Mobile App Goes Live

Disability Resource Center St. Philip's College ensures Access. YOU create Success. Frequently Asked Questions

United states panel on climate change. memorandum

Outreach Connect User Manual

EXECUTIVE SUMMARY. Online courses for credit recovery in high schools: Effectiveness and promising practices. April 2017

The Agile Mindset. Linda Rising.

Geo Risk Scan Getting grips on geotechnical risks

SCHOOL WITHOUT CLASSROOMS BERLIN ARCHITECTURE COMPETITION TO

E-3: Check for academic understanding

Telekooperation Seminar

Mapping the Assets of Your Community:

Keeping our Academics on the Cutting Edge: The Academic Outreach Program at the University of Wollongong Library

California Professional Standards for Education Leaders (CPSELs)

Get with the Channel Partner Program

Introduction to Information System

Two heads can be better than one

Grades. From Your Friends at The MAILBOX

Evaluating Usability in Learning Management System Moodle

Multiple Intelligence Teaching Strategy Response Groups

Professor Christina Romer. LECTURE 24 INFLATION AND THE RETURN OF OUTPUT TO POTENTIAL April 20, 2017

Safe & Civil Schools Series Overview

Internship Department. Sigma + Internship. Supervisor Internship Guide

Infrared Paper Dryer Control Scheme

Paying for. Cosmetology School S C H O O L B E AU T Y. Financing your new life. beautyschoolnetwork.com pg 1

Transcription:

Is the Development Model Right for Your Organization? A roadmap to open source adoption by Ibrahim Haddad The open source development model has unique characteristics that make it in some instances a superior model for developing software compared to the traditional software engineering cascade model. As with other practices, the open source development model had its advantages and inconveniences. Will adopting the open source development model improve the way your corporate developers work and produce software? What are the best practices from the open source development model that we can use in a corporate environment? The open source software development model has a different process and set of values than traditional proprietary software development model. The traditional software development process consists of six activities illustrated in Figure 1: collecting and analyzing requirements, designing a solution approach, developing the code, testing, deploying, and maintaining. After each step is finished, the process proceeds to the next step. The open source development model has key differences compared to the traditional model of developing software (collect requirements, design, implement, test, release, and maintain). The open source development model, illustrated in Figure 2, starts with the idea for a new project, a new functionality or capability for an existing open source software component. The next step is to provide a design for the implementation and then a prototype of the capability and translate it from an idea into running software. At the moment the software runs, it s released as a development release, even though it may contain known and unknown bugs. This follows the spirit of release early and release often. The software will be tested by the community, which discusses the software through mailing lists and discussion boards and provide feedback, bug reports, and fixes through the project mailing list. The feedback is recorded and taken into consideration by project members and maintainers to improve the implementation and then a new development release will be available. This cycle repeats as often as needed until project members feel the implementation is stable enough. When the implementation is released as stable, the development cycle continues with the development release (also called the development tree) until a newer stable release is available. Some of the unique characteristics of the open source development model include: Bottom up development: Project members who do the most work get the most say when it comes to making design and implementation decisions. Those who do the most work get the most say. Relationships between developers are very important. Release early, release often : Don t wait to have a fully working version to make the code public. This release philosophy allows for peer review, where all members of the community can comment and offer suggestions and bug fixes. It also allows for small incremental changes that are easier to understand and test. Open source projects tend to make a release available early to be used by the user community and then update the release as the software is modified. This practice is described as release early, release often. The open source community believes that this practice leads to higher-quality software because of peer review and the large base of users who are using and testing the software, accessing the source code, reporting bugs, and contributing fixes. A side benefit of having many people looking at the code is that the code is reviewed for adherence to coding style; fragile or inflexible code can be improved because of these reviews. February 2007 PAGE 8 EnterpriseOpenSource.SYS-CON.com

Figure 1: The cascade model of traditional software engineering Peer review: Members of the open source project review the code, provide comments and feedback to improve the quality and functionality, and test to catch bugs and provide enhancements as early as possible in the development cycle. The result is high-quality code. Figure 2: Open source development model Small incremental changes: In open source project development, additional features are often small and non-intrusive and (SOURCE: BILL WEINBERG, OPEN SOURCE DEVELOPMENT LABS, 2006) for good reason: It s easier to understand small patches and code changes than big changes in the code or big architectural redesigns. The small changes are important because they help focus the testing phase, which is cyclical and ongoing with every increment of the software. A small change is less like to have unintended consequences. Features that ignore security concerns are flagged: The open source community takes security very seriously and any development or capability that jeopardizes the security of the software is flagged and not included in the software until the security concern is dealt with. Continuous quality improvement: This is due to the extensive peer review and quick bug fixes Test projects: In many cases, test projects are created for large open source projects to create test suites and automate testing. End-user involvement in the entire process: In Figure 2, we notice that the users are involved in all phases of development in the open source model. Communication Open source developers primarily communicate with each other using mailing lists. In the table below, we illustrate some slight differences concerning communication in an open source project compared to a corporate project. developers are distributed across the world No face-to-face meetings No conference calls Depending on the size of the company, developers can be in different geographies Weekly or bi-weekly project reviews to track progress, lead by project managers High reliance on conference calls and face-to-face meetings E-mail is very important as the primary mean of communication between open source project members Discussions happen on open mailing lists Many open source projects use chat for quick developer and user discussions E-mail is important Discussions are mostly face to face and in conference calls A lot of one-to-one e-mails between project members The use of chat software among corporate developers is growing as a cheap way to communicate versus travel for face to face meetings EnterpriseOpenSource.SYS-CON.com PAGE 9 February 2007

Many companies are adopting some of the the open source development model has Project Hierarchy Open source projects are organized differently than corporate projects. In the table below, we illustrate some key differences between open source projects and corporate projects focusing on project organization and hierarchy. Open source development teams primarily work together in a decentralized fashion with little hierarchy Hierarchy is loose and flexible Those who make the most contributions have the most say about the project There are no formal requirements for joining and no formal rules for participating The lack of formality doesn t mean that there are no standards for participating or behaving There are strong unwritten rules that govern all community interactions Community members are expected to interact respectfully, make reasoned arguments about why a particular course of action is right, and above all, contribute to the community Bottom-up development approach where decisions and power is as close to the bottom as possible (i.e., developers who write the code have a say in the direction of the project) Meritocracy drives advancement and acceptance As developers prove their competence and their contributions prove to be valuable to the project, they become more influential Open source project members work on a project when, and as much, as they feel like it Open source project members work on a project until they get bored and loose interest in the project Quality levels are often negotiable since the first goal is to provide a working prototype/proofof-concept, but after several cycles the quality improves tremendously The project leader is usually the person who originated the project or the person with the most technical competence and contributions working on the project. The project leader manages the project by consensus, leading by example The project leader is responsible for developing a common understanding of what functionally the upcoming release will contain, encourage new developers to join the project, help developers select a portion of the project to work on, and solve any conflicts that arise between team members Well structured with defined roles for the project manager, project architect, senior developer, etc. There are formal processes to follow when an individual wants to work on a new project Individuals follow and respect company rules and regulations, and are expected to contribute to the success of the project Top-down development approach where project management makes the decisions and pushes it down to the implementers adopts specific criteria as part of its performance management Members of a project are fully dedicated to it and must dedicate all their time to the project Must respect project deadlines and deliverable schedules Can t stop working on a project without management approval Quality is very important and often specific quality goals are request by customers The project leader is usually the manager assigned to the project by management The project leader is responsible for project requirements, communicating them, assigning developers portion of the work, and resolving conflicts February 2007 PAGE 10 EnterpriseOpenSource.SYS-CON.com

practices of the open source development; special characteristics that make for faster development, faster testing, higher innovation, peer review, total openness, and transparency Cultural Differences Working with the open source community is very different from the traditional corporate development environment and has a different process and set of values from the traditional proprietary development model. In the table below, we illustrate some key cultural differences between an open source development environment and a corporate development environment. Open source developers work on what they find interesting and bring tremendous energy to the project they contribute to Open source developers are usually volunteers who donate their time to open source projects that benefit the community as a whole Motivation for improving and developing a given piece of software is unpredictable. It might vanish or decrease depending on the interest in this piece of software. Release schedules are uncertain. Open source developers work on features of interest to them. As such, they don t work to meet specific deadlines, but work as long as they re interested in the project. Open source developers work in the open with full transparency and extensive peer review of their code All code developed for the project will be viewed, reviewed, and enhanced Open source developers welcome code contributions written by other developers Open source developers are famous for their code reuse practices and try to avoid doing something twice if it can be automated Open source developers maintain a source code tree that is open and available for all to see and access. They follow the release early release often practice that gives a good estimate of the progress and helps catch bugs early developers work on projects they are assigned to developers are paid to work on company projects Motivation for improving and developing a given piece of software is driven by customer demand developers are paid by their companies to devote their time to the projects they re assigned to Development typically takes place in a product group that is often closed and not available to others in the company for cultural reasons and little peer review outside the group that did the development often suffer from the not invented here syndrome in accepting code written by others Moving from writing propriety code to contributing source code to open source or using code developed by others is a new way of doing things. Many corporations are developing open source policies and procedures, and creating open source training for their employees s are encouraging code reuse among their developers in an effort to produce reusable software to help cut their costs developers follow strict rules when it comes to accessing source code trees and offering stable releases EnterpriseOpenSource.SYS-CON.com PAGE 11 February 2007

The Benefits of Adopting Working Methods There are several open source development practices that corporates can benefit from adopting in their development environment that can improve code quality, communication, effectiveness, and performance. Using open development methods à la Sourceforge Open source code tree: Make source code available to others to review and offer feedback and suggest improvements (peer review). Inside a company, this lets teams work across organizational lines and lets others add value to the software. Different users tickle different bugs, leading to higher quality. The practice of incrementally adding functions allows for better testing and better chances of capturing bugs. Cooperation is good and benefits all. Open mailing list used for all project-related discussions. Bug tracking systems. Technical support tracking systems. Patch tracking systems. Feature request tracking systems. Fast development cycle with small incremental changes Adopt the release early and release often practice. Go through the cycle several times. Apply small incremental changes in the release to make it easier to understand and test. Faster development builds. Shorter time-to-market. Pay special attention to quality and security Encourage reuse Promote and encourage company developers to use open source software and tools in their development environment where it might meet their needs Include open source software in products based on a set of criteria such as technical merits, time-to-market advantage, and avoiding vendor lock-in. Code reuse improves efficiency and increases cost savings. Build reusable software components Don t keep reinventing the wheel and don t act superior. If someone has already implemented the capability or feature you need, use it, and build on top of it. When you develop from scratch, keep reuse in mind, and develop code in modules that can be used by others and by you for other situations without much modification. Respect and follow community coding style The open source community follows a strict coding style to make it easier to understand the code, review it, and revise it quickly. Flag problems early and review with the team Hiding problems or bugs until you come up with a solution isn t encouraged. It s advisable to report bugs or problems when they turn up; the community will help you come up with a workaround or propose and help implement a better solution. Openness and honesty is key. Foster innovation New ideas have a better chance if engineers can review the source code and experiment with and build proof-of-concept code and test different methods. Recommended Practices Increase team communication End-user feedback Peer review Release early and often Transparency Good code design Description Using mailing lists, chat software, wikis Involve the end user to get feedback as you proceed Encourage peer review and provide an environment that welcomes feedback and suggestions Adopt the release early release often development practice for the many benefits it offers as compared to the traditional release model, and follow the model of continuous integration and automated test environments Adopt transparency and openness by using open source code trees, bug tracking database, and mailing lists that are open to the whole company. Build a minimal code base and add all the functions and capabilities as separate modules to encourage reuse and ensure easier testing. Conclusion The open source development model has proved to be a very successful model with hundreds of open source projects that can be used as a success story. This development model has special characteristics that allow faster development, faster testing, higher innovation, peer review, total openness and transparency. In this article we reviewed the open source development model and compared it to the traditional corporate development model. Many companies are adopting some of the practices of the open source development model for the advantages it offers. Will these practices be right for your company? You be the judge! About the Author Ibrahim Haddad is currently director of embedded & open source technology at Motorola where he is responsible for defi ning and developing the requirements for Motorola Software Group s open source initiatives. Prior to Motorola, Dr. Haddad managed the carrier grade Linux and mobile Linux initiatives at the Development Lab (OSDL), which included promoting the development and adoption of Linux and open source software in the communications industry. He is co-author of two books on Red Hat Linux and Fedora, a contributing editor of the Linux Journal, Linux Planet, and Enterprise Magazine, and a featured speaker and panelist at industry conferences such as Linux World, GlobalComm, Ottawa Linux Symposium, and academic conferences hosted by IEEE, ACM, and USENIX. He got his BSc and MSc in computer science from the Lebanese American University, and his PhD in computer science from Concordia University in Montreal, Canada. February 2007 PAGE 12 EnterpriseOpenSource.SYS-CON.com