productivity gains using open source products

22
PRODUCTIVITY GAINS USING OPEN SOURCE SOFTWARE A Case Study from SATYAM 1

Upload: madhusudan-rao

Post on 05-Dec-2014

2.593 views

Category:

Technology


0 download

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.ppt

TRANSCRIPT

Page 1: Productivity Gains Using Open Source products

PRODUCTIVITY GAINS USING OPEN

SOURCE SOFTWARE

A Case Study from SATYAM

1

Page 2: Productivity Gains Using Open Source products

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

Page 3: Productivity Gains Using Open Source products

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

Page 4: Productivity Gains Using Open Source products

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

Page 5: Productivity Gains Using Open Source products

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

Page 6: Productivity Gains Using Open Source products

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

Page 7: Productivity Gains Using Open Source products

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

Page 8: Productivity Gains Using Open Source products

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

Page 9: Productivity Gains Using Open Source products

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/

Page 10: Productivity Gains Using Open Source products

CONTINUOUS INTEGRATION REPORT

Build status /

Checkstyle report

Errors / warnings

Unit Test Results

Version Control update history

10

Page 11: Productivity Gains Using Open Source products

“Covered” lines (blue)

Not Covered (red)

CODE REVIEW / CODE COVERAGE

Checkstyle Report

IDE integration

(error highlighted)

11

Page 12: Productivity Gains Using Open Source products

PERFORMANCE TESTING - JMETER

Simulate 10

Concurrent users

Loop entire test

20 times

results exported

to Excel for analysis12

Page 13: Productivity Gains Using Open Source products

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

Page 14: Productivity Gains Using Open Source products

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

Page 15: Productivity Gains Using Open Source products

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

Page 16: Productivity Gains Using Open Source products

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

Page 17: Productivity Gains Using Open Source products

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

Page 18: Productivity Gains Using Open Source products

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

Page 19: Productivity Gains Using Open Source products

19

WORK PACKAGE TEMPLATE (CONFLUENCE)

Confluence (Wiki)

Web Based

Simple Status

Reporting

No frills, but

effective

Page 20: Productivity Gains Using Open Source products

20

JIRA USED FOR USER STORIES /TASK TRACKING

Page 21: Productivity Gains Using Open Source products

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

Page 22: Productivity Gains Using Open Source products

THANK YOU

Satyam

22