SlideShare ist ein Scribd-Unternehmen logo
1 von 41
s
                                                                               re f or developer
                                                           Softwar e architectu



What is software   What is therole    of   How do you define         How do you share        How do you  deliver
  architecture?    a software architect?   software architecture?   software architecture?    software architecture?




          Good code isn’t enough
simon.brown@codingthearchitecture.com
    @simonbrown on Twitter
“Software Architecture for Developers”

                          Enterprise Architecture
     Technology and business strategy across organisations and organisational units.




                       {
                                                                System Architecture
                                                            Software and infrastructure architecture
                                                                   for an end-to-end system.



                                                                            Application
  We call this                                                              Architecture
  software
                                                                     Software architecture for an
                                                                      application, sub-system or
                                                                             component.
architecture
and it’s the scope
                                                                 /// <summary>
                                                                 /// Represents the behaviour behind the ...
                                                                 /// </summary>
                                                                 public class SomeWizard : AbstractWizard

  of the training                                                {
                                                                     private DomainObject _object;
                                                                     private WizardPage _page;


      course
                                                                     private WizardController _controller;

                                                                      public SomeWizard()
                                                                      {
                                                                      }

                                                                      ...

                                                                 }
“Enterprise Software Developer”




                  ctical train ing course
 A fo ur-day pra
                 g softwar   e within an
  ab out buildin                  ructured,
          e environm  ent in a st
enterpris                     atic way.
                   and pragm
     lightweight
Does good code          guarantee
  a successful software project?
A successful software project is about much


   more                 than good code
The reputation
of the development
 team is at stake!
It’s important    It’s important
that we know          that the
                   software we
   what                release
we’re releasing
                  “works”
                                   That’s us!
How much up-front
work do you need to do?
                This much?




                                   Iterative &
                                   Incremental
                                   Development


     Serial
  Development




                             This much?
Most projects simply do

what they’ve
always done
                                      a lly a
                                  usu
                           is is          e
                  An d th          f th
                          iat ion o       l! :-
                                                )
                      var          mod
                                        e
                         er  fall”
                   “ Wat
“
   What
are we building?
User stories
                                                 are high-level
                                                 requirements
                                    ant to        statements
                       tome  r, I w
              s a c us                  y bank
( 003)    A                n ma  nage m
                that  I ca
 log in so
               ts o nline.
  ac coun                 (009) Cus
                                      tomers ca
                         statement              n downloa
                                     s for the            d
            : Must                             last three
   Priority              months.

                   Priority: M
                               ust
Software architecture is the



    big         picture
Structure = components/services and their interactions
                 Guidelines = patterns, templates and examples



          Software architecture introduces

                    structure                           and


                    guidelines
        into a software system, leading to

   consistency clarity                          and


Consistency = a standard approach to solving common and recurring problems
Clarity = a thought out design with a clear architectural vision
Systems & Containers
Requirements




                 1-2 days
               for an initial design


                                                                 y
                                                          ativel
                                               coll  abor      te
                                          h is           e para
                                 Do ing t          e’s s
                                              eopl
                                  allows p         o  meet
                                          ide as t
   Components & Estimates
Can you deliver

everything?
Prob ably not!

Refine a nd challenge
                        Prioritise
     the scope
Kanban boards
 are an excellent way to
  visually track progress
Does your architecture

                          work?
                                                                  ng
   Satisfies th
                 e
                           Fou ndations for   Platfo rm for solvi
                   vers                                        blem
arch itectural dri             the code       the business pro
y
                                                    e ss b
                                             l y gu         r
                                    c a n on          ms o
                                You           d iagra
                                        g at
                                 look
                                     in
                                                e code
Will these software systems            s ourc

perform and scale acceptably?
Concrete
                  experiments




Requirements




  A system
                                          /
                                      type
                               p roto
                      wa way        pt o
                                         r
                 thro          once
Foundations    A
                     of  of c      code
                  pro       c tion
                     p rodu
Load testing client
   simulating concurrent                      Website
        user access




Simulate multiple users
                with a
 typical usage profile,
preferably with an environment as near   Other systems, data
       to production as possible            sources, etc
Source code control
     introduces a number of things, including:



          Backed-up
         source code                A log of the
                                                e
                                    changes mad




                         to
A simple w  ay to revert
                       opy
 a previou s working c         Sim plified parall
                                                  el

                                  development
Developers c
             ommit
              ode
                     Source code   Developers u
                                                 pdate
                                                 orking
 (check-in) c                        heir local w

                      repository
                                   t
              ocal                                -out)
 from their l                       copy (check
               y
   working cop




Developers
have a local
            y
working cop
of the code
2. Work on the
                         branch instead of
                             the trunk


                             branch
                                              4. Merge the
1. Create a branch                           branch back to
  from the trunk                             the trunk when
                                                 finished
                     3. Merge from the
                     trunk to keep the
                     branch up to date




                              trunk
How do you know that you’ve not

  broken something?
                                            e you
                                     t s giv
                            te d tes        acto
                                                 r
                   Au toma         t o re
                                          f
                            de nce
                    c  onfi
Low-level tests for
                            classes and
                            components




     Unit            &


 integration                     tests

“Functional” tests
 across container
    boundaries
How much do you test?
        This much?




0%                                     100%
                                                      e
                                                 t th
                                         s , tes
                                all step        code
                             Sm              ”
                                     ortant d goal)
                     This much? “imp      a go
                                               o
                                       is
                                       +
                                  (70%
to do  when
  T hings
              e soft ware
 build ing th
1. Compile  the code
                    to your w eb server
 2. Pub lish files
                   it works
 3. M aybe check
“
It works on
my machine!
       Even
             t h
            shou
                 e sim
                   ld
                       pl
                      be a
                          est
                           ut
                              of build
                              omat
                                   ed
                                       s
Continuous Integration                             Development Server
                                                          Web-tier
       Server



                                                   Development Server
                                                         Middle-tier

                           Automated
                           build script

                                                   Development Server
                                                          Database

      Subversion
  Source code repository


                             The continuous integration server gets the source
                               code from the repository and runs the build

                                    compiling, testing,
                                script;

                                 packaging and installing
                                               the software
Build-Test-Run when
                        we commit code to
                           the repository




     Continuous                    &


      nightly        builds

Continuous build +
   longer running
 integration tests
Automation introduces


 consistency
           and


repeatability          Auto
                             mate
                             ly us
                                   d rel
                                   eful
                                        eas
                                         if
                                             es a
                                             you’
                                                  re
                                                  re
                                                 es
                        real             br anch
                                ing on
                          work
Database connection strings

     Web service URLs

    Server IP addresses
                                            Software
     E-mail addresses                        System
      File locations
                                                                     are
                                                            it ems
                                                    ation                 se
    Service credentials                       igu r             xte rnali
                                       conf           if ic; e         de
                               Many            spec               e co
                                      nmen
                                            t                urc
                                    o                 e so
                              envir      f rom
                                                  th
                                 them
“
Anybody know which

  version
  we’re running?
“It doesn’t look
like version 1.2
           I’ve
            wo
                se en th
                rryin
                     gly
                         is h
                          regu
                              app
                               lar
                                   en o
                                        n a
                                    basis
                                          !
Software architectures don’t live in


     isolation
Current Development Team   Business Sponsors           Future Development Team




                           Your system

 Database Administrators                                Operations/Support Staff


                                                                           e
                                                                    e ctur
                                                             r chit
                                                    w are a           for
                                               Soft     pla  tfor
                                                                   m
                                                                        ocia
                                                                             l!
                                                  is a          .. be s
                                                         t ion .
                                                    ersa
                                               conv
      Other Teams           Security Team                 Compliance and Audit
O peration al View


                         stem
        How  does the sy
                             nd
        support monitoring a
            management?




              ple diagnose
   How do peo
        problems?
Let’s wrap up...
“Enterprise Software Developer”




                  ctical train ing course
 A fo ur-day pra
                 g softwar   e within an
  ab out buildin                  ructured,
          e environm  ent in a st
enterpris                     atic way.
                   and pragm
     lightweight
Source Code
                                                    Release
                                   Control
Enterprise software developer




     Software                   Automated Unit
                                                  Configuration
   Development                  and Integration
                                                  Management
    Processes                       Testing




                                  Automated
   Requirements                                   Load Testing
                                    Builds




    Architecture                  Continuous      Operational
     and Design                   Integration     Hand-over
simon.brown@codingthearchitecture.com
    @simonbrown on Twitter


                                                   !
                                            Th anks




     http://www.codingthearchitecture.com
                                               s
                             re f or developer
         Softwar e architectu

Weitere ähnliche Inhalte

Was ist angesagt?

8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
Majong DevJfu
 
Kahuna Corporate Profile
Kahuna Corporate ProfileKahuna Corporate Profile
Kahuna Corporate Profile
kahunasystems
 
Project management
Project managementProject management
Project management
Saad Khalaf
 
How to Design Frameworks
How to Design FrameworksHow to Design Frameworks
How to Design Frameworks
elliando dias
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product Presentation
Wil Huijben
 
01 introduction to_module
01 introduction to_module01 introduction to_module
01 introduction to_module
APU
 
Half-Push/Half-Polling
Half-Push/Half-PollingHalf-Push/Half-Polling
Half-Push/Half-Polling
YoungSu Son
 
Interactive Machine Learning
Interactive Machine LearningInteractive Machine Learning
Interactive Machine Learning
butest
 

Was ist angesagt? (20)

Se
SeSe
Se
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
Kahuna Corporate Profile
Kahuna Corporate ProfileKahuna Corporate Profile
Kahuna Corporate Profile
 
Project management
Project managementProject management
Project management
 
Business Patterns for Software Developers
Business Patterns for Software DevelopersBusiness Patterns for Software Developers
Business Patterns for Software Developers
 
Introducing MDSD
Introducing MDSDIntroducing MDSD
Introducing MDSD
 
How to Design Frameworks
How to Design FrameworksHow to Design Frameworks
How to Design Frameworks
 
TaskMan-Middleware 2011 - Advanced implementation
TaskMan-Middleware 2011 - Advanced implementationTaskMan-Middleware 2011 - Advanced implementation
TaskMan-Middleware 2011 - Advanced implementation
 
SET NSF Final Presentation
SET NSF Final PresentationSET NSF Final Presentation
SET NSF Final Presentation
 
An interactive exploration environment for complex process design
An interactive exploration environment for complex process designAn interactive exploration environment for complex process design
An interactive exploration environment for complex process design
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product Presentation
 
01 introduction to_module
01 introduction to_module01 introduction to_module
01 introduction to_module
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
 
Half-Push/Half-Polling
Half-Push/Half-PollingHalf-Push/Half-Polling
Half-Push/Half-Polling
 
20110507 Implementing Continuous Deployment
20110507 Implementing Continuous Deployment20110507 Implementing Continuous Deployment
20110507 Implementing Continuous Deployment
 
Interactive Machine Learning
Interactive Machine LearningInteractive Machine Learning
Interactive Machine Learning
 
Evolving Threat Landscape
Evolving Threat LandscapeEvolving Threat Landscape
Evolving Threat Landscape
 
Design1
Design1Design1
Design1
 

Ähnlich wie Good code-isnt-enough

Session One Intro
Session One IntroSession One Intro
Session One Intro
rsnarayanan
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
Steve Lange
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
YoungSu Son
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements Composer
Kurt Solarte
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward Engineering
Muhammad Chaudhry
 

Ähnlich wie Good code-isnt-enough (20)

Architecture: where do you start?
 Architecture: where do you start? Architecture: where do you start?
Architecture: where do you start?
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
 
Hack and Tell - wtf is the core mobile divide
Hack and Tell - wtf is the core mobile divideHack and Tell - wtf is the core mobile divide
Hack and Tell - wtf is the core mobile divide
 
Designingapplswithnet
DesigningapplswithnetDesigningapplswithnet
Designingapplswithnet
 
Extension and Evolution
Extension and EvolutionExtension and Evolution
Extension and Evolution
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Session One Intro
Session One IntroSession One Intro
Session One Intro
 
Architecting & Developing On The Cloud Operating System Windows Azure V3
Architecting & Developing On The Cloud Operating System  Windows Azure  V3Architecting & Developing On The Cloud Operating System  Windows Azure  V3
Architecting & Developing On The Cloud Operating System Windows Azure V3
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements Composer
 
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
 
Unit1
Unit1Unit1
Unit1
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Drupal 7 ci and testing
Drupal 7 ci and testingDrupal 7 ci and testing
Drupal 7 ci and testing
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward Engineering
 

Mehr von Skills Matter

Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
Skills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
Skills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
Skills Matter
 

Mehr von Skills Matter (20)

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Good code-isnt-enough

  • 1. s re f or developer Softwar e architectu What is software What is therole of How do you define How do you share How do you deliver architecture? a software architect? software architecture? software architecture? software architecture? Good code isn’t enough
  • 2. simon.brown@codingthearchitecture.com @simonbrown on Twitter
  • 3. “Software Architecture for Developers” Enterprise Architecture Technology and business strategy across organisations and organisational units. { System Architecture Software and infrastructure architecture for an end-to-end system. Application We call this Architecture software Software architecture for an application, sub-system or component. architecture and it’s the scope /// <summary> /// Represents the behaviour behind the ... /// </summary> public class SomeWizard : AbstractWizard of the training { private DomainObject _object; private WizardPage _page; course private WizardController _controller; public SomeWizard() { } ... }
  • 4. “Enterprise Software Developer” ctical train ing course A fo ur-day pra g softwar e within an ab out buildin ructured, e environm ent in a st enterpris atic way. and pragm lightweight
  • 5. Does good code guarantee a successful software project?
  • 6. A successful software project is about much more than good code
  • 7. The reputation of the development team is at stake! It’s important It’s important that we know that the software we what release we’re releasing “works” That’s us!
  • 8. How much up-front work do you need to do? This much? Iterative & Incremental Development Serial Development This much?
  • 9. Most projects simply do what they’ve always done a lly a usu is is e An d th f th iat ion o l! :- ) var mod e er fall” “ Wat
  • 10. What are we building?
  • 11. User stories are high-level requirements ant to statements tome r, I w s a c us y bank ( 003) A n ma nage m that I ca log in so ts o nline. ac coun (009) Cus tomers ca statement n downloa s for the d : Must last three Priority months. Priority: M ust
  • 12. Software architecture is the big picture
  • 13. Structure = components/services and their interactions Guidelines = patterns, templates and examples Software architecture introduces structure and guidelines into a software system, leading to consistency clarity and Consistency = a standard approach to solving common and recurring problems Clarity = a thought out design with a clear architectural vision
  • 14. Systems & Containers Requirements 1-2 days for an initial design y ativel coll abor te h is e para Do ing t e’s s eopl allows p o meet ide as t Components & Estimates
  • 15. Can you deliver everything? Prob ably not! Refine a nd challenge Prioritise the scope
  • 16. Kanban boards are an excellent way to visually track progress
  • 17. Does your architecture work? ng Satisfies th e Fou ndations for Platfo rm for solvi vers blem arch itectural dri the code the business pro
  • 18. y e ss b l y gu r c a n on ms o You d iagra g at look in e code Will these software systems s ourc perform and scale acceptably?
  • 19. Concrete experiments Requirements A system / type p roto wa way pt o r thro once Foundations A of of c code pro c tion p rodu
  • 20. Load testing client simulating concurrent Website user access Simulate multiple users with a typical usage profile, preferably with an environment as near Other systems, data to production as possible sources, etc
  • 21. Source code control introduces a number of things, including: Backed-up source code A log of the e changes mad to A simple w ay to revert opy a previou s working c Sim plified parall el development
  • 22. Developers c ommit ode Source code Developers u pdate orking (check-in) c heir local w repository t ocal -out) from their l copy (check y working cop Developers have a local y working cop of the code
  • 23. 2. Work on the branch instead of the trunk branch 4. Merge the 1. Create a branch branch back to from the trunk the trunk when finished 3. Merge from the trunk to keep the branch up to date trunk
  • 24. How do you know that you’ve not broken something? e you t s giv te d tes acto r Au toma t o re f de nce c onfi
  • 25. Low-level tests for classes and components Unit & integration tests “Functional” tests across container boundaries
  • 26. How much do you test? This much? 0% 100% e t th s , tes all step code Sm ” ortant d goal) This much? “imp a go o is + (70%
  • 27. to do when T hings e soft ware build ing th 1. Compile the code to your w eb server 2. Pub lish files it works 3. M aybe check
  • 28. “ It works on my machine! Even t h shou e sim ld pl be a est ut of build omat ed s
  • 29. Continuous Integration Development Server Web-tier Server Development Server Middle-tier Automated build script Development Server Database Subversion Source code repository The continuous integration server gets the source code from the repository and runs the build compiling, testing, script; packaging and installing the software
  • 30. Build-Test-Run when we commit code to the repository Continuous & nightly builds Continuous build + longer running integration tests
  • 31. Automation introduces consistency and repeatability Auto mate ly us d rel eful eas if es a you’ re re es real br anch ing on work
  • 32. Database connection strings Web service URLs Server IP addresses Software E-mail addresses System File locations are it ems ation se Service credentials igu r xte rnali conf if ic; e de Many spec e co nmen t urc o e so envir f rom th them
  • 33. “ Anybody know which version we’re running?
  • 34. “It doesn’t look like version 1.2 I’ve wo se en th rryin gly is h regu app lar en o n a basis !
  • 35. Software architectures don’t live in isolation
  • 36. Current Development Team Business Sponsors Future Development Team Your system Database Administrators Operations/Support Staff e e ctur r chit w are a for Soft pla tfor m ocia l! is a .. be s t ion . ersa conv Other Teams Security Team Compliance and Audit
  • 37. O peration al View stem How does the sy nd support monitoring a management? ple diagnose How do peo problems?
  • 39. “Enterprise Software Developer” ctical train ing course A fo ur-day pra g softwar e within an ab out buildin ructured, e environm ent in a st enterpris atic way. and pragm lightweight
  • 40. Source Code Release Control Enterprise software developer Software Automated Unit Configuration Development and Integration Management Processes Testing Automated Requirements Load Testing Builds Architecture Continuous Operational and Design Integration Hand-over
  • 41. simon.brown@codingthearchitecture.com @simonbrown on Twitter ! Th anks http://www.codingthearchitecture.com s re f or developer Softwar e architectu