2. Introductions
• Paul Senatillaka, Technology Consultant in the Application
Engineering group
• Information Management Service Offerings
• Business Intelligence
• Application Engineering
• SharePoint
• ERP Integration
• Information Management’s Contact Information:
• Email: jack.notarangelo@caturano.com
• Tel: 617-241-6469
2
3. New England’s largest regional full-service CPA,
consulting, and wealth management firm
• Serving the needs of businesses ranging from small and emerging to
middle market and prominent public companies for over 30 years
• Providing a full array of services including audit, tax, technology
consulting, compliance, internal audit and wealth management for a
broad range of industries
• Depth and expertise of national firms with the advantages of a local
regional firm
• 32 partners, over 370 employees
• PCAOB registered
4. Comprehensive technology and
consulting services
• Ranked area’s largest IT Consulting firms for 4 consecutive
years
• Over 70 certified IT and seasoned business professionals
• Microsoft Gold Certified Partner
• Top 40 VAR in the Nation for 3 consecutive years
• Uniquely positioned to access the vast resources of our firm,
including specialists in audit, tax, and business advisory
services
5. Caturano and Company Consulting Services
Management Consulting
Merger Integration Business Process Outsourcing Process Improvement
Project Management Software Selection Strategy
BI & Performance
Management
Planning, Forecasting &
Budgeting
Reporting, Scorecards &
Analysis
Portals & Business Collaboration
Workflow & Process Automation
Documents and Content
Management
ERP & CRM
Solutions
Microsoft Dynamics CRM
Microsoft Dynamics GP
SAP Business One
Implementations
Data Conversions
Training
Upgrades
Custom Report Development
System Requirements & Analysis
Web Based Training
Third Party Products
Integrations
Procurement / Requisition
Systems
IT Outsourcing
Application Management
Infrastructure Management
IT Risk & Security
Proactive Monitoring &
Performance Measurement
Capital & Operating Expense
Budgeting
Network Design, Implementation
and Optimization
IT Risk &
Compliance
IT Governance & Alignment
ERP Implementation Review
SOX
IT Audit
IT Risk Assessment
IT Security
Disaster Recovery
Business Continuity
Infrastructure & Application Solutions
Citrix and Thin Client Computing Storage, Virtualization & Blade Solutions
Mobility & Handheld Solutions Email Archive & Data Lifecycle Solutions
Threat Management & Encryption Solutions
TechnologyConsulting
Client Care
Managed Help Desk Managed Services Client Portal Reporting Annual Rapid Assessment
6. Public Accounting Report
• Top 40 Largest Public Accounting
Firms in the Nation
2005, 2006, 2007, 2008, 2009
• One of the Top SEC Auditors
in the Nation
2005, 2006, 2007, 2008, 2009
• Top 50 Firms in the Nation
2006, 2007, 2008, 2009
Vault Guide
• #1 Best Firm to Work For"
2008, 2009
We are proud of our accomplishments.
• Area’s Largest Accounting Firms
2005, 2006, 2007, 2008, 2009
• Area’s Largest Private Companies
2006, 2007, 2008
• Area’s Fastest Growing Private
Companies
2005, 2006, 2007
• Area’s Largest IT Consulting Firms
2005, 2006, 2007, 2008, 2009
• Best Places to Work
2005, 2006, 2007
• #1 Firm in New England
2006, 2007, 2008, 2009
• Globe 100 Top Places to Work
2008
• Financial Planning Award of
Excellence leading through
innovation, efficiency, initiative, and
growth
2005, 2007, 2008, 2009
• 100+ Million Dollar Club – ranked
top 40 firm with a financial planning
practice by assets
under management (AUM)
2007, 2008
• Fastest Growing Private
Companies in the US
2007, 2008
8. Topics
• What problems are we trying to solve?
• Shortcomings of Waterfall Development
• Agile Development and where CI fits in.
• What is CI?
• Benefits
• CI Tools
8
9. What problems are we trying to solve?
• High failure rate of projects
• Time, Budget, Quality, Cancellation
• Find out about problems earlier in the process
• Reduce Risk and the unknown in project management
• Will the scoped features still be relevant when released?
• Will the client change feature requirements after trying it out?
• Do we really know how much it will cost to build?
• Did we make the design good enough?
• Did we take all the requirements?
• Will our team stay the same size throughout?
• Do we understand the task fully?
9
10. Difference between Agile and Waterfall
• Waterfall
• Plan driven
• Sequential phases
• Requirement
• Design
• Development
• Test
• Deploy
• Agile
• Value driven
• SDLC performed
iteratively
• Constant feedback
loops
10
11. Shortcomings of Waterfall Development
• Features are in development for months at a time
• Integrating features into main product usually happens at the
end of development
• Introduction of new bugs due to integration with other
concurrent feature development
• User access to application comes at the end of the project
11
12. Cost of fixing defects related to
development cycle
12
Source: http://www.agitar.com/solutions/why_unit_testing.html
13. Downfall of a typical project
[Real world Zload development problem]
13
14. Highlights of Agile Development
• Better Communication
• Deal with constant change
• Shorter iterations ( Usually 2- 4 weeks )
• Simpler and stricter requirements management
• Have practices that help mitigate the risk of change
• Unit testing, Continuous Integration, Automated Smoke tests, etc.
• Improve and adapt the way you work with your team
• Give value quickly by priority
• Incremental development
14
15. Continuous Integration
So what is CI?
• A software development practice where members of a team
integrate their work frequently, usually each person integrates
at least daily - leading to multiple integrations per day. Each
integration is verified by an automated build (including test) to
detect integration errors as quickly as possible.
What does it do?
• Continuous integration (CI) brings faster feedback to your
development process, preventing bugs from piling up and
reducing the risk of project delays
15
16. A typical CI build process
• Developer checks in code
• Automated build is triggered
• Every target configuration is compiled
• All unit tests are run
• Code is deployed to demo machines
• Build binaries are archived
• Smoke tests are run
• Build results are emailed to developers and management
[Elaborate add to this slide]
16
17. Benefits
• Constant feed back loop
• Reduced developer downtime between broken builds
• Automated Unit testing
• Automated smoke / integration testing
• Deployment of demo / test environments
• Have a demo-able product with little additional effort
• Build becomes a non-event
• Shorter QA feedback. A working build is always available.
• Fix bugs early when they have the least impact and are
cheaper to fix
17
20. Practices of CI
• Maintain a single source repository
• Automate the build
• Make your build self-testing
• Everyone commits to the mainline every day
• Every commit should build the mainline on an integration
machine
• Keep the build fast
• Everyone can see what’s happening
• Automate Deployment
20
22. • [Optional CI Build Cycle Chart]
• Check in trigger
• Compilation
• Deployments to multiple servers
• Reports sent out
• Feedback loop arrows from QA, Devs, Management
22
23. Time for Q & A
[Could include some success stories from web]
Any Questions?
23
24. 80 City Square
Boston, MA 02129
P 617.912.9000
F 617.912.9001
www.caturano.com
Thank you for attending our webinar on Risk
Mitigation through Continuous Integration
For consulting information or questions:
Jack.Notorangelo@caturano.com
Notes de l'éditeur
Hello and welcome to our webinar on Risk Mitigation Through Continuous Integration
This webinar will give you an overview of what defines Continuous Integration and it’s benefits. In doing so we will cover how the CI process relates to an Agile development methodology, and where it overcomes some shortcomings of the Waterfall development methodology.
We assume that you are familiar with at least some of the Waterfall and Agile development methodologies.
NEXT
My name is Paul Senatillaka
I’m a technology consultant in our application engineering group
My department, Information Management encompasses a wider scope of offerings, which revolve predominantly around the Microsoft stack of technologies.
Those service offerings are:
BI – database, data warehouse, data mart development as well as reporting.
Application Engineering – custom software development and application integrations including web-based and Windows-based applications, as well as migrating legacy application to more contemporary technologies.
SharePoint – full service SharePoint services including installation, upgrades, as well as architecture, design, and development.
ERP Integration- we also provide integration services for ERP applications. Since we are a Dynamics GP VAR with 160 clients that tends to be our specialty but we have engaged with our clients for many other ERP applications as well.
Included is our Information Management director’s contact information if you would like to contact him regarding any of our offerings.
NEXT
At this point I’d like to start a 2 minute commercial for Caturano and Company so you know who we are and what we do.
The firm was founded in 1978 as a CPA firm. We still offer that line of service which is supported by 250+ employees.
Approximately 15 years ago the Consulting service line was added to the firm. The Consulting service line is currently supported by an additional 100 employees.
As the slide indicates, we are the largest full service CPA, consulting, and wealth management firm in NE.
Our client base is mostly small to mid-size companies, both privately held and public, across a wide spectrum of industries such as financial services, private equity, life sciences, energy, transportation, manufacturing, you name it we’ve got it.
NEXT
Here is a bit of information about our Consulting practice <read list>.
As you can see by the list, we have a robust consulting practice with highly qualified consultants.
NEXT
Here is a visual break down of some of the service offerings outside of my application engineering group, in our technology consulting practice.
As you can see we offer a wide array of services. We offer services such as IT Outsourcing, IT Risk and Compliance such as Audits, and Sox, Infrastructure solutions such as virtualizations and storage.
NEXT
Here are what some publications had to say about us
NEXT
So here are some of the topics we will be covering in the webinar.
<Read List>
In order to understand the purpose of CI and it’s benefits, we need to review why it came about and some of the shortcomings of other methodologies (particularly Waterfall) and where Agile and CI improve on.
NEXT
So what are some the problems are we trying solve?
According to a study by the Standish Group’s “CHAOS MANIFESTO”, 24% of custom software development projects failed outright, 44% experienced challenges because they were late, over budget, or completed with less functionality and features than originally required. With only 32% of projects succeeding, custom software development can often seem daunting and risky to take on.
The Standish Group found that 45% of features developed in software are never used and 19% are rarely used. It’s not a far reach to say that since 45% of features go unused, then all that work associated with documenting requirements, architecture, and design associated with those features are wasted effort. If only we had a better feedback loop and shorter development cycles, which positioned ourselves for adapting to this change and risk during development quicker….
NEXT
So let’s contrast Agile against the more traditional Waterfall development methodology. If you attended last month’s “Planning Your First Agile Project” webinar, this slide will look familiar. For the rest of us, let’s review quickly.
Waterfall
Software Development Life Cycle (SDLC) Phases are implemented sequentially, hence the name waterfall.
<Read sequential phases>
Plan driven – Most of the requirements gathering, Architecting, documentation, project and resource planning are done up front.
Puts team in frame of mind to meet deadlines.
Customer tends to get first peak at the application toward the end of the project.
Agile
Value driven. (prioritize based on user value, deliver working code as soon as possible and on a regular and frequent basis)
SDLC is bundled into sprints typically 2-4 weeks long. Sprints encompass requirements, design, development, test & deployment. At the end of each sprint, whatever was scoped should be a working feature.
Built in feedback loops.
Daily standup
Continuous build integration
Sprint deliverables
Sprint retrospectives
I want to address the misconceptions with Agile such as it eliminates documentation and planning, and that it lacks structure.
No, it doesn’t mean that you start coding in Sprint 1.
Requirements are still gathered, and architecture is still developed, and design sessions still take place.
Agile strives to address requirements design and development at the time it is needed instead of far in advance. This came about from the waterfall situation where once the application is developed many features go unused or infrequently used.
Regardless of which development methodology you are using, your projects have been and will be fluid. Requirements change, priorities change, and the business changes while development is taking place.
Agile tries to address this by dealing with features when they are next in line for development.
Whatever methodology you use, it is important to adapt the process to your needs. Don’t change your needs to fit the process. Processes are designed to help us. If everyone on your team is not with the program the process will eventually fail in some capacity.
Agile development embraces change in process with retrospectives at the end of each sprint.
Next, I would like to describe some of the shortcomings of the waterfall development method and talk about where agile and the implementation of continuous integration process would help.
NEXT
-Features are in development for months at a time
[Shortcomings]
- Like we mentioned earlier, User requirements can change during this time. Upfront planning, documenting, architecting is wasted if the feature becomes obsolete.
The longer time span you estimate out, the more room for error. Think of a weather reporter analogy. (New England Weather Joke?)
There is less of a feed back loop for the end user and subsequent phases later down the chain like QA.
[CI and Agile Solutions]
The shorter development cycles design, document, develop, and test a feature as they are needed based of priority.
-Integrating features into main product usually happens at the end of development
[Shortcomings]
-Finding integration bugs months after development is time consuming.
-Developers have to ramp up on code
-Finding where the bug exists is harder because of how much coding happened in that longer development time frame.
[CI and Agile Solutions]
- The CI process supports Agile by continuously integrating. Since integration bugs are found much sooner, the level of effort and cost to fix them is lower.
-Introduction of new bugs due to integration with other concurrent feature development
[Shortcomings]
-Bugs are hard to find because it’s caused by the interaction of two pieces of working code. Dev teams working on feature x and y. They work in each other’s view of the code, but not always when they are all finally integrated.
-Makes the integration process long and painful
-The length integration phase is hard to estimate from start of the project since the number of integration bugs and effort is unknown.
-Your most critical time of a project is just before release. Why do you want to have a high risk, hard to estimate phase near the end?
[CI and Agile Solutions]
CI and Agile addresses this also by shorter development cycles and continuously integrating. You can have multiple dev teams working concurrently. Developers check in working code (compilation wise) at least once a day, which is compiled and available for integration testing
CI and Agile encourages Test Driven development. Running the full suite of unit tests after happen during the CI build process, which usually happens multiple times a day.
In addition to running the unit tests every time the CI build happens, the code is usually deployed to a test environment where manual integration testing and even automated smoke testing can occur.
- Integration becomes a non event
-User access to application comes at the end of the project
[Shortcomings]
-By having the user’s feedback near the end of the project, usually in the “User Acceptance Test” QA phase, problems arise.
-What if the user see’s a feature implemented and changes their mind?
[CI and Agile Solutions]
-At the end of each sprint, what was scoped should functional feature. You can provide the user with this preview to get feedback on planning subsequent development sprints.
-CI aids this by pushing developers to always have a working build during development. The CI process encompasses things like continuous packaging and deployment to a test or integration environment. User feedback becomes an easy step.
-Here is a chart I pulled from a agitar.com
-The blue line is percentage of defects introduced. As you can see, 85% occurs in the development stage. Having a CI process promotes unit testing and smoke testing after each code check-in and since we’re building and deploying to a test environment each code check-in, it is more readily available for manual QA to do testing on.
-The other important statistic to look at here is the purple line which indicates the Cost to repair a defect over the development phases.
-Fixing later in the development life cycle is exponentially more expensive.
The yellow line represents % of defects found over the development phase.
We can relate this higher finding of defects (not introducing like the other stat) to the late integration testing, System testing, QA testing, etc.
[Remove this slide ?]
So to recap, here are some of the highlights of the Agile Development methodology and where CI fits in.
Agile is a great way to reduce risk in a development project since it is strategically designed to deal with constantly changing environment.
10-15 years ago the waterfall methodology was successful in a lot of situations. With the exponentially growing and complicated computer field, technology, user requirements, and what’s relevant in the market change so quickly, I believe Agile is a natural succession to this.
[Highlight slide points]
As you can see here Continuous Integration is brought about from the natural succession of Agile. CI is a (build) process implemented in the Agile development methodology.
NEXT
So what exactly is CI?
<Read Slide>
What does it do?
<Read Slide>
CI is a simple concept. Some people are reluctant to implement because they think it’s a hard complicated process, It’s not.
Later on I will tell you about some CI build tools.
So here are the typical events of a CI build process.
-A lot of these benefits are rolled into a typical CI product.
-
-Most CI products are extensible to offer lot of extra features
- Unit test coverage reports
- Code complexity reports
- Can launch stress test