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