tejasoft code audit case studies

20
Technical Debt Java Code Audit -> Fix Expertise of Tejasoft

Upload: raja-nagendra-kumar

Post on 25-May-2015

321 views

Category:

Documents


1 download

DESCRIPTION

All details of TejaSoft's Java Code Audit and results in Case Studies way. Our Expertise in Java Metrics and Re-Engineering is 15+ million lines of code as of Jan 2013. Growing each day

TRANSCRIPT

Page 1: TejaSoft Code Audit Case Studies

Technical Debt

Java Code Audit -> Fix Expertise of Tejasoft

Page 2: TejaSoft Code Audit Case Studies

Agenda

• Introductions

• About Tejasoft

• About Founder - Nagendra

• Our Clients

• Cost Savings for our Clients

• Technology & Tools Expertise

• Case Studies

• Tejasoft Engagement Values

• Concerted Management & Execution – Being partner to client’s product goals

• Our Typical Engagement Model

Page 3: TejaSoft Code Audit Case Studies

About TejaSoft Bangalore based company into ‘Specialist Product Services’ since 8 Years

• Founder has worked in the past with Sun Microsystems as Portal Architect and has 2 US Patents and Nokia Asia award of S$50,000

• Team of 10, hands-on coders with sr. team having experience of close to 20 years

• We stand for ‘Least Cost of Engineering Maintenance’

Our Services

• Code Optimization (Clean Code Java Engineering)

• Performance and Scalability Engineering

• Build and Release Automation

• Technology Adoption/Transformation Excellence

• Architecture, Design and Code flexibility

• Refactoring & Unit Testing

• High Value Team Building , with Commodity Resources

• People, Culture and System Transformation

Expertise in elimination of Technical Debt from 11+ million lines of Java Code

Page 4: TejaSoft Code Audit Case Studies

About Founder - Nagendra

M.Tech from Anna University, Chennai

Code Quality Architect with expertise of handling

• more than 11+ million lines of java code

• worked with team of 1000+ on consulting model

Worked as Portal Architect at Sun Microsystems

Has US patents and awards in the area of Software Optimisation

Expertise in entire Java Stack

In the past worked at

• DRDO

• LG Soft

• Satyam Infoway

• Sun Microsystems

In the roles of Technical Manager, Product Architect, Technical Lead

Page 5: TejaSoft Code Audit Case Studies

Our Clients

NDS (www.nds.com) – World No:1 in SetTop Box Software Stack

IRCTC, through Broadvision (www.broadvision.com) - World No:1 Railways

Logix (www.logixworld.com) – One among the Top 5 Brands in US Auto Domain Software Products

ZoomIN (www.zoomin.com) – India Number 1, Online Photo Prints Company

Erasmic (www.erasmic.com)

Nuware (www.nuware.com)

Small Device (www.small-device.com is now acquired by www.digitalchocolate.com)

Faces.com

Page 6: TejaSoft Code Audit Case Studies

Cost Savings for the clients

US $1 Million year on year to NDS (Embedded Java)

• Reduced Set-Top Box EPG Footprint by 500kb i.e 30% of original size

• Single Source Build Architecture for diverse client customization needs

US $150k per day, extra business to IRCTC (Web and Mobile)

• Built and Deployed Scalable Web Services and Payment Integration for IRCTC

• Sales have grown from 6,000 tickets a day to 4 lakh tickets a day, of which 1 Lakh tickets are getting sold through our code

US $750k per year to Logix Microsystems (Portal, CMS and Analytics)

• Reduced the Engineering Team by 20 people

• Reduced Code Size by 2 Lakh lines

US $250k per year to Small Devices (Mobile)

• Built a Strong Mobile team, from 3 to 70 resources with commodity resources

• OOAD Porting Architecture to eliminate device specific code branching

• Eventually this company got sold to US DigitalChocolate due to Quality of results

Page 7: TejaSoft Code Audit Case Studies

Technology & Tools Expertise

Entire Java Stack, any Domain

Big Data, Google App Engine, Hadoop, Cassandra,

JavaEE, Spring, JPA, JDO, Hibernate, Portals (Liferay), CMS (Alfresco), BI Analytics (Pentaho, Jasper), Work Flow & BPM (Intalio), ERP (Compiere), OptimizeIt, JProfiler, JPDA, Weblogic, Web Sphere, Struts, Guice

Mobile JavaME, Android, Blackberry

Ant, Maven and Gradle Build Automation

JUnit, TestNG, JMock, BDD, DSL’s, JMeter, Saahi, Selenium, Load Runner, QTP

Any other Java Open Source and Closed Source Technologies..

Code Metric Tools – MaintainJ, SonarJ, Restucture 101 and many more Open and Closed Source Tools

Page 8: TejaSoft Code Audit Case Studies

Case Studies

Page 9: TejaSoft Code Audit Case Studies

Indian Railways Portal www.irctc.co.in is web interface for worlds No: 1 railway in the world (Indian Railways)

• Issues

• Performance, Scalability and reliability issues, were not able to keep the portal 24x7 (had several service breaks)

• New feature addition was difficult

• Web version, not supporting mobile interfaces

• Difficulty in release management --Identifying the source code for the production release

• Approach

• Owned Code & Team

• Modules Payment Gateway Integration

• Web Services

• Code Engineering – Refactoring, Unit testing Automation

• Migration to New Technology Strategy & Implementation

• Solution • Engineering Process

• Source code was identified from 25+ sources

• Put in place Build and Version System • Code Reviews • Defect Tracking System

• Provided • Refactoring and test automation

services to their existing portal code

• Design and implementation for exposing the IRCTC business securely though web services

• On-site (Delhi) and Offsite model with clear process defined and followed.

• JUnit Tests to measure Web services scalability

• Now • They sell 100k+ tickets per day online

as opposed to stressed to sell 5000 per day.

• Mobile applications and Bank ATM’s are depending on these web services code to sell the Train tickets (ngpay, mChek).

At IRCTC

Page 10: TejaSoft Code Audit Case Studies

Logix is a top 5 Auto Domain OEM Software vendor, Has 600+ clients on SaaS model, 10+ Products and 400+ team

• Issues

• High Increase in Hardware needs to run SaaS for improving performance

• High number of known defects

• Adding new client would become a big project

• Close to 80% product revenue re-invested into maintenance, performance & reliability issues

• Obsolete tools & technology

• Management concerns over loss of sales and giving a way for competition

• Approach

• Observe engineering activities at engineer’s, designer’s, architect’s & manager’s level. Have 1:1 meetings

• Design and Architecture Review of 3 of their products

• Identify Legacy Code and Comments

• Multi Tenancy approach at Database and Application Level

• Solution

• Reductions

• 15 lakh lines of code to 10 lakh lines in a year

• Hardware from 30 to 5 machines

• Team from 20 people to 8 people

• Zero Production time Bugs

• Overall maintenance cost reduced by 50% in a years time ($750k)

• Engineering & Existing clients Transformation Strategy was provided

• Technology adoption Road map for the New Version of the product was put in place

• A Portal Based Architecture and Design was provided

• Enable system with Enterprise Engineering Process and Tools

• Object Oriented Build System (OOBS)for Continuous Deployments with minimal human intervention

• Timely Code Metrics Collection

• Live Refactoring and Unit Testing

• Clearly identify Systems Integration points and Automate Updates

At Logix

Page 11: TejaSoft Code Audit Case Studies

ABB tasked KenIT to build a product (Vendor Payments Reconciliation) which collects huge business data from

SAP and to allow further business work flow though web interface. This product was to be delivered in a years time

by a team of 8 people

• Issue • Product gestation was taking long time

close to 2 years and was still not out

• High Performance and Scalability issue of Portal

• Client did not accept the delivery as SAP and Web Data were not matching

• Approach • Automate Manual Tasks

• Reduce people dependency

• Account People for Objectives than tasks for Last Mile Results

• Hand Hold team when needed

• Owned Architecture and Design Decisions

• Solution • Worked with multiple teams for

SAP, Web, ABB teams to solve last mile integration & delivery issues

• Product got accepted and signed by client with in 4 months our engagement.

• Product was able to scale to 100 concurrent users from previous 10 users with 3 times faster response

• Enabled a culture of inter team trust and accountability

At ABB

Page 12: TejaSoft Code Audit Case Studies

NDS is a world leader with ~40% market share in TV SetTop Box market, 3000+ employees, recently acquired by CISCO

• Issues

• 5 lakh+ lines of Embedded Java Code: Had become complex to maintain and release

• 30+ versions of EPG code – one per client, 500+ people team globally

• With a sales target of100 clients management could not afford as many teams

• Approach

• Analyzed code

• Source code Mgmt & repository structure

• Defects in their Bug-Tracking Systems & Feature Lists

• Build Process Maturity

• Reviewed Developers Challenges

• Code Metrics – LOC, Code Complexity, Structural Analysis

• Solution

• Documented issues & observations • Identified 86 structural design, coding &

architectural issues

• Reduce code by 70,000 lines

• Shared findings with the NDS team & got their buy-in

• Design/Coding • Common Source for multiple clients to

maximize reuse

• Code refactoring & unit tests

• Three long pending “unresolvable problems” were sorted out

• Reduced binary foot print by 30% (2MB to 1.5 MB)

• Saving of US $1 Hardware cost per box

• Cleaned up the source code repo • Brought merges back to trunk

• Eliminated unnecessary branch replication and dead branches

At NDS

Page 13: TejaSoft Code Audit Case Studies

Small Devices (SD) – Mobile Space 2005 year, angel founded Startup, was focused to excel as porting house for JavaME based mobile games.

• Issues • Need to build team from 3 to 100

people in a year

• Need for a reliable process for porting across mobile platforms

• Increase team member’s productivity

• Approach • Provide Object Oriented Porting

Framework

• Team Building Responsibility

• Hire, Guide and Hand Hold Team

• Groom 6 months to 3 years junior teams

• Induce Enterprise Development training tools and process

• Develop Automation Tools

• Solution • In 9 months the team was built to

70 people (from 3)

• Provided ANT based porting framework

• Enabled porting by Jr. teams

• Increased productivity from 1 port to 4 ports a week

• Small device was acquired by US MNC (Digital Chocolate) as a reliable porting house

At SD

Page 14: TejaSoft Code Audit Case Studies

Custom Tools/Refactoring/Work Areas • Object Oriented Build Engineering

• Re-engineering or migrate existing build script into Custom Ant Tasks/Maven Plugin or Gradle for Global Reuse

• Automate • Tools to Identify legacy codes at build

time and based on certain clients business rules

• Tools to Identify process and developer pains (manual areas) and bring out custom monitoring metrics

• Tools to uncovered test automation areas based on bug and feature patterns

• Tools for Automatic metrics collection related to misuse of existing metrics products within clients context

• Code Branches reports

• Hardware and Software - IT Waste and IT Rework reports

• Refactoring of Most Pain areas • Legacy code refactoring to give first

level results & evaluation on ROI

• Test Automation • Build functional, unit testing around

legacy code and pain areas, beyond what is existing

• Provide feedback on refactoring's for ‘Code Simplification’

• 3rd Party ‘Code Audit’ • Do independent code review and

bring the key areas of ‘Code Stress’ which when addressed can mean huge ROI

• Non-Intrusive/Non-Offending changes in Culture, Process and Technology • Our views and results always set new and

non-traditional bench marks

Page 15: TejaSoft Code Audit Case Studies

Learning's • NFR (Non Functional Requirements –

Scalability/Performance/Reliability/Maintainability…) should not be left for Last Mile

• Lack of clean Code Java Engineering/Code Quality Architect within IT roles

• Enable design for features and variances instead of accommodating them as bugs

• Tools & Technology are talked & hyped however lack of will and commitment to adopt • Maintain Status Quo Strategy

• Good design & coding is important for product longevity

• Lacking product mindset induces short term patch behavior

• Unit Testing/Refactoring’s not adopted appropriately

• Investment in developing tools for routine work not followed by developers

• Code & Practical Engineering is followed as a process than with a purpose

• Ignore obvious due to Time and Process Pressures

Page 16: TejaSoft Code Audit Case Studies

Engagement Values

Page 17: TejaSoft Code Audit Case Studies

Typical Engagement Model • Nagendra & Management Expert would get directly involved in the

project

• Enable a strong foundation & commitment for long term relation while proving in the short/medium term

• Ensure delivery commitment, accountability & ownership

• As design & clean code architect ensure high quality & end-end working

• Hands on relationship engagement, people & project management

• Eliminate typical vendor management pains like • Non productive escalations

• Follow-ups on performance/skill gaps/interviews

• Task based Accountability - as against Result based

• Manage attrition impacts on costs/timelines/knowhow at no extra cost to clients

• Ensure timely project feedbacks from/to client for effective communication

Page 18: TejaSoft Code Audit Case Studies

Typical Engagement Model (cont.)

• Build a Team – Augmented to the current team or Own few lakh lines of code

• Build & Actively Mentor a small team with technical, soft skills and product/domain knowledge

• Structure the Code Engineering aligned to the engineering releases.

• Enable professional team linkages between the Automation & client’s core engineering teams with minimal handholding

• Protects client’s management & engineering investment

• Tool/System/Domain ramp up time 1-2 months

• Allows a basis to increase additional team members for Automation or for other projects

• The team/members can be transferred to client or we can use clients existing team

Page 19: TejaSoft Code Audit Case Studies

Concerted Management & Execution – Being partner to client’s product goals

• Account Engagement

• Work with client’s Management to understand/align with clients business & people goals & become their trusted execution partner

• People Management

• Hiring, Team Building, Technology, People and Communication skills, Training on the job

• Product Management

• Understand product goals

• Enable team structure/alignment to meet above

• Project/Process Management

• Understand client’s project/process management

• Bring best practices for effective project management

Team Communication

Regular meetings for project alignment

Timely & effective communication to client Management, Reviews, Feedbacks

Architecture/Design/Code/Test

Design/Code Quality, Audits

Engineering process to reduce IT Waste & Rework

Effective Tool Usage

Structure Release Process

Technology Research for Biz Value

Adopt best-in-class technology and framework for development, code management, testing

Identify invention disclosure and patentable ideas for client

Page 20: TejaSoft Code Audit Case Studies

Thank You