32
.Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation .Net

Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Embed Size (px)

Citation preview

Page 1: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

.Net @ KBCDevelopment on the Edge

Peter BauwensTechnical Lead Service Organisation .Net

Page 2: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Speaker’s Bio – Past & Present

Technologies COBOL C/C++ Delphi Java Visual Basic .Net (c#)

Roles @ KBC Programmer Technical Designer Project/Team Lead Subject Matter Expert

SDLC ALM

Domains Electronic Banking Insurance Backoffice Applications Quick Launch Apps Offshoring Consultancy

@KBC since 1990

Page 3: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Introduction The KBC .Net Software Factory The Nirvana Development Platform Q&A

Page 4: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Software Factories @ KBC

Hila• Core• Integrated• Stability over

flexibility• Mainframe (4GL)

& Unix (Java) & ....

Lola• Non-Core• Standalone• Flexibility over

stability• Wintel (.Net)

Nola• End user

computing• Office (MsAccess)

Page 5: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

THE KBC.NET SOFTWARE FACTORY

Page 6: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Software Factory?

.Net Software Factory

People & Organisation

Process & Policy Driven

Projects

Governance

Nirvana Development

Platform

Page 7: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

People and Organisation

.NET Resource Pool

@ VST

.NETDelivery Center

@ CSOB

.NET Delivery Center

@ Warta

.NET Delivery Center

@ K&H

.NET Delivery Center

@ KBC

.NetService Center

@ KBC

LOCAL .NET DELIVERY CENTER=

BUSINESS INTERFACE

Page 8: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

8

Service versus Delivery Center

Service Center @ KBC Patterns & Practices Team Manages the assets (services, people, frameworks, infrastructure, …) needed

to set up and support a Delivery Center There is only one Service Center but is has representatives in each Delivery

Center Delivery Center @ …

A part of the Organisation leveraging Service Center assets to build software There can be one Delivery Center per entity in a country It is typically split up in Project and Maintenance teams

Resource Pool @ VST Delivers man power to Service and Delivery Centers

Page 9: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

9

Responsibilities of the Service Center

Be the Center of Expertise for .NET software stack Managing the Nirvana Framework & Guidance Defining the methodology Setting and Starting up Delivery Centers Hosting & Monitoring the Development Environment (TFS) Supporting Delivery Centers Providing Consultancy Running the Helpdesk Organizing Community working

Page 10: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

10

The Teams

5 People in Service Center @ KBC (Belgium) 40 People in Delivery Center KBC (Belgium)

Projects - 30 Maintenance - 10

10 people in Delivery Center CSOB (Czech Republic) 5 people in Delivery Center K&H (Hungary) 5 people in Warta (Poland) 28 People in our Resource pool in Chennai (India)

Page 11: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

11

The .Net Software Factory in practice

• Enables• The Industrialization of Software Development• The Assembly of Applications using Proven Patterns,

Models, Frameworks and Tools• Offers/Supports

• A Development Process • A Toolset• An Application Architecture• A Framework• Guidance

• Outlines• The Organisational Aspects

Page 12: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

12

• Non-Core Applications Characteristics • No risk off big financial losses (>12.500.000€)• No risk to jeopardize KBC reputation: No negative press

during several days• No direct legal prosecution at any level• No risk on violation of privacy of customer information• No risk of jeopardizing competitive advantage

• No direct participation in operational chains• Typical SLA’s

• Availability : downtime between 4 hours and 7 days (DRP)• Data Integrity: day-1

• Target internal users

Process & Policy Driven

Page 13: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Scrum

• Work Organisation framework, i.e. Who, When, What

• Not necessarily development related

XP

• How to do stuff• Development

related practices

Page 14: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Scrum

• Sprint• Sprint planning• End of sprint review• Daily scrum• Product owner• Scrum master• Product backlog• Sprint backlog

XP

• Simple design• Testing• Test and Code• Refactor• Pair programming• Collective ownership• Continuous

Integration• Coding Standards

Page 15: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Scrum in a nutshell

Page 16: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Scrum @ KBC

> Sprintplanning

meeting

> Product increment

> Sprint review

> Sprint retrospective

> Update product backlog

> Daily scrum> Daily work

Daily cycle

Build Phase4 Week Sprints

Sprint Cycle

Deploy Phase

Stabilization Phase

Propose & Scope Phase

Envisioning Phase

Page 17: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Practices – Planning Poker

Page 18: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

XP Practices - TDD

Red

GreenRefactor

• Write tests first• Stub code makes tests fail

• Write code• Tests should succeed

• Restructure code if needed

Page 19: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

XP Practices - CI

191919

KBC

CSOBVST

Build server•Get CI Projects & Check for changes• Rebuild & Run Tests if necessary

Build server•Get CI Projects & Check for changes• Rebuild & Run Tests if necessary

Workstations •Modify Code• Check In Changes

Workstations •Modify Code• Check In Changes

Build ticker on workstations •Check Build Status & Notify User

Build ticker on workstations •Check Build Status & Notify User

Page 20: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Practices - Refactoring

Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.

Each transformation (called a 'refactoring') does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it's less likely to go wrong.

The system is kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring.

Page 21: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

THE NIRVANA DEVELOPMENT PLATFORM

Page 22: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

The Nirvana Development Platform

DevelopmentFramework

GuidanceAutomation

Technological Platform

Common Application Architecture

Upp

er L

ayer

Fou

ndat

ions

Page 23: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

2323

Technological Platform Microsoft .Net

Operating System

Common Language Runtime

Base Class Library

ADO .NET and XML

ASP .NET Web Forms / Web Services / MVC Windows Forms WPF Silverlight

Common Language Specification

VB C++ C# J# ...

Page 24: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

2424

Technological Platform Application Lifecycle Management

Page 25: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

2525

The architecture encourages applications to use a layered N-tier design, containing the three classic presentation,

business and data layers. Most layers are in turn subdivided in sub layers, such as the model-view-controller sub layers in the presentation tier. Next to that the CAA has a provider based model which provides pluggable services

to the horizontal layers.

Common Application Architecture

Page 26: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

2626

The Nirvana Framework

The Nirvana Framework is a set of class libraries, tools, templates and code generators, written in C#, and destined to Increase the consistency of design and look-and-feel across multiple

KBC .NET applications, i.e. Support & enforce the baseline architecture Centralize and reuse common non-business functionality required by

most (KBC) .NET applications Reduce the number of lines of code to write, providing developers

with more time to focus on actual business functionality Speed up the time-to-first solution and subsequent development by

code generation Integrate with the KBC intranet web portal in order to make

applications accessible within the KBC group at international sites.

Page 27: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Nirvana Framework

Step

Action

Query

List

New

Edit

Find

Query

New

Enter Scenario

OK

Cancel

Edit

OKCancelSave

Cancel

LeaveScenario

Delete

Model-view-controller pattern Process workflow

Sessions, Scenarios, Steps and Actions Scenario map : state machine for process workflow

Page 28: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Nirvana Framework

Use case (scenario) navigation controlled by a state-machine Event driven error handling & presentation State management Transactional business operations Authentication integrated with KBC intranet portal Authorization integrated with KBC “ID2” user profile database UI and data globalization Code management Tracing & logging Static online help Exporting to Word / Excel

Page 29: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Guidance Automation

Visual Studio 2008 Team Suite

Development Environment Team Explorer

Guidance Automation Extensions

Visual Studio Extensibility

Nirvana Framework Guidance

Solution Templates Project Templates Code Generation Static Code Analysis

Page 30: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Recap

Page 31: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net

Q&A

Page 32: Net @ KBC Development on the Edge Peter Bauwens Technical Lead Service Organisation.Net