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
Exploring the Future Potential of AI-Enabled Smartphone Processors
Case Study on Productivity Gains Using Open Source Software at SATYAM
1. A Case Study from SATYAM
PRODUCTIVITY GAINS USING OPEN
SOURCE SOFTWARE
1
2. 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
3. PREDICTIONS FOR OPEN SOURCE
Forester Research (Nov 05)
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.
3
4. OPEN SOURCE ADOPTION AROUND THE
WORLD
• May 28 2005 – Munich city council • Brazil has announced a three-year plan to
approved a proposal for $35.7 million switch 80 per cent of its government
from SuSE and IBM. systems to Linux
Japan, China and South Korea have
• More than 40 percent of organizations in
created Asianux – an Asian Linux support
Ireland use some form of open-source
consortium – to form an accessible version
software in 2006. of Linux.
• The city of Mannheim planned to • MySQL got a five-year contract with the US
complete the first phase of its migration General Services Administration for
to Linux government customers.
• India‟s largest public sector bodies: The Consortium of Chinese software
BSNL; Indian Railways; South Asian companies called the Beijing Software
Industry Productivity Centre (BSIPC) is now
Petrochem; IDBI Bank; Central Bank of
promoting Beijing as not merely the capital
India; and the Department of Treasury,
of China but also “Asia‟s Linux Capital”.
Government of West Bengal are running
on Linux.
4
5. OPEN SOURCE BUSINESS
Model What it means Who's doing it Advantages for CIOs Startup challenges
Difficult to build businesses because
switching costs are low, as are barriers toentry.
You pay only for support, not
software. CIOs will always favor large, established vendors
over startups unless the startups also control code
The cost to switch development.
Open Source Compiere providers is relatively low
+ (ERP), JBoss,
Companies sell support and services because the source code is Unless the software is complex or mission-critical,
around open-source software. available to anyone. CIOs may choose to support it themselves.
Service Red Hat
CIOs may not need the There's ample motivation to make the open-source
proprietary stuff, but if they product inferior to the proprietary package,
do they'll already have transforming the open source into trial software.
acquired deep experience
Sourcefire with the open-source If that happens, there may be a backlash among
(security),
An open-source code base with proprietary product before buying the open-source developers and users wanting to see
add-ons. add-ons. all the code.
Mixed SugarCRM
Companies offer a proprietary license for
their open-source software so that users
Open Source The open-source software Sales of the proprietary version are limited mostly
can modify the software and redistribute it
+ has all the features of the to those companies that want to redistribute it as
without having to make the code changes MySQL
Sleepycat
Buy Off proprietary version. part of their ownhardware or software packages.
available to the public.
Exadel, Barriers to entry are low, brand differentiation is
Navica, difficult, lack of ownership of open-source projects
Open Source Companies assemble various open-source
+ software packages into integrated units that Simplifies open-source
SourceLabs, limits the influence of the company in the
integration and support.
SpikeSource development of the code.
Aggregation are easier for CIOs to consume.
Open Source Hardware makers use open source as the It's difficult to differentiate on hardware alone,
+ foundation for the software that runs their especially when CIOs are looking to standardize
Cisco, Digium,
Netezza Lower prices on hardware.
Hardware machines. their infrastructures.
5
6. 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
7. OPEN SOURCE SOFTWARE
Subversion Spring Framework
• Free and Open Source SCM / • Java EE framework now at
version control tool critical mass in terms of
adoption
• Significant cost savings &
• Consistent framework and
efficiencies compared with
VSS infrastructure support for all
architectural layers of the Java
• Excellent support for
EE stack
distributed teams
• Improves productivity,
• Faster and more efficient than
promotes good design principles
VSS or CVS
• Reduces boilerplate /
• Plugins available for .NET as
“plumbing” code significantly
well as Java EE IDEs
7
8. OPEN SOURCE SOFTWARE
MySQL / PostgreSQL Linux
Free and Open Source database Complements the Open Source
alternatives development tools initiative
Proven scalability and volume /
Focus on Ubuntu / Debian, Fedora,
capacity SuSE, Solaris
Can replace commercial
Ideal for development / test and
equivalents during development
integration servers
Especially for Java EE projects
Scales better for large teams
Opportunities in terms of
Smoother transition to Linux / Unix
migration projects
production environments
… MySQL
… PostgreSQL
8
9. 9
„INDUS‟ DEVELOPMENT STACK
Completely Open Source
Agile best practices
Server
Version Control Subversion
Continuous Integration
Test Driven Dev.
Continuous
CruiseControl
Integration
Java build Best Practices
IDE Neutral
Ant Based
Workstation
Subversion Client TortoiseSVN / Subclipse
Maven 2
CheckStyle
Coding Standards
Code Coverage EMMA
Unit Testing JUnit
Ant + Maven2
Build Scripting
Eclipse / NetBeans Tool Name Used For URL
IDE Subversion Version Control Server http://subversion.tigris.org/
CruiseControl Continuous Integration http://cruisecontrol.sourceforge.net/
TortoiseSVN Version Control Client http://tortoisesvn.tigris.org/
NetBeans
Performance JMeter Subclipse Version Control Client (Eclipse Plugin) http://subclipse.tigris.org/
Profiler Checkstyle Java Coding Standards Checker http://checkstyle.sourceforge.net/
Validation
EMMA Java Code Coverage http://emma.sourceforge.net/
JUnit Java Unit Testing http://www.junit.org/
Profiling
Load Testing 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/
Automated JMeter Load Testing http://jakarta.apache.org/jmeter/
Selenium NetBeans Profiler Java Profiling http://profiler.netbeans.org/
Functional Testing
10. CONTINUOUS INTEGRATION REPORT
Build status /
Checkstyle report
Errors / warnings
Unit Test Results
Version Control update history
10
11. CODE REVIEW / CODE COVERAGE
Checkstyle Report
IDE integration
(error highlighted)
“Covered” lines (blue)
Not Covered (red)
11
12. PERFORMANCE TESTING - JMETER
Simulate 10
Concurrent users
Loop entire test
20 times
results exported
to Excel for analysis
12
13. JAVA APP. PROFILING – NETBEANS PROFILER
Entry point
Time in milliseconds
(JSP form submit)
(sortable)
Business “façade”
Interface method
Spring AOP
(Transaction Interceptor)
DAO method
Example Comparison
Analysis between two
Data Access frameworks
13
14. 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
15. 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
16. 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
17. WORKING MODEL - ONSITE & OFFSHORE
Onsite Offshore
Business Analyst
Satyam
Developer
3-7 Developers
Technical
Lead Developer Satyam Satyam
Coordinator
Lead Developer Developer
Satyam
Software Delivery
Satyam
Project Manager
Manager
Business Analyst
Tester
17
18. AGILE DEVELOPMENT WITH “LIGHTWEIGHT” JAVA EE
Delete all previous build
Spring clean artifacts / database files
from file system
No need of container
JUnit support classes Compile all code and unit
compile
tests
POJOs inherently easy to test
Boot a fresh instance of the
db-start
Hibernate HSQLDB database server
Completely abstracts DB
Connect to the database
HSQLDB can be used for
and forward-generate the
db-create
testing schema from the mapping
files using Hibernate.
Unit tests can assume that
DB exists, no mocks reqd. test Run unit-tests.
db-stop Shutdown database.
Generate Reports
reports
18
19. 19
WORK PACKAGE TEMPLATE (CONFLUENCE)
Confluence (Wiki)
Web Based
Simple Status
Reporting
No frills, but
effective
21. 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