Corporate Technology What an Architect Needs to Know Experiences from the Siemens Curriculum for Software Engineers

Frank Buschmann Siemens AG Corporate Technology and Platforms

Copyright © Siemens AG 2010. All rights reserved.

Content

ƒ Motivation

ƒ Software architect target profile

ƒ Senior software architect curriculum

ƒ Summary

Page 2 October 2010 Buschmann © Siemens AG, Corporate Technology

1 Background and motivation

The economic success of many Siemens products is highly dependent on key software knowledge and practices. The qualification of software engineers has high priority for Siemens

Levels & roles

Head of Class A Project: R&D ƒ High complexity (platform / product line) ƒ High degree of innovation SW PM ƒ Big business impact, high risk ƒ Cross-functional, distributed structure, big team SW PLM Certified Senior Software Architect

(SSWA) r

ts e

n g

e r a Certified

e n Class B Project: m e a e Software Architect

n

r i M ƒ Moderate innovation in technology, medium risk

i g t

u Architect (SWA) Software

n s ƒ Medium business impact, medium teams

q Architect Software e

e E T R Software Class C Project: Developer ƒ Enhancing known technology and requirements, low risk ƒ Single site development, small teams

Page 3 October 2010 Buschmann © Siemens AG, Corporate Technology

Content

ƒ Motivation

ƒ Software architect target profile

ƒ Senior software architect curriculum

ƒ Summary

Page 4 October 2010 Buschmann © Siemens AG, Corporate Technology

2 Software architect mission

Software Architects drive and guide the specification and realization of a software system through its entire lifetime

ƒ They provide the architecture vision of a ERP product Warehouse Management ƒ Their decisions are driven by clear focus on H C Warehouse DB Representation Access the intended business for the software and its I Material Flow associated requirements Control Fault Mgr ƒ They are guided by vision and experience User Mgr Base Automation ƒ They lead, guide, coach, and motivate the architects and developers in their teams

ƒ They involve the relevant management before taking important decisions

Page 5 October 2010 Buschmann © Siemens AG, Corporate Technology

Software architect competence spider

Architects must be proficient in all areas of software development, but most of all they must be thoughtful leaders! Business case understanding Business and Testing and Quality assurance Global development strategy quality Expert Test processes Legal issues and methods Advanced Software System Product Requirements processes development Basic management engineering

SW development processes

Project Product line engineering Leadership management Social skills Architecture and development Competence level scale design and realization Basic – can understand Configuration SW design Software Architect (SWA) Advanced – can apply management methods Expert – can guide Senior Software Architect (SSWA) Page 6 October 2010 Buschmann © Siemens AG, Corporate Technology

3 Involvement in the business case

A properly defined business case and project scope inform about ƒ The key purpose and main responsibilities of a software system ƒ Its business-relevant requirements and USP’s ƒ The context of the system: boundaries, users and their interests, and the domain model ƒ The system’s business model ƒ The envisioned market for the system and the expected market share ƒ The expected revenue (over time), the planned investment (over time) ƒ The system’s technology, development and release roadmaps ƒ The system’s Intellectual Property Rights (IPR) strategy

The architect must understand the system’s business case, and is involved in defining its scope, domain model, roadmaps, and IPR strategy

Page 7 October 2010 Buschmann © Siemens AG, Corporate Technology

Involvement in requirements engineering

An architect is dependent on clearly defined requirements to take explicit, thoughtful, focused, and balanced design decisions. ƒ Requirements drive the selection of appropriate design concepts and realization technologies for their solution ƒ They guide design decisions in case of conflicts ƒ They ensure a design addresses all requirements, and only the requirements ƒ They enable testing the specified design and its realization Master node Hot standby • The planned uptime of the system is process image 7x24, the planned downtime is 10 consecutive days every 2 years • The process image of the plant must be Stand-by node available 99,999% of the planned uptime • Recovery [reference to the recovery process] in case of an unplanned outage

should take at most 2 seconds Legend request Qualitative requirements lead to appropriate and reply sustainable design decisions synchronize Page 8 October 2010 Buschmann © Siemens AG, Corporate Technology

4 Involvement in requirements engineering

To guide the design and implementation of a software system, requirements should expose the following quality attributes:

ƒ Feasible – supports the business case g n i r ƒ Correct – precise qualitative description e e n i ƒ Unambiguous – precise qualitative description g n E

s ƒ Testable – precise quantitative description t n e

ƒ Consistent – with other requirements m e r i ƒ Traceable – can be identified clearly u q e ƒ Prioritized – regarding business value, technical R risk, realization complexity, ...

The architect must understand the system’s requirements, is involved in challenging their properties, and contributes all technical aspects to their specification and prioritization. It is the architect’s responsibility to initiate dialog with the relevant management and project roles if requirements are lacking the above qualities.

Page 9 October 2010 Buschmann © Siemens AG, Corporate Technology

Involvement in testing

Test can help tell an architect how sustainable an architecture is and how well the architecture meets the system requirements

ƒ A defined test strategy supports testing the success critical aspects of the system

ƒ Design for testability requires clear modularization, Scheduling Client FIFO strict design by contract, and stable intermediate Strategy Service states along the control flow of key use cases Future Scheduler Interface Activation List A. Method* ƒ Regular architecture reviews and Memento code quality management help to Request Macro Store Fetch maintain architecture sustainability Command Item Item Storage Leafs LoadIn Warehouse and to avoid architecture drift Capacity Only Layers Core Storage Abstract Abstract Abstract Manager Visitor Iterator Strategy * * Abstract Successor Storage * The architect and test manager must SOC Atomic Composite Factory Storage Storage Hazardous* Bin Warehouse Aisle agree on a test strategy, the architect SOC Hazardous Real must prepare the system’s architecture Value Bin for testability, participate in reviews, and interpret and react on test results

Page 10 October 2010 Buschmann © Siemens AG, Corporate Technology

5 Involvement in software processes

Define and realize a software architecture using an iterative, risk-driven, requirements-driven, and test-driven development process, in which

ƒ An iterative, time-boxed approach provides continuous feedback

ƒ Risk- and requirements orientation ensures that the most important aspects of the system's realization are addressed first: key functionality, quality, technological risks

ƒ A test-driven approach provides concrete feedback on the quality of the architecture and its realization

The architect is involved in defining the software development process to ensure that it defines a feedback loop for achieving product quality and less risk

Page 11 October 2010 Buschmann © Siemens AG, Corporate Technology

Responsibility in design and realization

Define a sustainable baseline architecture – an architectural "whole":

ƒ The fundamental structure and form of the software system: its core parts, their main responsibilities, relationships, interfaces, and collaborations Concurrency Concept for Performance and Scalability ƒ The concepts for addressing ERP success-critical, system-wide Scheduling Client FIFO Warehouse Strategy quality attributes Service management Future Scheduler H Interface Warehouse DB Activation M Access List representation A. Method* ƒ The guiding principles I Memento Material flow Request and design directives control Macro Store Fetch Command Item Item Fault Storage Leafs LoadInWarehouse for the architecture mgmt Capacity Only Layers Core Storage Abstract Abstract Abstract User Manager Visitor Iterator Strategy * * Abstract mgr Active ObjectSuccessor Storage* Base automation SOC Atomic Composite Key for success is that all Factory Storage Storage Hazardous* Bin Warehouse Aisle SOC architecture work is driven Hazardous Real Value Bin by requirements and that the architect guides realization: Business Logic Infrastructure Subsystems Subsystem architect also implements Page 12 October 2010 Buschmann © Siemens AG, Corporate Technology

6 Responsibility in design and realization

An architect needs a clear set of values, activities, practices, and methods to System and domain scoping ƒ Specify and implement a software architecture constructively and in a timely fashion Baseline architecture specification ƒ Check and ensure the appropriate architectural quality Iterative, risk-driven, Enforcing the requirements-driven, and ƒ Respond to changes of all architecture vision kinds, such as changing test-driven development requirements and priorities Strategic and Design for usability ƒ Deal with problems that arise tactical design during the definition and realization of the software architecture Ensure operational and Care for developmental quality design and code quality

Refactoring, reengineering and rewriting

Page 13 October 2010 Buschmann © Siemens AG, Corporate Technology

Responsibility in design and realization

An architect needs a sound expertise in methodology and technology ƒ What are the methods and technologies all about and what is their range of applicability? ƒ What are their benefits and their costs? ƒ What methods and technologies are (competitive) alternatives and what methods and technologies are natural complements? ƒ How are the methods and technologies applied in detail?

Page 14 October 2010 Buschmann © Siemens AG, Corporate Technology

7 General responsibility: leadership, collaboration, and interaction

Leadership is crucial: software architects interact with many other stakeholders in the software development lifecycle … Product (line / lifecycle) manager Head of R&D Requirements ƒ Motivation engineer ƒ Team building Software ƒ Decision enforcement project manager ƒ Peer sparring ƒ Reviews ƒ Coaching Software Test manager developer ƒ Stakeholder-specific presentations Software architect

Page 15 October 2010 Buschmann © Siemens AG, Corporate Technology

Content

ƒ Motivation

ƒ Software architect target profile

ƒ Senior software architect curriculum

ƒ Summary

Page 16 October 2010 Buschmann © Siemens AG, Corporate Technology

8 Elements of the qualification program

A qualification program for software engineers requires more than a set of seminars and trainings

Qualification r

s Setting standards e t

n g r a

e e n

m

(courses and e a

e n

r i M

i g t

u n s Architect

q Software for software development e E

e T on-the-job training) R

Fostering best practice sharing Software and experience exchange architects' network

Assuring practical experience Certification for critical projects

Page 17 October 2010 Buschmann © Siemens AG, Corporate Technology

Guiding principles (1)

The qualification program for senior software architects should address twelve guiding principles for development of software-intensive systems

1. Architecture is the key throughout the whole lifecycle and across releases 2. Build on existing basis where feasible (from technical and business perspective) and be able to recognize when such reuse is not suitable 3. Avoid unnecessary technological platform development by using technical standards and products available on the market 4. In product and system business the product (lifecycle) manager / in project and solution business the project manager is and must act as owner of the main requirement. 5. Pay particular attention to system quality attributes, often overlooked but are extremely important 6. Be prepared and able to handle changing requirements, but be aware about the risk of late changes Page 18 October 2010 Buschmann © Siemens AG, Corporate Technology

9 Guiding principles (2)

The qualification program for senior software architects should address twelve guiding principles for development of software-intensive systems

7. Synchronize well across the technical disciplines: software, mechanics, electronics, mechatronics, 8. Work together truly as a team, avoid “silo” thinking, be willing and able to speak and understand the other roles and disciplines 9. Work iteratively (no 100% definition of all up-front), strive to identify and resolve technical and business risks early 10. Structure the system to avoid unnecessary complexity, and to actively enable and support multi-site development 11. Strive for transparency and base decisions on clear business / technical reasons, not political ones 12. Do not underestimate the importance of soft skills, these can be particularly important for convincing and motivating Page 19 October 2010 Buschmann © Siemens AG, Corporate Technology

Curriculum topics

The curriculum content partitions into five topic areas, each including a range of specific topics relevant for software architects

30%

Software Require- Testing Architecture ments and and 15% Engineering Quality 15% Development

Business Processes and Strategy 10%

Social Skills and Leadership 30%

Page 20 October 2010 Buschmann © Siemens AG, Corporate Technology

10 Selected content details: architecture

ƒ Domain modeling and system scoping ƒ Agile development practices ƒ Strategic and tactical design Require- Software Testing ƒ Architecturally significant requirements ments Architecture and ƒ Walking skeletons Engineering and Quality ƒ Variability management Development ƒ Design for operational and developmental quality Business Processes and Strategy ƒ Patterns, practices, methods, technologies ƒ Design for usability ƒ End user / customer acceptance Social Skills and Leadership ƒ Developer habitability ƒ Enforcing the architecture vision (avoid architecture drift) ƒ Communicating the architecture to stakeholders ƒ Mentoring, coaching, reviews ƒ Refactoring, Reengineering, Rewriting

Page 21 October 2010 Buschmann © Siemens AG, Corporate Technology

Selected content details: requirements, business, social skills

ƒ Requirements management: ƒ Elicitation ƒ Documentation ƒ Evolution Require- Software Testing ƒ Non-functional requirements ments Architecture and Engineering and Quality ƒ Variability management Development ƒ C/V Analysis

Business Processes and Strategy ƒ Business case development ƒ Product definition

Social Skills and Leadership ƒ Portfolio definition ƒ Intercultural aspects ƒ Conflict management; coaching ƒ Situation-dependent leadership ƒ Decision enforcement (in critical situations) ƒ Team Building

Page 22 October 2010 Buschmann © Siemens AG, Corporate Technology

11 Selected content details: testing and quality

ƒ Understand the mission and the value of testing and promote it ƒ Risk-based testing strategy Require- Software Testing ments Architecture and ƒ Test-driven development Engineering and Quality Development ƒ Design for testability ƒ Test design methods Business Processes and Strategy ƒ Integration testing ƒ Test architectures, test automation Social Skills and Leadership ƒ Regression testing ƒ Architectural quality – internal software quality and code quality management

Page 23 October 2010 Buschmann © Siemens AG, Corporate Technology

Selection of participants

Curriculum is part of the world-wide employee development program

SSWA candidate selection process

Nomi- Evaluation Participant Call for nation of appli- Interview candidates by Division Candidate cations CEO 4 candidates Target group: per division 15 advanced and experienced software architects with similar level of expertise from different divisions

Page 24 October 2010 Buschmann © Siemens AG, Corporate Technology

12 Qualification and certification process

Over a full year, participants meet in four workshops, and practice what they learned in three project phases with certification gates

Workshop1 Workshop2 Workshop3 of Award Establish Realize Sustain ate certific architecture vision architecture architecture (Protect what (Where we want to go) (Where we can go) we have achieved) Workshop4 Wrap-up 5 days 5 days 3 days Where we are, where we were, and where we want to go

s s ate ates ate 1 day n g n g n g atio atio atio tific tific tific Cer Cer Cer

Project phase 1 Project phase 2 Project phase 3

Preparation phase Warm-up (Where we are)

Page 25 October 2010 Buschmann © Siemens AG, Corporate Technology

Focus on immediate value

Training on the job: participants create immediate value for the projects they are working on during the qualification program

EAI Alarm Network Diagnostic (SAP) OPC SNMP Plant UI Client View Client Northbound Gateway(s) Communication Framework Common Services

Application Services License Security Information Repository Archiving Services Operational and Maintenance System ConfigurationCommon Trend Alarm Services Availability &Activation Name Logging Logging Mgmt Managed Monitor& Tracing Language of Audit Trail Alarm Testing ation Object Control Require- Software plic in Color Time Ap nt Miscellaneous Report Workflow Scripting nte Services ments Architecture and g co ks rainin c tas Engineering and Quality t pecifi ect s Southbound Gateway(s ) roj BACnet OPC SNMP Development p Key Application Communication Service Clients Framework Entities(Field Service Category Devices, Network Communication Elements) Business Processes and Strategy HLV - 060608 - UB . vsd : NM & CS

Kno wle dge Social Skills and Leadership on sha of c top ring om ics mon inte rest

Page 26 October 2010 Buschmann © Siemens AG, Corporate Technology

13 Content

ƒ Motivation

ƒ Software architect target profile

ƒ Senior software architect curriculum

ƒ Summary

Page 27 October 2010 Buschmann © Siemens AG, Corporate Technology

Experiences and results

Organizations observe a clear improvement of their employees' skills due to participation in the senior software architect qualification program

100% of the organizations agree that ƒ the participation was a good investment ƒ the program enhanced the participants‘ architecture-relevant knowledge

More than 90% agree that ƒ the contact network of the participant improved ƒ the program has brought value-add in daily business

Certified senior software architects ƒ Advise management in software strategy ƒ Lead architecture teams of high impact projects ƒ Support critical projects ƒ Help improve the maturity of their organizations Page 28 October 2010 Buschmann © Siemens AG, Corporate Technology

14 Where we are and want to go

Qualification and certification program for Senior Software Architects is well established and very successful ƒ Already in the 4th run ƒ The holistic architecture-driven approach works well for us ƒ Being able to apply the techniques immediately in current projects is an important success factor, in particular so that the key architects can participate in the qualification program

Qualification and certification program for Software Architects ƒ Has started in 3 (almost) parallel runs in Europe / USA ƒ First feedback indicates high acceptance amongst participants

Qualification of Requirements Engineering for Product (Lifecycle) Managers and Project Managers ƒ Roll out in planning

Page 29 October 2010 Buschmann © Siemens AG, Corporate Technology

15