OSS Model, Lifecycle & Development PRESENTED BY SHAFIUL AZAM CHOWDHURY STUDENT, CSE, BUET
Contents Open Source defined Pros & Cons of Open Source Software (OOS) OOS in developing countries Open Source Project Lifecycle A Proposed OOS Development Model
OOS Defined refers to software whose licenses give users 4 essential freedoms: to run the program for any purpose, to study the workings of the program, and modify the program to suit specific needs, to redistribute copies of the program at no charge or for a fee, and to improve the program, and release the improved, modified version. OSS users do not pay royalties as no copyright exists, in contrast to proprietary software.
“Traditional Software Development” – problems? Prone to time and cost overruns Largely unmaintainable Questionable quality and reliability Lack of user involvement: touted as contributing to project failure Shortfalls in skilled personnel: Team members with insufficient technical expertise price of license fees for software and tools required 75% of software projects fail in one or more of these measures.
OOS: Pros Collaborative, parallel development involving source code sharing and reuse constant feedback and peer review Large pool of globally dispersed, highly talented, motivated professionals: quality product Users are viewed as co-developers rapid release times OSS can be tested without cost: no license fee loosely centralized, cooperative community
User involvement in OOS Users: valued assets, treated as co-developers leads to code improvement and effective debugging users assist developers in finding system faults and improvements: reducing the need & cost for extra developers.
Motivation towards OOSD? No payment, then reasons for participation in open source ? Projects range from Challenge improving skills, to altruism and fun financial reward
OOS: Cons! Absence of formal management structures: slow progress. “large, semi-organized mob with a fuzzy vision” Involving users closely can become problematic: tend to create bureaucracies Meritocratic, ego-driven community: possible feature creep Programmer credibility > “keeping it simple”? Rapid releases: more iterations than commercial software: management problem new release needs to be implemented informal requirements analysis: problematic. What to include in newer version? „code-centric‟, targeted mainly at high-end power users. Less attention on potential “non-technical” audience! confusion surrounding licensing models
OOS for Developing Countries Governments everywhere encourage the use of OSS: motivated by savings in cost Potential development of a local software industry internationalization of software is a by-product. Governments and organizations stops worrying about piracy Results in new business ventures Poor user-interface: opens business opportunity! Improvement in skill shortage in developing countries.
Stages of Open Source PLC Introduction: initial motivation for a project to develop a software application produce a working version of the software sell the vision for the organization Growth: more users become aware of its existence. more feedback from the users regarding feature requests, bugs, support requests, etc. Administration gives more focus on quality and sufficiency.
Stages of Open Source PLC Maturity: the project approaches critical mass. number of users and developers grows to a maximum size admins are involved in a significant amount of time enforcing policies, evaluating others‟ code, and other non-development functions Increases levels of delegation to the community members code becomes large enough to warrant multiple versions and releases Decline (or Revival) users find other solutions to their products, developers lose interest revival of the project community in response to a new release/environmental or market change/motivated developers new growth or maturity stage
OOSD Model Phases Initiation Developed code/ initial version - used as a prototype for further progress. Review-contribution cycle Independent peer review Prompt feedback pre-commit testing Launched once code is considered adequate for release Ensures new code does not break existing release Faulty code hampers project reputation
OOSD Model Phases (contd‟) Debugging-reincorporation cycle within the community web space No formal planned debugging: individuals volunteers The more people that seek, find and remove bugs, the better the quality of the software Production release take the form of a prototype that can be used in the initiation phase of the next iteration of that project
References ORGANIZATIONAL STRUCTURE OF OPEN SOURCE PROJECTS: A LIFE CYCLE APPROACH by Donald E. Wynn, Jr. OPEN SOURCE: TOWARDS SUCCESSFUL SYSTEMS DEVELOPMENT PROJECTS IN DEVELOPING COUNTRIES by Rinette Roets, MaryLou Minnaar & Kerry Wright The Internet Presentation prepared by: Shafiul Azam Chowdhury, Student of Dept. of CSE, BUET