Indian Geek's Blog

Friday, December 10, 2004

Adopting Open Source Software In SDLC

Recently I took a session on the significance of OSS and ways of adopting it in Software Development to my team. Please find the content of the session below. Also included is the deck I have used for the presentation.

Introduction

Open Source Software (OSS) is one of the hot topics of the Enterprises and IT consulting firms now a days. Things have been changed so much these days that the so called analysts (Gartners, Metas) have a dedicated focus on OSS analysis. OSS has clearly dominated edge infrastructure in the enterprises. Enterprise are also being very quick in adopting OSS in their software infrastructure.

One of the other major areas where OSS looking very attractive is in the area of tools used Software Development Life Cycle (SDLC). Commercial tool vendors them selves realizing that the SDLC tool industry is commoditized and can no longer be competitive. One of the famous examples is how IBM has open sourced their Eclipse technology.


Quick OSS Primer


Open Source as defined by Open Source Initiative (OSI) has three important characteristics.
  • Source Code
  • Free Redistribution
  • Derived Works

For complete definition please visit www.opensource.org

Free Software Movement is one of first instances where open source software gained its momentum. Many people appreciated the philosophy of Richard Stalman and contributed a lot to the GNU (GNU is Not Unix) initiative which is the heart of OSS echo system. With the entry of Linux kernel and the GNU the OSS echo system is kind of complete and really become mainstream.

For a brief history of open source please visit

http://www.openknowledge.org/writing/open-source/scb/brief-open-source-history.html

Key Facts about OSS adoption

  • GNU/Linux server units projected to have a 65.8% compound annual growth rate over the next five years (IDC Briefing)
  • GNU/Linux reducing total cost of ownership by 45 to 80 percent (IDC Whitepaper)
  • Roughly one-third of web serving computers use OSS Operating Systems (GNU/Linux + BSD Variants) (Netcraft Survey)
  • Apache is more widely used than all other web servers combined (67% - Netcraft’s Latest Web Server Survey)
  • Open Source databases offering 90 percent reductions in cost (MetaGroup)
  • JBoss had a 27 percent market share in application servers, a 93 percent increase over the previous year (BzResearch - "Third Annual Java Study“)
  • Two-thirds of companies use open-source products; another 16% expect to use open source in 2005 (InformationWeek survey )
  • 100,552 is number of projects listed on Sourceforge.net

SDLC OSS specific facts

  • 12% of the projects listed on Sourceforge.net are related to Software Development
  • In one of the surveys conducted by CMP TSG/Insight 41% of respondents said that they are using OSS in the Software Development, next only to 76% of respondents who uses microsoft tools.

All the above facts were taken from

http://www.dwheeler.com/oss_fs_why.html

Case For OSS in SDLC

License Costs are one of the primary reasons why enterprises are looking at OSS tools. SDLC tools are normally used in binary form which would mean no legal issues as well. Especially in the context outsourcing where the competition is very high use of OSS tools can bring down the costs significantly.

OSS Tools are normally are used in areas where there is no reach of traditional tools, these include mock testing, in container unit testing etc., These tools add to the developer productivity significantly. In addition to these OSS Tools are mostly focused on the development rather than processes. Popularity of agile methods adds further need of flexible set of focused tool set which can integrated through open interfaces (Eclipse and their plugins is one good example) rather than a monolithic general purpose tool.

A 3 Level Adoption Model

When planning to use OSS SDLC tools for the first time consider the following 3 level strategy.

Level 1:
Look at the areas where tools are not being used. Rolling OSS tools is an easy job in such cases. OSS tools are available in areas where traditional tools are not found. Tools for 'mock testing', 'in-container testing', 'automated builds' are to be found only in OSS.

Level 2:
Replace the existing tools in life cycle phases whose impact is relatively low. For example switching to OSS in the area of build is relatively safe as number of people get effected are very few. Another such instance would be to change the testing tool.

Level3:
Ultimate step. Use the high impact OSS tools whose commercial counterparts are very expensive. These tools include IDEs, Configuration Management Tools, and Case Tools. Please be cautious in using immature/inappropriate Tools at this level.

Though one can start with all 3 levels at the same time. However, when considering for the first time levels to be followed in a sequence. If proper risk mitigation strategies are not in place, it is possible that your enterprise/organization might perceive OSS as a failure altogether.

Challenges In Adoption

There are several challenges one need to take. The following are some of the challenges and few ideas on how to take them.

Support - Encourage The Team To Be Part Of The OSS Community. Use Tool Documentation, FAQs and User Groups Extensively. Nominate Few Senior Members As Tool Owners/Experts.

Choice - When Choosing The Tool Go Through A Well Thought Out Selection Process. Define The Parameters Based On Your Environment.

Usability - Define A Brief User Guide (How to Note) Specific To Your Use For Sophisticated Tools.

Training - Plan For Internal Trainings With The Nominated Tool Experts.

Cultural Issues - When Choosing Tool Take The Team Opinion Into Consideration. Cultivate The Enthusiasm and Create The Challenge. Software Engineers like the Challenge.

License - Verify the License Before Using Any OSS Tool. Follow The OSS License Summary.

Risks - Carry Out PoCs When Trying For The First Time. Create Reference Implementation For The Team Use. Define A Fallback Strategy For High Impact Tools. Implement In Phases.

Benefits

Innovative Tools - Most Of The OSS Tools Are Created by Developers for Developers
Productivity Gains - Mostly OSS Tools Are No non-sense and Work To The Point.
Lower/No License Costs - Mostly Are Free For Use
Flexible & Extensible - Can Be Extended and Modified If Required.
Community Support - Vibrant Communities Around OSS Tools Bring More Benefits Than You Can Imagine
Bottom-Up vs. Top-Down - Bottom-up To Get The Job Done. No Process Overheads. Compare With RUP or Other Process Based Tools.

OSS Tool Selection Process

When choosing OSS Tools in SDLC, look at the following parameters and guidelines.

License - Check the amount of flexibility you would have with the license. Also Check with the license if it is acceptable to the customer/end user.
Community - Check if there are news groups, IRC channels, and mailing lists dedicated to the tool. Also check how active these channels. One of the ways to check the activity is to have a look at the traffic.
Documentation - See if there are any online tutorials are available. Also check if the documentation is up to date and is complete.
Usability - Try the tool to see its usability. Ask people who are not familiar with the tool to give a try.
Maturity - Compare the tool with a commercial product. See if the feature set is complete and meets the requirements. See the release version. Verify the tool maturity and ratings in sites like freshmeat.net. Also see the tool status and version numbering, most of the OSS tools are honest about their stability.
Cohesion - See how the tool fits into your existing set of tools and rest of environment.

See the complete presentation here

http://www.geocities.com/aravindajju/OpenSourceSoftwareInSDLC2.ppt


0 Comments:

Post a Comment

<< Home