Title: Software Architecture
1Software Architecture
- More Revenue with Software Architecture?
- Hartmut Kaiser
- Hartmut.Kaiser_at_microsoft.com
- Developer Platform Strategy
- Microsoft Germany
2Agenda
- Market
- A (working) definition of Software Architecture
- Why is it important ? Potential benefits of doing
it - Some supportive tools/aids from Microsoft
- Conclusion
3Lets start with the market
- Trend and Microsoft Strategy
- How many architects do ISVs employ in germany?
4Change in the markets
Economic Strong competition Infrastructure prices
commodization More/different devices Web 2.0
Customer Requirements Short ramp-up Time-to-Market
User Experience New business models
Hosting Model Hybrid Modells(on-premise, hosted,
online) Scalability Seamless Integration of
Software and Devices and Services through the Net
5Potential of hosted Services
worldwide
32 increaseof SaaS-Revenues anticipated,
2007-2011 (IDC 207491, July 2007)
32 more
25 of all new business applications as Services
in 2011 (Gartner, October 2006)
25 Services
Size of the SaaS-market by 2011
(Revenues) (Yankee Group, January 2008)
20 billions
6Software Services
Web 2.0
SOA
SaaS
Business Models
ServicesMashups
Integration of Internet-Services
Operations
User Experience
7Seamless Continuity
Hybrid Model
Traditional IT
Pure-Play SaaS
On Premise
Hosted Services
Infrastructure TCO Time to market - External
Dependencies - Less flexible
- Control
- Customization
- - Costs
- - Know-How
8This are Architectural Changes
- What are our business priorities with regard to
external data,operations,development? - Is it possible/feasible to find/introduce the
necessary Interfaces when moving parts of the IT? - How to refactor existing solutions?
- How about IP, privacy, performance?
- .
9Some common verbatims when talking to smaller
companies
- We dont have the resources to do whats not
absolutely necessary when implementing our
customers requirements - We need more developers, not frameworks
- Time to market is critical we take the direct
path - If we would launch a new greenfield project,
architecture/design would be the starting point - Frameworks, Patterns, where should I start ?
- Architecture is for big companies with complex IT
and for Software projects with very big teams
10Architects in the german ISV market
- A study was conducted in Q1 2008 to understand
the size of the architects audience in the
segments - Research Consultants called into companies and
asked the head of SW Development or Head of IT
or CIO - Do you employ?
- SW Architects, characterized as
experienced/senior SW Devs, making technical
decision with consquences to more than one
module, e.g. platform choice, technology choice, - Being responsible for SW Design and overall
SoftwareDevelopment/Quality, are supported by SW
Devs - SW Devs on their way to SW Architects (want to or
in education)
11SW Architects at german ISVs
Do you employ (at least one or more) SW
Architects ? (by definition not by jobtitle, as a
role)
Source Techconsult quantitative study 2008Q1
12Architecture is maturing at german ISVs
How many SW Arch do you employ/do you need
additionally?
Source Techconsult quantitative study 2008Q1
13German ISVs SW Architects
Official Jobtitle of the Software Architect?
Source Techconsult quantitative study 2008Q1
14And.
- Different data
- UserGroup, Enterprise Accounts,
- All show the same trend
- more architecture!
15Definitionwhat is Software Architecture ?
- First of all, there is no single definition
- The discipline is forming
- IASA
- Software Engineering Instititute SEI
- Resource slide provides links to many, many
definitions
16(pragmatic) DefinitionWhat is Software
Architecture ?
- Understanding/interfacing the business
requirements (br) - Translating between business IT
- Designing a Software-Solution that meets br
- -gt Requirements Engineering, Software Design
- Developing the structure of the solution,
including - Choosing patterns, a platform, technologies
protocols, placing interfaces, communicating back
to business - Achieving the non-functional qualities
- Performance, security, scalability,
reliability...-gt e.g. test? - Applying methodology heuristics
17How to find the best Arch ?
- Frameworks defined in strategy groups ?
18How to find the best Arch ?
- Finding the right architecture is a process of
asking the right questions -
19How to find the best Arch ?
- Programming can only start when architecture is
defined as specific structure, so someone has to
decide in favor of something
- Every decision (to choose a specific
pattern/substructure) eliminates degrees of
freedom for later use
- Use the available degrees of freedom responsibly
decide late, only when fulfilling important
requirements needs that decision
20If that sounded too easy
- Make the business side detail their requirements
- Balance what cant be achieved together
- Mediate compromises between different
stakeholders - Apply broad technical knowledge to identify the
right alternatives, at the same time apply deep
technical knowledge to - control feasibility
- Be able to convince techies
- Know the patterns and how they work
- Evaluate trends
- Document and maintain architectural views
21What did we learn?
- Architecture is not defined very well
- It looks like a lot of work
- Still many are doing it
- There is a trend to more architecture
- What are the benefits?
22SS World
23SS Architecture Scope
Monetization and Composition
ApplicationArchitecture
Consumption
Delivery
24ISVs Build SS solutions
- Scenarios
- How to build SS
- Re-architect for SS
25Mass optimiziation
- As an ISV, your core competency is to write high
quality software the specific part of it - You cant and wont outsource/automate this
- But is e.g. the generic process of organizing bug
fixing your core competency ? - How about (federated) identity management with
SSO ? - Both are examples where you might benefit from
leveraging economies of scale by using available
protocols, libraries, technologies, software,
services
26SS Architecture Build
- Application Architecture
- Designing a back end as a service
- Multitenancy vs. Isolation
- Customization Metadata - Templatized
- Performance
- Self Service / Try before you buy
- Designing Rich front end
- Disconnected experience
- Smart Client tenant customization
- Office as UI
LitwareHR
27LitwareHR Overview
28LitwareHR
- An SS sample application that demonstrates
common design patterns - http//www.codeplex.com/litwarehr
- Technologies support Dev Platform
- Today .NET Fx 3.5 (WPF,WCF, WF), AD, VSTO
- Future Azure Services
29Patterns Practices
30SS World
31S S Platform
PC
Mobile
Embedded
Browser
Office
Client
Gadgets
IM
Speech
SMS/IM
Browser
Office
Client
Devices
Consoles
Programmatic Access
Presentation
RSS
REST
Web Services
VoiceXML
Static
Dynamic
RIA
Streaming
SMTP
SMS
SIP
Application
Workflow (Processes)
Entities (Schema)
Business Logic (Rules)
Collaboration
Monetization
Composition
Search
Social
Content Mgt
Subscribe
Advert
License
Per Trans
Service Orchestration
Line of Business
Identity Access
Messaging
Storage
Workflow
Service Bus
Peer to Peer
Unstructured
Event Based
High Throughput
Relational
File
Authentication
Authorization
Compute
Physical, Dedicated
Physical, Shared
Physical, HPC
Virtual, Single
Virtual, Scalable
On Premise
Hoster
Cloud
Vendor
32SOA Single Service
33Are youconvinced?-)
Geekandpoke.com used under creative commons
license
34Personal aspects involvedwhen driving
architecture
- Architectural questioning is driving the solution
- Taking on responsibility
- Very diverse no routine, but complete profile
35Show me the money
36Show me the money
- Architecture has the potential to
- - let you concentrate on your core competencies
- - while using economies of scale where possible
- - enable dynamic evolution of your product
- - help to communicate efficiently (if documented)
- - Minimize risks through market change
37Resources (2) Definition of Architect
Architecture http//www.microsoft.com/germany/arc
hitecture/architektur/default.mspx
http//www.sei.cmu.edu/architecture/definitions.ht
ml
http//blog.softwarearchitecture.com/2
007/06/most-important-compentencies-of.html (4)
SoftwareServices http//www.microsoft.de/archite
cture/software-plus-services (german) with Links
to Litware HR http//www.codeplex.com/litwarehr
Gianpaolo Carraro http//blogs.msdn.com/gianpaol
o/default.aspx Holger Sirtl http//blogs.msdn.co
m/hsirtl/default.aspx (german) MSDN Architecture
Center Solution Architecture http//msdn.microsof
t.com/de-de/architecture/aa699418(en-us).aspx Pat
ternsPractices _at_ MSDN http//msdn.microsoft.com/
de-de/practices/default(en-us).aspx Architecture
Refactoring http//www.microsoft.com/germany/arc
hitecture/oop2008/default.mspx (german)
38Thank you! Hartmut.Kaiser_at_microsoft.com