Software Engineering Cheat Sheet
Software Engineering Cheat Sheet
Prototype pattern
(type of creational
design pattern) can
be used to clone
an object – e.g. in
the development
A general, reusable • Can be transformed directly
of an online game,
solution (i.e. formalised into source or machine code
prototype pattern
Software best practices) to a • Not a finished design Click to view can be used to
design commonly occurring illustration
• 3 key types: creational, replicate the layout
patterns problem within a
structural & behavioural of the maze map
given context in
and allow tweaking
software design
of the objects
within (e.g.
objects e.g. doors,
rooms, passages)
for different
game stages
Throttling is
• Used to allow a service to often used on
maintain a steady pace or Black Friday by
A design pattern in which
slow down rate of traffic eCommerce
a throttle is placed in
when e.g. process multiple Click to view sites to continue
front of a target service
Throttling
or process to control the
customer requests, counter illustration functioning and
denial-of-service attacks, meet any service
rate at which data flow
control infrastructure level agreements
into the target
expenses by enforcing rates in place in
of usage response to surge
in demand
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example
A firm uses
a third-party
A design pattern in which • Used to check the weather API for its
the number of recent availability of an external intranet and the
operation failures are service, detect failures API is experiencing
monitored, then this and prevent them from outage. The
Circuit Click to view
information is used to happening constantly circuit breaker
breaker illustration
decide whether to allow will return ‘Service
• Mimics the states of an
the operation to proceed Unavailable’ on the
electric circuit breaker
or immediately return intranet, or even
an exception switch to another
functioning third-
party weather API
By moving from a
waterfall delivery
model to a
DevOps approach
(e.g. organising
A set of practices that squads around
combines software • Complementary with Agile value, moving
development and IT software development to continuous
operations, aiming • Benefits include improved Click to view planning and a
DevOps to shorten system deployment frequency, single backlog of
illustration
development life cycle faster time to market, and work), Nordstrom
and provide continuous lower failure rate of saw its bugs
delivery with high new releases decrease and
software quality throughput
increase, and
increased its
releases from
twice per year
to monthly
• Focuses on measuring
reliability, responding to
unreliability, and reducing SRE is adopted
A discipline that risky & manual work by large web
incorporates aspects of
• Also a work model that companies that
Site reliability software engineering and Click to view
can either be executed by require reliability
engineering applies that to operations illustration
internal teams or provided as they scale,
(SRE) whose goals are to create
within an as-a-service model including Google,
ultra-scalable and highly
• Helps gain greater visibility Dropbox, Airbnb
reliable software systems
into service health, quantify and Netflix
cost of downtime, optimise
incident response, and more
• E.g. 99.9%
A means of measuring • It is the individual promises of APIs will
the performance of to customers of what to respond
the Service Provider expect, and goals that the within 3s
Service level
and are outlined as IT & DevOps teams need to Click to view
objective • E.g. Application
(SLO)
a way of avoiding achieve illustration will be available
disputes between the
• Forms the basis of SLA 99.9% of
two parties based on
the time
misunderstanding
A firm to looking to
use Google’s Cloud
Part of a contract which Storage Services
defines exactly what signs a Cloud
Service level Click to view
services a service provider • A set of SLOs with-generally Storage SLA to
agreement illustration
will provide and the financial consequences ensure it receives
(SLA)
required level or standard the SLOs outlines
for those services or is eligible to
receive pre-agreed
financial credits
A framework that
• Pyramid structure to
groups software tests Agile teams should
indicate quantity of each
into buckets of different use the Testing
type of test (from bottom to Click to view
Test pyramid granularity. Also gives an Pyramid as a guide
idea of how many tests
top – unit tests, integration illustration to streamline the
tests, system tests, function,
should be in each of these testing process
UAT, UI tests)
groups.
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example
Software development
process relying on • Consists of developers only By implementing
software requirements and is performed in cycles TDD, ING’s
being converted to test
• Leverages test first and Financing Invoices
Test-driven cases before software Click to view
automation project was able
development is fully developed, and illustration
• Benefits include faster time to reduce number
(TDD) tracking all software
to market, higher code of errors, shorten
development by
quality, detailed project delivery cycle and
repeatedly testing the
documentation, and more lower costs by 20%
software against all
test cases
Phases include:
1. Requirements gathering
2. Software design
Software The phases of work Click to view Software
3. Software development
development involved in producing illustration Development Cycle
cycle software applications 4. Test & integration in more detail
5. Deployment
6. Operationalisation &
maintenance
British Telecom’s
move from
Waterfall
• Typically involves product methodology
A framework utilising owner, scrum master, to Scrum (+ XP)
an agile mindset for dev team enabled it to
developing, delivering,
Scrum and sustaining complex
• Artefacts include product Click to view shorten delivery
backlog, sprint backlog etc. illustration cycle from 12
products, with an initial
• 3 pillars of Scrum: months to 90 days,
emphasis on software
transparency, focus on user
development
inspection, adaption stories that drive
business value
and improved
developer morale.
Description Real world
Term Concept Illustration Relevance to Ki
/Analogy Example
3 main frameworks:
A number of scaling agile • Scaled Agile Framework
frameworks that look (SAFe) Click to view
Scaled See examples for
to solve the problems
frameworks • Large-scale Scrum (LESS) illustration SAFe, LeSS & DAD
associated with agility
at scale • Disciplined Agile Delivery
(DAD)
Cisco’s
Subscription
• Ensures delivery focuses on Billing Platform
the ‘highest value’ work used to follow
the Waterfall
• Sustains and drives faster
methodology,
A framework for time-to-market, dramatic
but switching to
scaling Agile across the increases in productivity and
SAFe enabled it
enterprise, devolving quality, and improvement in
Scaled Agile Click to view to release often
authority to the team employee engagement
Framework illustration and introduce
level whilst retaining • Advocates regular shared
(SAFe) continuous
oversight and influence planning - programme integration,
from the portfolio and increment (PI) every 12 resulting in 40%
programme levels weeks bring the entire decrease in critical
workforce together to align and major defects,
on vision and plan for the no more overtime
next quarter and product
increment is
delivered on time
• Promotes a tactical
approach to scaling
vs wholescale agile A London FinTech
transformation company that
A people-first and
• Promotes the need to adopted the
learning-oriented
consider context over any DAD Framework
Disciplined Agile software delivery
fits all method - requires Click to view increased project
Agile Delivery framework that provides
definition of own custom illustration releases per
(DAD) context-specific
implementation approach month from an
guidance and suits
• It is a hybrid model, which average of 0.25 to
enterprise needs
is formed by a collection of 12.3 and reduced
Lean-Agile methods such as developer turnover
Scrum, Kanban, XP,
and more
• Close to the
system (C,
Go, C++)
• There is no gold standard
A formal language language - choice of • Object-oriented
comprising a set of strings language depends on fit for Click to view (Java, Python)
Programming
that produce various the problem and fit for the illustration • Functional
language
kinds of machine organisation not just in the programming
code output short term but in the (Scala)
long term
• Scripting
(Python,
JavaScript)