productivity gains using open source products
DESCRIPTION
Presented at the Software Engineering Conference 2007, Bangalore on the subject of “Productivity Gains Using Open Source products”. This presentation is available also at the website http://www.bcic.org.in/notifications/BCIC-BSPIN/Mr. Madhusudan Rao, Satyam.pptTRANSCRIPT
PRODUCTIVITY GAINS USING OPEN
SOURCE SOFTWARE
A Case Study from SATYAM
1
OPEN SOURCE – MARKET GROWTH
Linux
Linux server revenue exceeded $1.6 billion in quarterly factory revenue in 2Q05
Linux servers represented 12.7% of overall quarterly server revenue
Linux server revenues continue to increase market-share, gaining on M$
Firefox
13.4% market share as of Mar„07, next to IE
Crossed the 200 million mark in downloads
MySQL
Open Source database software is used highly among developers
MySQL is leading the way with 44% Open Source database deployment
Gained 25% market share in overall database usage
2
PREDICTIONS FOR OPEN SOURCE
Gartner Report
By 2008, open source will compete
with closed source in every
infrastructure market.
By 2010, 75 percent of
mainstream IT shops will have a
formal open source acquisition
policy in place.
By 2010, mainstream IT shops will
consider open source for 80
percent of their infrastructure
software needs.
By 2010, mainstream IT shops will
consider open source for 25
percent of their business software
needs.
Forester Research (Nov 05)
3
OPEN SOURCE ADOPTION AROUND THE
WORLD• May 28 2005 – Munich city council
approved a proposal for $35.7 million from SuSE and IBM.
• More than 40 percent of organizations in Ireland use some form of open-source software in 2006.
• The city of Mannheim planned to
complete the first phase of its migration to Linux
• India‟s largest public sector bodies: BSNL; Indian Railways; South Asian Petrochem; IDBI Bank; Central Bank of
India; and the Department of Treasury, Government of West Bengal are running on Linux.
• Brazil has announced a three-year plan to
switch 80 per cent of its government systems to Linux
Japan, China and South Korea have created Asianux – an Asian Linux support consortium – to form an accessible version of Linux.
• MySQL got a five-year contract with the US General Services Administration for government customers.
The Consortium of Chinese software companies called the Beijing Software Industry Productivity Centre (BSIPC) is now promoting Beijing as not merely the capital of China but also “Asia‟s Linux Capital”.
4
OPEN SOURCE BUSINESS
Model What it means Who's doing it Advantages for CIOs Startup challenges
Open Source +
ServiceCompanies sell support and services around open-source software.
Compiere (ERP), JBoss, Red Hat
You pay only for support, not software.
The cost to switch providers is relatively low because the source code is available to anyone.
Difficult to build businesses because switching costs are low, as are barriers toentry.
CIOs will always favor large, established vendors over startups unless the startups also control code development.
Unless the software is complex or mission-critical, CIOs may choose to support it themselves.
MixedAn open-source code base with proprietary add-ons.
Sourcefire (security), SugarCRM
CIOs may not need the proprietary stuff, but if they do they'll already have acquired deep experience with the open-source product before buying the add-ons.
There's ample motivation to make the open-source product inferior to the proprietary package, transforming the open source into trial software.
If that happens, there may be a backlash among open-source developers and users wanting to see all the code.
Open Source +
Buy Off
Companies offer a proprietary license for their open-source software so that users can modify the software and redistribute it without having to make the code changes available to the public.
MySQLSleepycat
The open-source software has all the features of the proprietary version.
Sales of the proprietary version are limited mostly to those companies that want to redistribute it as part of their ownhardware or software packages.
Open Source +
Aggregation
Companies assemble various open-source software packages into integrated units that are easier for CIOs to consume.
Exadel, Navica, SourceLabs, SpikeSource
Simplifies open-source integration and support.
Barriers to entry are low, brand differentiation isdifficult, lack of ownership of open-source projects limits the influence of the company in the development of the code.
Open Source +
Hardware
Hardware makers use open source as the foundation for the software that runs their machines.
Cisco, Digium, Netezza Lower prices on hardware.
It's difficult to differentiate on hardware alone, especially when CIOs are looking to standardize their infrastructures.
5
JBOSS
Application Development expertise on the JBoss Enterprise Middleware System (JEMS™)
JBoss Application Server
JBoss jBPM
JBoss Portal
JBoss Cache
Tomcat
Hibernate
Under partnership, will have access to JBoss technical support and resources
Huge opportunity in migration of Java EE applications
WebLogic JBoss
WebSphere JBoss 6
OPEN SOURCE SOFTWARE
Subversion• Free and Open Source SCM /
version control tool
• Significant cost savings & efficiencies compared with VSS
• Excellent support for distributed teams
• Faster and more efficient than VSS or CVS
• Plugins available for .NET as well as Java EE IDEs
Spring Framework• Java EE framework now at
critical mass in terms of adoption
• Consistent framework and infrastructure support for all architectural layers of the Java EE stack
• Improves productivity, promotes good design principles
• Reduces boilerplate / “plumbing” code significantly
7
OPEN SOURCE SOFTWARE
MySQL / PostgreSQL
Free and Open Source database
alternatives
Proven scalability and volume /
capacity
Can replace commercial
equivalents during development
Especially for Java EE projects
Opportunities in terms of
migration projects
… MySQL
… PostgreSQL
Linux
Complements the Open Source
development tools initiative
Focus on Ubuntu / Debian, Fedora,
SuSE, Solaris
Ideal for development / test and
integration servers
Scales better for large teams
Smoother transition to Linux / Unix
production environments
8
9
„INDUS‟ DEVELOPMENT STACK
Subversion
Eclipse / NetBeans
Ant + Maven2
JUnit
EMMACode Coverage
Unit Testing
Build Scripting
IDE
CheckStyleCoding Standards
Subversion Client TortoiseSVN / Subclipse
Continuous
IntegrationCruiseControl
Version Control
Server
Workstation
JMeterNetBeans
Profiler
Load Testing Profiling
Performance
Validation
SeleniumAutomated
Functional Testing
Completely Open Source
Agile best practices
Continuous Integration
Test Driven Dev.
Java build Best Practices
IDE Neutral
Ant Based
Maven 2
Tool Name Used For URL
Subversion Version Control Server http://subversion.tigris.org/
CruiseControl Continuous Integration http://cruisecontrol.sourceforge.net/
TortoiseSVN Version Control Client http://tortoisesvn.tigris.org/
Subclipse Version Control Client (Eclipse Plugin) http://subclipse.tigris.org/
Checkstyle Java Coding Standards Checker http://checkstyle.sourceforge.net/
EMMA Java Code Coverage http://emma.sourceforge.net/
JUnit Java Unit Testing http://www.junit.org/
Ant Java Build Scripting http://ant.apache.org/
Maven Java Dependency Management http://maven.apache.org/
Eclipse Java IDE http://www.eclipse.org/
NetBeans Java IDE http://www.netbeans.org/
JMeter Load Testing http://jakarta.apache.org/jmeter/
NetBeans Profiler Java Profiling http://profiler.netbeans.org/
CONTINUOUS INTEGRATION REPORT
Build status /
Checkstyle report
Errors / warnings
Unit Test Results
Version Control update history
10
“Covered” lines (blue)
Not Covered (red)
CODE REVIEW / CODE COVERAGE
Checkstyle Report
IDE integration
(error highlighted)
11
PERFORMANCE TESTING - JMETER
Simulate 10
Concurrent users
Loop entire test
20 times
results exported
to Excel for analysis12
JAVA APP. PROFILING – NETBEANS PROFILER
Entry point
(JSP form submit)
Business “façade”
Interface method
Spring AOP
(Transaction Interceptor)
DAO method
Example Comparison
Analysis between twoData Access frameworks
Time in milliseconds
(sortable)
13
AUTOMATED FUNCTIONAL TESTING
New breed of Open Source tools available
Innovative approach to Web-Testing Tests run within a real browser
Selenium ( http://www.openqa.org/selenium ) Javascript based
Cross-browser support
Test script recording possible to some extent
Watir ( http://wtr.rubyforge.org ) Ruby based
Flexible
Only IE support at the moment
14
CASE STUDY – EUROPE CLIENT
Large Scale e-commerce site for Automotive / Electronics co. Extensive use of the Spring Framework Extensive use of Open Source
Spring JDBC, JBoss Cache, Custom Tag Libraries
Dev Environment Tomcat Subversion CruiseControl JIRA (Issue Tracking, Task Tracking) Confluence (Wiki, Requirements, Work Package
Definition) Google Talk VPN / Common Network
15
EUROPE CLIENT – CONTD.
Requirements documented in Confluence (Wiki)
User Stories (Tasks) created in JIRA and estimated
Tasks assigned to developers
Developer updates effort in JIRA on daily basis
JIRA excel exports used for tracking
Key resources from Satyam / Client travel during milestones
Continuous communication using Google Talk
Reduced dependence on formal tele-conferences
4 – 6 week “sprints”
Stand-Up Meetings
User Demos
16
WORKING MODEL - ONSITE & OFFSHORE
17
Satyam
Developer
Satyam
Developer
Business Analyst
Lead Developer
Software Delivery
Manager
Satyam
Project Manager
3-7 Developers
Satyam
Lead Developer
Onsite Offshore
Satyam
Business Analyst
Tester
Technical
Coordinator
AGILE DEVELOPMENT WITH “LIGHTWEIGHT” JAVA EE
Spring No need of container
JUnit support classes
POJOs inherently easy to test
Hibernate Completely abstracts DB
HSQLDB can be used for testing
Unit tests can assume that DB exists, no mocks reqd.
18
Delete all previous build
artifacts / database files from file system
Compile all code and unit
tests
Connect to the database
and forward-generate the schema from the mapping
files using Hibernate.
Boot a fresh instance of the
HSQLDB database server
Run unit-tests.
Shutdown database.
Generate Reports
clean
compile
db-start
db-create
test
db-stop
reports
19
WORK PACKAGE TEMPLATE (CONFLUENCE)
Confluence (Wiki)
Web Based
Simple Status
Reporting
No frills, but
effective
20
JIRA USED FOR USER STORIES /TASK TRACKING
BENEFITS / FINDINGS
Benefits
Greater control and transparency for the client
Agility / Productivity / Quality
Test Driven Development pay-off
Learning's
Architecture matters, e.g. POJOs
No need to go “all the way” with XP
Borrowing a few key best Agile practices sufficient - for a start
Practices such as “pair programming” can work, but optional
Continuous Integration should be highest priority
No need for 100% unit test code coverage Reach a point of diminishing returns
Radical new approaches to functional test automation
21
THANK YOU
Satyam
22