beyond software architecture  · web view2020. 4. 25. · beyond software architecture. martin...

38

Upload: others

Post on 23-Dec-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who
Page 2: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

beyond software architecture

Martin Fowler signature series book difference between marketecture and tarchitecture

who responsible for what early forces in solution development

problem domain competition legislation requirements process and practise customers

technology base persistence integration frameworks

target market initial bug review

implement with all stqkeholders so get a sense of who series what as priorities

classify bugs 1 = operational wont work - show stopper 5 = product improvement/enhancement

different cultures will classify differently compare to requirement - e.g. use of must, should and may

terminology creating results in the short run while working in the long run

don't just look at what customers want now - look at various information feeds to identify requirements in the future

must not harm ability to support existing customers projecting the future

markitect and architecture future view must be aligned otherwise product will fail

map views e.g market map feature/benefits technical architecture

different maps should highlight conflicts / challenges, e.g. feature not being achievable with a tech architecture

regularly review & maintain maps harnessing feedback

tech architects conferences journals training

market architects ... user conferences review 1st & 2nd line issue logs

Page 3: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

talking with sales teams win/loss analysis

market analysts talk with advisory groups meet key customers

avoid when gathering info ... making promises making commitments being negative about product set expectations be judgemental on contributor/contribution

generating clarity form of communication larger projects - need more formality comunicate impacts

working in unison agree processes and principles that drive the project avoid filbert thinking of different groups involved make information available e.g maps

context diagrams and target products higher level views of the world technologies customers use and know potential parters and market synergies value proposition integration and extension options target platforms

marketecture = marketing architecture business model licensing selling model value proposition

tarchitecture = technical architecture(view that dev work with)

subsystems interfaces distribution of processes patterns

Business and License Model Symbiosisrelates to chapter 4 of the book

common software business models time based access or usage

perpetual support, upgrades normally excluded maintenance fee typically 15-30% can create costs for supporting all versions if not

careful maybe required if product is embedded into larger

solution e.g. runtime libraries, hardware devices annual

Page 4: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

effective from installation, or first use usually includes updates and patches tech support / consulting maybe additional renewal maybe automatic, renewal maybe different

price to initial purchase common for enterprise solutions

rental essentially same as annnual common in some industries e.g. software testing changing rental features may allow penetration into

smaller/lower cost markets may not include updates and patches - additional

contract for these subscriptions

same as annual/rental but with slightly different rights

common for backend services more likely to include patches and upgrades

what happens if user uses outside of period? grace period for payment? cut off usage- although very server track and charge for usage - creates complex

architecture demands e.g. like car rental per user license

volume seat licensing for enterprise contractual base - agree estimated volume

OEM Original Equipment Manufacturer

transaction measurable units of work could be each piece of executed software - known as tie and

die fees can be calculated different ways

flat fee percentage fees sliding fees (volume discounting) processing fees (post processing calculated fee

charged) ways of working out transaction value

prices reflects value price should reflect effort price to support positioning prices reflects competitive landscape pricing should be clear pricing reflects market maturity harder to raise the price, compared to lower for

same product metering

resource managed constraints

Page 5: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

concurrent resource management eg concurrent users or sessions need clarity of user/session definition users not equal to sessions

identified resource management e.g. named users x out of y plugins active at once

consumptive resource management number of hours usage of a resource could define a resource - e.g. no times a function is

invoked need to enable understanding for user on their likely

usage consumption reporting on consumption

hardware software could be free - but hardware non functional

without s/w per cpu - or other h/w element - but problem when coming

to virtualisation proportion of revenue base

percentage of revenue created or costs saved need to agree comparative benchmarks agreement on calculated benchmarks need to consider min revenue gain/save not very popular as it compels customer to track details

unrestricted services offered based on-top of existing framework or OS services

software is free, but charge for each service e.g. email, spam filter

rights associated with business model clarity of rights figure 4.1 common matching of licensing to rights

architectural support for the business model time based access or usage

commonly dont disable but stop updates transaction

define a transaction possible challenges eg distributed transactions relationship between transaction and business model need an audit trail uniquely name transactions implications of transaction states, lifecycle and duration

metering authentication of users how many users counting concurrent users (not session) users gone or just inactive?

hardware

Page 6: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

need architecture to capture appropriate info consider costs of the architecture on the customer implications of changes on revenue e.g. performance improvement

on hardware based licensing consideration as to whether or not to have copy protection scheme

- tighter hardware ties reduce rate of piracy eg game cartridges questions to consider

what is target market - what does it value what are your objectives relative to target market your business model effect of business model on tech architecture pricing model

enforcing licensing models honour system

still protected by contract law implications on relationship with customer revenue risk?

home grown license managers tend not to be industrial strength - therefore easy to defeat commonly needed for session based licensing in some cases this is fine and doesnt need to be iron clad

3rd party or professional license managers considerations for OS support check cracker web sites to determine license manager

strength how easy to integrate & volume capabilities operational requirements the license manager introduces license distribution capabilities/constraints

the client market maturity influences on the business model

emerging market - easy for force model on customers mature market - need licensing model(s) to allow max share and

revenue better to be able t support multiple models

considerations for license models different modules maybe licensed differently some licenses could be geographically constrained e.g. site license

(field-of-use model) period of license - month, quarter, year etc implications to license payments - e.g. SMB or SOHO perhaps needs

online credit card payment renewal support Technology In Licensing

chapter 5 Contracts

basics terms

usage or grant duration of term or other kkey dates territory - where llicennse ca be used

Page 7: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

specific use - constraints oon application exclusivity - how much the licnesee may allow others to use

solution sublicense - can you license 3rd party solution with your

solution into another product termination - agreement withdrawal

from 30days to 1year possible notice of withdrawal possible financial clauses e.g. bankruptcy

renewal risk of false sense of security auto renewal - could pay too much or too little

fees/payment terms deployment restrictions non coompetition clauses access to source code e.g. escrow marketing - uuse of logos

get expert legal advise licensing risks/rewards of licensing elements of a solution

reduce, manage or eliminate complexity (taking solution from SME)

risk-reliance on 3rd party, if they evolve in different direction

risk-supplier changes focus meaning no longer got capability

risk-provider goes bust promotion of component based software

risk-s/w becomes to interwined in own solution to undo/replace

allow you to concentrate on the value add elements risk-configuration complexity increases risk-incompatible business models (from simple export

restrictions on the 3rd party lib) risk-can mitigate with licenses such as GPL

can obtain protection by licensing technology protected by patent risk-indemnity, legal exception from liabilities from using

the component risk-doesnt exclude you from 3rd party patent disputes

reduce time to market by reusing technology risk-doesn't always provide faster time to market - need to

invest time to leverage technology vendor is creating something of a higher quality than you can

achieve risk-presumption doesn't prove to be the case code may have been pushed & pulled a lot before reaching

arket vendor created components are lighter and consume fewer

resources e.g. memory risk-may prove to be heavier than expected

Page 8: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

risk-may not be tuneable to own requirements may relieve some burden of technology currency - as vendor

continues to improve product risk-updates arent provided as quickly as needed risk-support dropped for elements or OSes

component is start of the art and use will future proof your application

risk-sounds like resume driven design licensing technology cheaper than starting from scratch

risk-calculation based on providing equivelent, but don't need everything considered in calculation

risk-license fee changes can destroy economics licensing components will reduce service and support costs

risk-of adding more problems and work arounds to address 3rd party

risk-if multiple 3rd parties who do you engage? Could result in infighting between your suppliers

when business models collide, negotiations ensue honouring license agreements

need to ennsure technical terms are understoood and clearly defined

APIs ca 3rd party app APIs be drectly exposed? support - how clients dealt with, directly/indirectly? Branding - can 3rd party logos be used etc

managing in-licensed technology create adaptor or wrappper e.g. JDBC

open source licensinghttp://www.opensource.org

license fees licensing economics

PortabilityChapter 6

perceived advantages of portability claim-we can address a new market segments

careful as platform alone doesn't provide full market segmentation

claim-demonstrates that we can meet customers idiosyncratic needs

reflects tech skill - not what customers want what if customer has chosen platform for specific features it

offers true drivers for portability

portable code is cool learning nuances of different versions of an OS can be

tiresome 1 or 2 early customer demand different solutions

business case for portability primary driver should be profitability consider the following points

Page 9: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

cost of training developers,QA, support in developing and supporting multiple platforms

cost of purchasing hardware & software for each supported platform

testing time to ensure product works on a lll platforms complexity of multiple release cycles (testing as OS releases

occur) identify the following before adopting platforms

sufficient revenue for that platform take into account al costs inc dev, testing and support sufficient organisation resources to support all platforms impact of platform release cycles on own processs

creating portable applications use a interpreted language

interpreter insulates from OS differences if native language - ensure compiler available on all target

OS ensure devs know to isolate platform dependencies

use standards based persistent storage make business logic portable closer to the user means less portability

backends typically more portable UIs greater levels of differentiation, from resolution

onwards use XML for standardized interop comms between subsystems avoid hiding the power of a specific platform in the name of

portability if a platform is strong at something don't ignore it

matrix of pain remove configurations eg some combinations of OS and DB

don't warrant investment for support rank order configurations

level of use in market, i 1 in 1000 is it worth supporting?

what the most valuable customers using what are the combinations that will be most heavily

marketed what will be easiest to support what will allow you to achieve highest level of

coverage in testing make the final cut of supported combinations of platform

beware the promises you make - could end up with commitments to support combinations that aren't cost effective

Deployment ArchitectureChapter 7

deployment choices customer site

consultants often deploy of enterprise class supplier may subcontract to SI

Page 10: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

traditional approach application service provider (ASP)

provides service of app may not offer tech support eg large enterprise solutions

managed service provider extends ASP model additional services to core app SLAs common

transactional (web services) not too common in enterprise presently likely to grow with growth of web services

customer influences on deployment architectures control and integration

customer need to control assurance of support when needed long term retention & mgmt of data consider this when looking at MSP and ASP increasing level of integration more likely to be on

customer sight data security/privacy and peak loads

type of data impact leakage risk considerations cost effectiveness - equip to peakload

costs and vendor confidence cost to lease less than purchase for level of use customer perception - secure etc? market viability market perceptions of approach

customer skills and experiences and geographical distribution deployment will dictate support skills needed if customer to host - need to impart capability to customer if outsourced - need ability to manage supplier

corporate influences on deployment sales cycle

time and no steps to realise a sale correlates to solution complexity and size if want shorter cycle consider ASP model once sale completed often want rapid deployment use xSP as stepping stone to self hosting

flexibility customer sit installation less likely to be unto date if not unto date need to support older versions

infrastructure investment how much investment needed for creating xSP offering

cash flow geographical distribution

support global - therefore language used in support service not price

choosing software deployment architecture

Page 11: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

deployment architectures and distribution of work information appliance

hardware and software ease of linux as appliance os simplifies complex solution

deployment choice influence on software architecture flexible, parameterized, or no integration options

greatest demand when deployed to client site upgrade policy

customer site approach needs careful planning MSP and able to deploy more regularly and easily

data protection and access customer site = customer problem hosted - more complex and proceurual, evidennce etc

migration options future of consumer s/w

Integration & Extension customer control - driving force

you cant predicate, but can plan provision of integration points is planning for expected future

demands customers don't want "we can't do that" larger solutions built from multiple smaller solutions deliver more value by combining data with other systems increase switching costs - greater cost to move away from your

solution - realised by customer integrating your solution closely to their others

create a product ecosystem - e.g. other suppliers providing plugins solution

apis will also help test the system people adopting/supporting your API is commitment to you in the

long term layered business architectures - logical structures

user interface services layer domain model layer persistent data layer variations on a theme

creating layered business architectures integration & extension at business logic layers

technologies & locus of control integration through APIs

platform preferences - platforms have variations market segment preferences - markets show preference to

approach partner preferences naming conventions security & session data

Page 12: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

apis with session id requirements are momre complex than those without

ability to manage sessions through interfaces expose only what customers need - expose more and

creates more work to maintain API stabilised over multiple releases

hard to predict API needs be prepared to take several releases to get right

extension through registration register components and drive extensions through callback

model means own app retains control similar to observer design pattern or through publish/subscribe model define registration model

define tech detail e.g. when and how use of configuration application restart provision of interfaces

define event model what events available when they occur notification format information provided in the callback

define execution control semantics calls are blocking or not thread considerations process controls

define resource management policies define error/exception protocols

integration & extension of persistent data views

decouples application/physical schema user fields

avoid cost/effort of establishing additional tools not semantically meaningful lack of proper data modelling

hook tables needs careful coordination in apps various layers identify events associated with DBs CRUD operations link to own data through common key use GUIDs not auto incremental fields difficult to sustain relational integrity can extend transaction execution time

spreadsheet pivot tables relies on strong spreadsheet products extract based approach

ETL and old scripts tell them whats going on

Page 13: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

not very desirable in most cases by pass of validation rules failure to protect transactionality cost of schema changes to sustain backward compatibility

Business ramifications professional services

provision of expertise to integrate consider releationship to product managers consider working with SI

training programs potential to improve customer satisfaction potential to reduce support costs include training on integration aspects consider all possible audiences from users to SIs to orgs

building plugins certification

consider ... product ecosystem competitive edge currency

more technical shorter training life value needs programme to be sustained

professional recognition independent certification academic credentials

user community needs nurturing help understand how users are really using the product community website educational materials

unofficial examples additional knowledge base

mailing list user conferences

license agreements managing APIs over multiple releases

(plenty of) warning of changes provide 1 release of overlap

2 full releases before a change removed as min backward compatibility layers automated testing tools that identify or convert calls to depricated

APIs Release Management

establishing a baseline all the versions of the different components in the product version name

release management what you're releasing

patch

Page 14: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

full releasee partial

who you're targetting beta general release

why they want it new features performance improvements bug fixes deal with 'version 'skippers' - try make releases attractive

to large user base release identification

full or complete releases partial releaes patch releases variations

Release Management Influences on Tarchitecture recreate everything use existing solutions and infrastructure put version into architecture as early as possible components should know their dependencies messages and protocols should be versioned database and tables should be versioned internal components should understand external verssions support and testing implications on patches

serial numbers, registration and activation in addition to controlling usage can see what users are using what

features registration means more targeted marketing activation tied to a machine fingerprint

Security viruses, hackers and pirates

managing risk - cant eliminate see no evil, speak no evil need to consider ...

digital identity management transaction security software security information security

digital identity management authorization - whoo can do what

link to LDAP, AD RBAC - Role Based Access Control file system ACLs

authentication consider if open or closed system

transaction security auditability

proof of legislative compliance

Page 15: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

could spot check volume of activity from individual sources use audit information as product feature analyse system use for marketting

integrity use hashes on data to valid untampered encrypt hash keys rather than all data

confidentiality encryption SSL algorithms stronger than SSL, but not as common

accountability non repudiation strength in accountability relates to strength in

authentication software security

techniques serial numbers and activations

digital sign licenses to combat reverse enineering code and creating illegal licenses

protect validation code license check more complex than code

checking boolean value store something encrypted that has to be

executed hardware binding

use hardware finger print use physical device - dongle / usb dongle strong solon but costly to manage

cost benefit remember lost people using illegal copy of s/w prob

wouldn't use if no copy making secure may impact legit users cost consideration to development obscurification can make dav/support more

challenging even certificate server can up op costs risk impact consideration

information security secret algorithms or secret keys back doors

maybe convenient for support, but real security risk not use durib support

security and marketecture authentication, business models and operations regulatory impact industry growth trust dispute resolution

Page 16: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

UpgradeChapter 12

like installation only worse upgrade fears

pain of rework e.g. reworking integration ripple upgrades - move other components that have been fine,

more hardware needed data migration from old schema to new (good schema design can

reduce/avoid problems) data retention (need to recover archived data to production

version) certification (OAT, UAT etc processes) New APIs new features - cost & effort of learning to use them, motivation for

adoption inaccessible system - impact of needed down time reversion - hoow to rollback to the older version of the system in

the event of a problem making upgrades less painful

review install process - principles essentially the same keep the need for upgrades to a minimum, awareness of the

market rhythms upgrade readyness - check what needs to be changed, only change

what is necessary data migration - consider the steps needed and data being both

structured and semi structured deal with customers in very controlled and subtle manner quietly remove features if they not used and not needed.

deployment info can indicate this preserve user preferences and configuration during an upgrade how to handle upgrading from previous versions

go from ver-1 to ver and repeat to cross multiple versions select particular releases (commonly used) and provide

multi version jump in 1 step for multi version jumps, customer might have to do ver-1 to

ver before doing multi ver jump does the new version need to coexist with existing version

or is it a replacement market maturity and upgrades

early adopters are more tolerant of upgrades early adoption tolerance doesnt translate to pour upgrade process

tolerance - poor upgrade will result in early adopters stop adopting early

ultimately more money will be earned through upgrades than the initial release

Checklists Software Architecture

dependencies between subsystems clearly defined

Page 17: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

each team member working on a subsystem that they find interesting

each team member working in a way they believe will improve productivity

architecture is profitable current release is focused on issues of evolution or maturity understand the level of technical debit incurred in the system, can

identify tech debit proper compliance with all in-licensed components architect can articulate principles driving the choices made team right size to accomplish goals

Product Development defined means to capture requirements product managers represent voice of the customer organisation has means to kill a product if necessary understand our competitors & know what is needed to win understand who we building the product for, and who we're

selling to have a useful change management protocol

difference between markitecture and Tarchitecture have a markitect have a tarchitect bug database with cliassifications tech staff meeting customers know how to interact with them context diagrams for the systems

Business and License Model Symbiosis team members can define business models in use and being

considered license agreements congruent to business model license agreeent specific to rights for the customer chosen appropriate approach to enforce business model technical implications of changing business models understood

and clearly communicated Portability

each platform has sufficient dev, qa, support and sales resources sufficient time perform ill teting each platforms market share is known so cost effectiveness can be

identified roadmap factors in major platform releases market driven matrix to target testing efforts

Deployment Architecture match target market ability to meet expected workloads operational policies considered sales models considered sales cycles infrastructure investment customer input

Integration and Extension

Page 18: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

support material is available consideration of own solution integrated with other solutions naming conventions etc to make API consistency performance and resource implications of using extensions/APIs

Brand and Brand Elements all brand elements identified and approved brand elements internationalized error, diagnostic and log files have been checked and approved trademark and registered mark used properly brand elements can be replaced by partner?

usability tested all key functionality for usability capture conceptual model along with user mental models, system

metaphors system metaphors are clear means for sales/marketing to measure performance for reference

figures know when and how to throw h/w at the problem

Installation defined how subcomponents will be handled how installation meets rlicense requirements defined required skill to work with installation way to verify correctness of installation process adheres to platform guidelines avg user can install without referring to manual tested bot install and unistall

Upgrades considered all potential areas where an upgrade can cause pain &

mitigated? tested all migration paths? defined the migration path for alll customers? defined downtime of upgrade process defined how to rollback the upgrade process? tests included to confirm successful upgrade?

configuration have we defined all sys configuration?

security implications audit of changes?

documentation of allowable values documentation of implications of values

Logging Defined the purpose of each log file Log file utility suitable for target users Eliminate dev specific logs Following UI principles for I18N Logging is portable like rest of system Easy to parse

release managementchapter 15

Page 19: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

know who were targeting releases to process for identifying releases sku's if required

Securitychapter 16

identified levels of security required Logs

i want to know what is happening (goals) Debugging and error logs Error recovery - know what is wrong to apply corrections to env Performance tuning Capacity planning - insight into resource usage Insight into how users are using the system Config being used in operation System status

not just the facts - not just when, what, and steps. Otherwise not sufficient insight later

Performance hit for recording all the info in and out of every method etc

Time to execute methods Details such as the number of connections used/created Features used and not used

log format & management format

I18n of logs allow users easier use Start log entries with time stamp Make log traceable to location in code Log transaction ids

management standards & libraries Logging with flat files offers

Easy parsing Easy reading

Keep in mind ... Need to be in sensible location Sensibly named Don't put unreadable content into files If multiple files I'd to link them together

Management Support for dynamically change log thresholds Per thread logging - ensure different threads distinguished Log levels All exceptions are logged Ensure logs can be removed Log content can be sensitive so consider security Automatically forward - feature to get info together and

send Standards

W3C extended log format

Page 20: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

Common log format for web servers Platform dependent formats such as windows event logs

postprocessing log data Compact log files or rolling Multiple files - synchronise content Log viewers

logging services Internationalization unique Ids for each entry Consolidate logs across multiple severs to get unified story of

execution Unified time ordering Can configure where to put log files

ConfigurationChapter 13

configurability - an element of usability Critical that config is usable Hard to use config increases operating costs Hard to tune - result lower performance, so higher cost Results in higher support calls More complex professional services Increase in customer frustration Architecture can contribute to ease of configuration

system context Contextual information Location of key files - directories - use of well known locations Bootstrapping data - known locations for files to provide

configuration necessary for app boot process Portability switches - settings to switch between different DBS for

example Compatibility controls - behaviour switches to support backward

compatibility Performance parameters - system tuning impacting performance Too many configuration options - can get over complex to setup.

initialise vs execution Configure during initialisation Configuration to impact execution Startup settings - meaning possible need to restart to get

configuration applied Modifying logging settings Implications of high availability Passing configuration info to built in components

setting the value Who should have the permissions to set config

User Role constrained

Expert system Another system

Audit trail of changes Human readable - easy

Page 21: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

Db - audit trail and permissions setting the right value

More params - increase the risk of miss use Need to ensure known legitimate values and impact of changes Make config files self documenting

configuration parameter heuristics make config files easy to modify, even when the rest of the system

is down store all data in a single location - if you think multiple locations is

necessary then justify it to a support person use ann obvious location platform specific files such as .ini are fine, but why not use xml be careful of things like registry entries - they arent so portable make config information easy to capture and forward to support make it hard to get values wrong. if they are wrong stop and tell

user, or fall to default values abstract management of config to separate pieces of software such

as a sys context object objects structure possibly against

per computer per service instance per user per selectable profile

objects incorporate semantics of config values Installation

Chapter 11 out of the box experience (OOBE)

from the experience of retrieving media or downloading clear goal defined for install - e.g. average user able to install. What

is average user? customer fears

classic customer concerns too hard - e.g. shutting down processes in a specific way too complex - avoid sequences of complex steps too easy to break something - shouldnt leave the system in

an unstable or unknown state unknown amount of time - how much time should i make

available for a typical installl? too much data / too many forms - frustration from

repeating the entry of the same info. going through lots of steps before telling user they've forgotten key info

challenges in addressing installation: subcomponents - demand the user to preinstalll, or install as part

of solution in license requirements - licensed dependencies may dictate

constraints needing to be addressed by installation need to include EULA (End User LIcense Agreement) & need to

acknowledge agreement before continuing biz model - e.g. per user, volume, server spec

Page 22: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

partitioning installation responsibilities - which actions should be done by components & consistency in approach

ensure that the environment is suitable for the installation - e.g. environment type environment restrictions (home/office) how app is acquired - rom / download etc

who is installing, and their permissions (roles) get devs to do install before they're fresh to product

how to install installation data collection & precondition verification

free space connections DB, net etc configuration of required entities (e.g. SQL Svr installed ok) access rights - can fail install, difficult to deal with

Installation provide indication of progress - even in command line visual map of steps and progress track progress in as log file (allows for chance to provide

recovery - min allow support to perform diagnosis) make install interruptable

make process self aware ability to auto resume assumption that installation will get undivided

attention - wrong particularly in enterprise env follow platform guidelines

exception is multi platform installation avoid forced reboots avoid unnecessary questions

post installation confirmation confirm installation done correctly

verify files in correct places possible self tests log results

post install cleanup e.g. temp files read me notes user registration (with incentive to do so)

finishing touches they don't read the manual

not an argument for not providing provides QA with concrete description of expected sys

behaviour well written manuals more likely to be read well done roadmap can help give indication of effort

test the install & unisintall not unusual for QAs not to properly test (un)install in agile envs - should include installer from iteration 1 make sure various optioons exercised in QA - users will automate - process to assess pre and post installl conditions test against platform guidelines

Page 23: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

make installation scriptable poor install costs

possible loss of business more support callls enterprise soluttions - comng with provision of field engineers to

install - may not be profitable building dependency matrix may help determine all possible

problems Usability

usability is about money Fundamentally deliver a solutin Understand customer needs From considerations such as data through put Means to establish user needs

Observation Interviews Questionnaires Direct experience

Help by ... Reduced training costs Reduced support and service costs Reduced error costs Increased productivity Increased customer satisfaction Increased maintainability

mental models Understand tasks and then will understand models of the task

metaphors Well chosen can help architecture Take into account how product is to be presented Book - Designing Object Orientated User Interfaces (Collins 1995)

tarchitectural influences on UI design Separation of layers Influencers

Cardinality Greater nos means more advanced visualisation

needs Feedback

Indication to user of activity Responses Progress meters Early validation Controlling acces to options depending on state

Explicit user models So easy for users to understand

Workflow support Reflection of good practise Wizards

Transaction support

Page 24: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

Designed to support user interaction Error responses Internationalisation & localization Cancelling requests Undoing requests Compensating transactions

Can't always undo Timeouts Network availability

Reliability Performance Bandwidth

Shared resources Failure recovery

need for speed what a maketect really wants

Predictable performance over pure speed Number of confident sessions How many transactions on defined hardware Case studies to help answer Performance stats regularly recalc'd

responding to the user Provide means to cancel tasks Progress indications Feedback eliminates unnecessary work

performance and tarchitectural impact Move from ststeful to stateless potentially ups latency, but

better scaling More hardware not an excuse for sloppy development Course grained transactions will help Understand threading performance Use profiling to help Handle normal operations and failure conditions separately Cache results consider processes being able to run in the background self service capabilities eg tills, atms take advantage of development envs idioms reduce work - if capability implemented try make use of it

Brand & Brand Elements brand elements

names physical location of system components

folder naming for element storage suggest company name/product name/component

name allow for the addition of new components sale of single components good meaningful names

recommend not let devs name

Page 25: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

marketing - positive associations internationalization considerations configuration and logs may contain brand elements error, diagnostic and info messages may contain brand

elements names are volatile, especially in 1st release

graphics icons and splash screens

may need outside designer support brand colours voice branding use of trademark symbol legal rights registration of trademark

slogans branding elements

avoid changing when internalizing brannded elements can be far reaching so changing can

create significant work when to use tm symbol

managing in-license brands product areas to consider when changing

subsystem names source code repositories QA and tech support tracking systems physical location or components naming and structure of APIs error, information and diagnostic info QA and auto testing sales collateral

care if using other branding elements Product Development

Chapter 2 Product Development Processes

concept proposal get business data together to support proposal feasability

product proposal/business plan justify the product harden requirements can be divided into segments

market analysis financial analysis production description competitive annalysis & product differentiation product positioning marketing strategy channel strategy support model

Page 26: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

impact analysis, busiess model, revenue forecast cost analysis critical risks product extensions and futures

development plan get requirement priorities marketing needs develop architectural concepts get clarity of requirements identify documentation and other artefacts needed take into account supporting activities e.g. QA and tech

author development

product development starts to look at after development is complete

development process based on several factors size geographic distribution product characteristics see Journey of the Software Professional for more

detail process overlaps e.g. development, alpha testing, tech doc

etc final quality assurance

measurements to allow decision of when to ship shipping decision is a collaborative activity in addition to testing QA offers

monitoring and enforcement of dev processes collecting & publishing testing metrics assist dev with rot cause analysis help support wit workarounds help support replicate customer issues support daily build process and source code support dev and design to aid testing contributing testing requirements

easy to blinded by automated tests - e.g. automated test cant assess impact of removing h/w if you have a h/w dependency

prelaunch maybe parallel to other processes

launch processes (it isn't like that)

product development may be waterfall like, that doesn't bind development process to non agile approaches

stage gated approaches doesn't equal waterfall not a lll stages are equal

augmenting the product development process successive freezing

Page 27: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

process of focussing, then stopping things becoming a moving target

requirements not stopping development - but agreeing breakpoints for

change control change management protocols

formality of allowing change control lenient = none enables proper preparation for change

recycle bin if bitten off too much - put stuff here

Crucial Product Management Concepts four Ps of marketing

product (offering) price

not correlated technical difficulty! best is when aligned with customer value perception

place (distribution channel) direct through web? through partners?

promotion (advertising and marketing) market

total available market total addressable market market segmentation

S shaped curve of adoption innovators, late majority, laggards etc can impact architecture

whole product generic product expected product augmented product potential product target product

position and positioning brand main message

role managing projects developing a product separation so that failing projectscan be pulled supporting the process of marketing MRDs - Marketing Requirements Document pricing etc big picture perspective

Software ArchitectureChapter 1

Why Architecture Matters longevity stability

Page 28: beyond software architecture  · Web view2020. 4. 25. · beyond software architecture. Martin Fowler signature series book. difference between marketecture and tarchitecture. who

degree & nature of change profitability social structure boundaries sustainable, unfair advantage

Creating an Architecture challenge of providing vs time to market

Patterns and Architecture jump start architecture draw on existing knowledge

Architectural Evolution and Maturation - Feature vs Capability Architectural Care and Feeding

Technological Currency keep with tech improvements easy to keep upto date if regularly managed could have licensing/support issues if not managed

Technical Debit pragmatism for getting a release out if not managed - then cost escalates - cost + interest if not managed can lead to need a rewrite

Known Bugs License Compliance

principles encapsulation interfaces loose coupling appropriate granularity high cohesion parameterization

aka configurability IoC

deferral don't make decision til need to good architecture limit impacts of deferral

creating architectural understanding use of architecture diags to communicate appropriate use of models avoid need to resort to code

the team ability of team to support architecture keep team small when creating architecture - benefits from highly

cohesive team grow team out from this initial core