Upload
api-6415763
View
220
Download
0
Embed Size (px)
Citation preview
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
1/26
Does Architecture Really
Help?And apologies...Eric Nelson
Application Architect
[email protected]://blogs.msdn.com/ericnel -
Slides!
mailto:[email protected]://blogs.msdn.com/ericnelhttp://blogs.msdn.com/ericnelmailto:[email protected]8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
2/26
Why are we here?
An opportunity to consider whether timespent on Architecting solutions is time wellspent
I am confused about the importance of
formally thinking about softwarearchitecture
Outputs: Summary of combined experiences around
Architecture - the good and bad Consensus (perhaps!) around questions such
as: "Is choice a good thing? "Is there a perfect architecture "Does architecture matter?
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
3/26
Topics
My background/experience
Helps you understand why I am wrong
ISVs explained
Architecture my definition
Helps us do this in 75mins
My 9 Observations on Architecture Simple Exercises
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
4/26
About me
1986 Software Development on Unix,VAX, Assembly, 3GL, 4GL, RDBMS
1995 Software Development on Unix
and Windows 3GL, 4GL, RDBMS 1996 Joined Microsoft for 2 years
Advising Independent Software Vendors
on development with latest (beta)technologies from Microsoft
2008 Still at Microsoft
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
5/26
Independent SoftwareVendors
Write once, sell many In reality a large spectrum
One version on 10,000 desktops 100 versions in 100 companies
1 user, 100 user, 1000 user, 10000 user ISVs care about
Most things every other company cares about Cares more than most about
Cross Platform Targeting Multiple Databases Versioning, Deployment, Patching Making the wrong decision may last 10, 15 years and
be installed in many sites Customisation
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
6/26
Some examples
Run Everywhere:
ISV building thin client solution thatmust work on every browser, handle
1000s of concurrent users and bedeployed on SQL Server, Oracle, Sybaseand JBoss or Websphere
SOA heavy: ISV building asolution that must work within anSOA/ESB architecture includinghaving no UI
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
7/26
Architects?
Microsoft Defines Infrastructure Architects
Responsible for platform finds the pragmatic solutions to the requirements of the
organization as presented by the Enterprise architect
Enterprise Architects Responsible for a system of systems Enterprise Architects create the master blueprint that guides
their organizations business and IT systems
Solution Architects Responsible for a system Solutions Architects decide which technologies to use.
They work very closely with developers to ensureproper implementation
Solution Architects Generate Software Architecture focus of this session
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
8/26
Architecture vs Design
All Architecture is Design
Not all Design is Architecture
Defined as: The software architecture of a program or computing system is the structure orstructures of the system, which comprise software elements, the externallyvisible properties of those elements, and the relationships between them Bass,Clements, Kazzman (SEI)
Or
The design decisions that are reallyexpensive to change Eric
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
9/26
Exercise: Up frontarchitecture?
Question: Would you work on architecture for the
following before you started to build it?
Tasks: Make a passenger plane? Make a school? Make a 1 bedroom house? Make a garage? Make a treehouse? Make a stool? Make a new shelf in your bedroom?
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
10/26
Exercise: Up frontarchitecture?
Question: Would you work on architecture for the
following before you started to code it?
Tasks: Make a control system for a power station?
Make an IDE? (think Eclipse or VisualStudio)
Make a web browser? (think Firefox of IE) Make a simple RSS reader?
Make a hangman game?
Make a simple calculator?
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
11/26
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
12/26
Observations on Architecture 1We dont have one
Some ISVs think lots about Architecture
Some cut code
No apparent correlation to success
Q: Does their need to be a formalarchitecture?
Ob ti A hit t 2
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
13/26
Observations on Architecture 2More than one way to skin a
cat Many ISVs solving the same problem Each using a very different approach
Q: Is there a perfectarchitecture?
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
14/26
Exercise
Question How do you architect a system that will
work against Microsoft SQL Server OROracle OR DB2 just as well
Possible Answers Lowest common denominator use of SQL
One hand coded implementation per RDBMS
Code generation per RDBMS at develop time
Code generation per RDBMS at deploy time
Code generation per RDBMS at run time
Combinations of the above
Own proprietary database
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
15/26
Observations on Architecture 3The grass is always greener
ISV with Architecture A is moving to Architecture B
ISV with Architecture B is moving to Architecture A
EXAMPLE:
Thick and Thin Clients
Q: Do teams blame architecture when they shouldbe looking elsewhere?
Ob ti A hit t 4
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
16/26
Observations on Architecture 4You can get it completely
wrong You can have very badArchitectures
Symptoms include:
Changes are very expensive
Nobody admits to it being theirarchitecture
Q: What other symptoms do yousee?
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
17/26
Exercise
Question:
What really bad architectures have youseen?
Examples: Road Warrior application which always required
connectivity to the server
Financial application that loaded all the data into memory
MANY times in one transaction Retail application using large amounts of XML rather than
relational tables
Ob ti A hit t 5
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
18/26
Observations on Architecture 5Explicit vs Implicit
Or planned and evolutionary design
Martin Fowler
Software Development Approaches impact
on the importance of Architecture E.g. Waterfall vs XP Programming
Q:Is architectural thinking alwayspresent?
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
19/26
Observations on Architecture 6If all you have is a hammer... Technology availability significantly impacts architecture In 1990
4GLs such as Uniface and Oracle Forms no architecture discussion
In 1996 MTS/COM+ allowed VB6 teams to easily build server side code MSMQ allowed VB6 teams to build async architectures
Active Server Pages allowed VB6 teams to build web applications(replacing CGI)
In 2008 LINQ allows .NET developers to easily adopt ORM SQL Server 2005/2008 allows developers to easily work with XML Workflow Foundation easily moved from code to workflow Cloud Services
Commodity HPC Q: Can architects keep up with the technology impact on
architecture? Q: Can architecture be kept separate from technology
choice?
Ob ti A hit t 7
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
20/26
Observations on Architecture 7Who cares I have a cheque
book and a data centre Software with bad architecture candeliver a great service
Massive advances in hardware
Lower expectations?
404 error
Two examples Apply hardware
Apply developers
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
21/26
Example: Apply Hardware
Two pieces of crap is better than one piece ofcrap http://www.adtmag.com/article.aspx?id=9737
Amazon S3, EC2
Q: How many Servers does ebay have? Nb: ebay has very smart architecture
http://www.adtmag.com/article.aspx?id=9737http://www.adtmag.com/article.aspx?id=97378/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
22/26
Example: Apply cheapdevelopers
Developer in the UK 500 to 1000per day
Developer in India 100 to 300 perday
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
23/26
Observations on Architecture 8Invest in a Rabbits Foot
Hope for the best Architectures
Do not architect for edge conditions
Humans, spreadsheets, emails andscripts handle the edge
Q: Is this the death of the
transaction?
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
24/26
Observations on Architecture 9If only...
The time spent thinking explicitly aboutarchitecture becomes more important overtime
Software Archaeology
8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
25/26
Questions
Are software architectures gettingworse?
Is time spent on software architecture,time well spent?
Is time spent up front, time wellspent?
Is there only one perfect architecture?
Does cheap hardware, cloud services,easier refactoring and cheapdevelopers change the need forsoftware architecture?
http://msdn.microsoft.com/architecture8/14/2019 Time Spent Thinking Explicitly About Architecture Becomes More
26/26
Thankyou