320 likes | 332 Views
Explore KBC's .Net Software Factory, Delivery Centers, Scrum practices, and Nirvana Development Platform to industrialize software development. Understand the role of Service Centers in managing assets and setting up Delivery Centers effectively.
E N D
.Net @ KBCDevelopment on the Edge Peter Bauwens Technical Lead Service Organisation.Net
Speaker’s Bio – Past & Present • Domains • Electronic Banking • Insurance • Backoffice Applications • Quick Launch Apps • Offshoring Consultancy • Technologies • COBOL • C/C++ • Delphi • Java • Visual Basic • .Net (c#) • Roles @ KBC • Programmer • Technical Designer • Project/Team Lead • Subject Matter Expert • SDLC • ALM @KBC since 1990
Introduction • The KBC .Net Software Factory • The Nirvana Development Platform • Q&A
People and Organisation .Net Service Center @ KBC .NET Delivery Center@ K&H .NET Delivery Center@ KBC LOCAL .NET Delivery Center = Business Interface .NET Delivery Center@ Warta .NET Delivery Center @ CSOB .NET Resource Pool@ VST
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 Organisationleveraging 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
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
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)
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 OrganisationalAspects
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 @ KBC > Sprint planning meeting Envisioning Phase Propose & Scope Phase Stabilization Phase Deploy Phase Beachhead Sprint + Sprint 1, 2, 3, … n-1 Sprint Cycle Daily cycle > Daily scrum > Daily work > Update product backlog Build Phase 4 Week Sprints > Product increment > Sprint retrospective > Sprint review
XP Practices - TDD • Write tests first • Stub code makes tests fail • Restructure code if needed • Write code • Tests should succeed
XP Practices - CI Build ticker on workstations • Check Build Status & Notify User Build server • Get CI Projects & Check for changes • Rebuild & Run Tests if necessary Workstations • Modify Code • Check In Changes 19 19 19
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 Upper Layer Foundations
Technological Platform Microsoft .Net 23 23
Technological Platform Application Lifecycle Management 24 24
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. 25 25
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. The Nirvana Framework 26 26
Nirvana Framework • 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