net @ kbc development on the edge peter bauwens technical lead service organisation.net
TRANSCRIPT
.Net @ KBCDevelopment on the Edge
Peter BauwensTechnical 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
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?
.Net Software Factory
People & Organisation
Process & Policy Driven
Projects
Governance
Nirvana Development
Platform
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
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
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
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)
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
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
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
> 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
Practices – Planning Poker
XP Practices - TDD
Red
GreenRefactor
• Write tests first• Stub code makes tests fail
• Write code• Tests should succeed
• Restructure code if needed
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
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
DevelopmentFramework
GuidanceAutomation
Technological Platform
Common Application Architecture
Upp
er L
ayer
Fou
ndat
ions
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# ...
2424
Technological Platform Application Lifecycle Management
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
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.
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
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
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
Recap
Q&A