Transcript Slide 1

.Net @ KBC Development on the Edge

Peter Bauwens Technical Lead Service Organisation .Net

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

Speaker’s Bio – Past & Present

 Domains  Electronic Banking     Insurance Backoffice Applications Quick Launch Apps Offshoring Consultancy  Roles @ KBC     Programmer Technical Designer Project/Team Lead Subject Matter Expert  SDLC  ALM

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

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)

THE KBC.NET SOFTWARE FACTORY

Software Factory?

Process & Policy Driven Projects Governance People & Organisation .Net Software Factory Nirvana Development Platform

People and Organisation

Service versus Delivery Center

8    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

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

10       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)

The Teams

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 11

Process & Policy Driven

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

Scrum • Work Organisation framework, i.e. Who, When, What • Not necessarily development related XP • How to do stuff • Development related practices

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

Scrum in a nutshell

Scrum @ KBC

Envisioning Phase Propose & Scope Phase > Sprint planning meeting Daily cycle > Daily scrum > Daily work > Update product backlog Build Phase 4 Week Sprints > Product increment > Sprint retrospective > Sprint review Stabilization Deploy Phase Phase

Practices – Planning Poker

XP Practices - TDD

Red • Write tests first • Stub code makes tests fail • Restructure code if needed Refactor Green • Write code • Tests should succeed

Build ticker on workstations

• Check Build Status & Notify User

XP Practices - CI

KBC

Build server

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

Workstations

• Modify Code • Check In Changes VST CSOB

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.

THE NIRVANA DEVELOPMENT PLATFORM

The Nirvana Development Platform Development Framework Guidance Automation Technological Platform Common Application Architecture

Technological Platform

Microsoft .Net

VB C++ C# J# ...

Common Language Specification ASP .NET Web Forms / Web Services / MVC Windows Forms WPF Silverlight ADO .NET and XML Base Class Library Common Language Runtime Operating System

Technological Platform

Application Lifecycle Management

Common Application Architecture

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.

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.

Nirvana Framework

   Model-view-controller pattern Process workflow  Sessions, Scenarios, Steps and Actions Scenario map : state machine for process workflow Enter Scenario Leave Scenario Query Action Find Query Delete New OK Cancel New List Step Save Cancel OK Cancel Edit Edit

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

Guidance Automation

Solution Templates Nirvana Framework Guidance Project Templates Code Generation Static Code Analysis Guidance Automation Extensions Visual Studio Extensibility Visual Studio 2008 Team Suite Development Environment Team Explorer

Recap

Q&A