the architect juval lowy idesign ©2011 idesign inc. all rights reserved

33
The Architect Juval Lowy IDesign www.idesign.net ©2011 IDesign Inc. All rights reserved

Upload: oliver-owen

Post on 01-Jan-2016

221 views

Category:

Documents


1 download

TRANSCRIPT

The Architect

Juval LowyIDesignwww.idesign.net

©2011 IDesign Inc. All rights reserved

About Juval Löwy

Software architectConsults and trains on .NET architecture and technology

Microsoft's Regional Director for the Silicon ValleyRecent book

Programming WCF Services 3rd Edition (2010 O’Reilly)Participates in the .NET/WCF design reviewsPublishes at MSDN and other magazinesRecognized Software Legend by Microsoft Contact at www.idesign.net

No Design No Technology

{ ;}

Software Development Crisis

The software industry is in a deep crisis Multi-dimensional crisis

CostInitial development Overall ownershipUnacceptable cost of changes leads to "clean slate" syndrome

ScheduleTime to marketTime to featureSlipsSlips hidden from management and customers

Software Development Crisis

Requirements Solving the wrong problems Unmet requirementsSystem obsolete by release time due to requirements change Too much gold platingNot enough core functionality

Staffing Un-maintainable by new staff Burnout

Software Development Crisis

QualityUp to unusable systems Customer satisfaction

Long-term problemBeen around for long timeWill take time to resolve

Software Development Crisis

Most organization are utterly chaotic Mob-rule-like methodologies No repeatability No productive processNo structured knowledge retention No development standard

Threatening our industry longevity and viabilityOr at least our livelihood

Software Development Crisis

It is possible to develop good softwarePlenty of examples of both high quality products and well-managed companiesWithin adequate limits of budget and time-to-market

Unlike almost any other engineering disciplineNo regulated licensing process or industry standardsNo requirement for studying software engineering/CS in order to practice

Software Development Crisis

Today software development is not practiced as engineering discipline

Dark ages or pre-industrialized

Software is not perceived as a profession'geeks''hackers'

Akin to low-level manufacturing that should be off shoredLacks high added-valueCan be commoditized

Software Development Crisis

Huge skill gapWhat many developers should know and what actually knowWhat most managers should practice and what is practiced

Death marches and lucky strikes

Software Development Crisis

Hardly any university teaches software engineeringNot computer science

Software engineering is distinct from computer science

Software Development Crisis

EngineeringThe application of scientific principals towards practical endsResponsible for delivering something that meets given requirements Reports to the general public of customers

ScienceSystematic knowledge of the physical or abstract world gained through observation and experimentation Responsible to add to the body of knowledgeReposts to other scientists

Software Development Crisis

Despite massive and sufficient core body of knowledgeArchitecture Process TechnologyToolsMethodologies

Software Development Crisis

Inflation in terminologySoftware architect is actually an engineer Software engineer is a programmer/developer Software developer/programmer is a code technician

Software architecture is engineeringSoftware development is manufacturing

Software Development Crisis

Key to resolving crisis is practicing software development as an engineering disciplineEngineering discipline elements

Core body of knowledge of design best practicesTechnology or science foundation Supporting processAnalysis methodologySupporting assumptions

Software engineering is the realm of the software architect

Types of Architects

Enterprise architectSometimes called corporate architect or chief architect Utilizes economy of scale

ResponsibilitiesCorporate-level frameworksDirection and guidanceManaging other architects

Types of Architects

Solution architectSometimes called architect or lead developer Application-specific

ResponsibilitiesApplication top-level design

Occasionally detailed design

Technical leadershipWhat and not howReduce complexity and provide infrastructure

Collaboration with product and project managerProject planning

But not tracking

Types of Architects

Key skills required of architects Development process and project leadershipArchitecture and modern design patterns

As reflected by the technology at hand

AnalysisModeling and notations Architecture validation

Types of Architects

Solution architect is Process leadTechnical leadDesign lead

As a continuum

Architect's Evolution

Early 1990'sTechnical leads

Late 1990'sArchitects

Late 2000'sTechnical managers

Individual architect's career path often reflects the industry's evolution

Architecture and Technology

Architecture is not detached from technologyNo point in designing something

The technology provides alreadyDevelopers cannot build

Design methodology must align with development methodologyDevelopment methodology is derived from tools and supporting platformsNew technology often deprecates existing designIn civil engineering, 90% of architecture is building codes

Architecture and Domain

Architecture is detached from the domain-specificsDesign best practices and patterns transcend specific applications

Across industriesAcross products Across team sizes

Avoid doing more of the sameArchitects should not be the domain experts

Developers should

Developers should not be technology and design experts Architects should

Architecture and Domain

Developers add the most value by understanding the domainArchitects add the most value by decoupling the systemArchitects should rely on domain experts

System experts Developers Analysts

Resources

Programming WCF Services 3rd EditionJuval Löwy, O'Reilly 2010

www.idesign.netCode libraryCoding standardSample architecture reportIDesign Method™

Architect’s Master ClassNovember 2011

http://www.idesign.net/idesign/download/IDesignCD.zip

Resources

www.microsoft.com/teched

Sessions On-Demand & Community Microsoft Certification & Training Resources

Resources for IT Professionals Resources for Developers

www.microsoft.com/learning

http://microsoft.com/technet http://microsoft.com/msdn

http://northamerica.msteched.com

Connect. Share. Discuss.