Software Development Model for Product feature delivery
master
master
v
0.0.0
Software Development Model for Product feature delivery
Dynamic and iterative approach to delivering product features in a rapid and flexible manner
Info
Context views
Container views
Component views
Dependencies
Decisions
Align and Understand Product Requirements
All Components
Behavior-Driven Development
Extreme Programming
Lean Product Development
Software Architecture and Domain-Driven Design
<size:24>All components and relationships</size> <size:24>Every component across all focus areas</size>
All components and relationships
Every component across all focus areas
Software Development Model for Product feature delivery
[system]
Software Architecture and Domain-Driven Design
[container]
Extreme Programming
[container]
Lean Product Development
[container]
Align and Understand Product Requirements
[container]
Behavior-Driven Development
[container]
Strategic
Architecture
[Core
Domain
Charts,
Context
Maps,
etc]
Decompose
a
large
problem
domain
into
cohesive
modules,
so
that
we
can
identify
strategically
significant
parts
of
the
domain
Software
Design
[Bounded
Context
Canvas,
Aggregate
Design
Canvas,
C4
model,
etc]
Document
Bounded
Contexts,
from
naming
to
responsibilities
alongside
its
public
interface
and
dependencies
Code
the
Domain
Model
[Services,
Repositories,
Events,
etc]
Code
the
Domain
Model
applying
Tactical
Patterns
-
a
set
of
building
blocks
to
structure
the
implementation
of
the
model
Pair
Programming
[Ensemble,
Mob
Programming]
Developers
work
together
in
pairs
and
as
a
group,
reviewing
the
code
in
real-time
and
improving
the
design
continuously
Test-Driven
Development
[JUnit,
etc]
Lower-level
examples
of
the
behavior
of
internal
system
components
Continuous
Integration
[Jenkins,
Github
Actions,
etc]
Automated
build
scripts
are
used
to
run
tests
and
provide
immediate
feedback
to
developers
about
the
status
of
their
code
changes
Informative
Workspaces
[Scrum
and
Kanban
boards,
DORA/SAFE
metrics
etc]
Project
progress
and
potential
issues
are
visible
to
all
team
members
with
informative
workspaces
Short
Iterations
[one
to
two
week
development
cycles]
Short
development
cycles
deliver
incremental
value
and
enable
continuous
learning
about
the
product
Knowledge
Base
[Google
Drive,
Confluence,
Javadoc]
Centralized
repository
of
information
and
best
practices
that
the
team
can
refer
to
for
guidance,
problem-solving,
and
knowledge
sharing
Customer
Feedback
[customer
satisfaction
surveys,
gather
customer
insights,
etc]
Continuously
collect
customer
feedback
and
use
it
to
refine
and
enhance
the
design
of
products
and
features
Product
Brief
[Opportunity
Canvas,
Slideck,
etc]
Short
product
or
feature
brief
to
frame
and
constrain
the
project
Domain
Discovery
[User
Story
Map,
Event
Storming,
etc]
Map
the
Big
Picture
by
describing
the
User
journey
through
the
Product
telling
a
story
from
the
perspective
of
the
end
user
Product
Backlog
[Jira,
Trello,
etc]
Prioritised
list
of
User
Stories
that
need
to
be
completed
or
addressed
during
the
project
Specification
Workshop
[Example
Mapping]
Concrete
rules
and
examples
help
us
explore
the
problem
domain
to
clarify
and
confirm
the
acceptance
criteria
Features
[Gherkin]
Group
of
related
scenarios
that
demostrates
how
a
feature
works
Acceptance
Tests
[Cucumber]
Executable
specifications
that
verify
the
behavior
of
the
system
against
its
requirements
Domain
Expert
Product
Team
member
who
owns
and
drives
the
product
vision
Software
Engineer
Development
Team
member
delivering
high-quality
software
efficiently
and
iteratively
presents
Product
Feature
obtains
domain
knowledge
spread
domain
knowledge
creates
collaborative
requirement
specification
problem
decomposition
formulate
automate
guides
code
implementation
collaborative
modelling
apply
tactical
patterns
guides
code
implementation
write
just
enough
code
push
code
to
version
control
deliver
product
increment
visualize
progress
on
updates
gathers
All components and relationships
Every component across all focus areas
<size:24>All components and relationships</size> <size:24>Every component across all focus areas</size>
All components and relationships
Every component across all focus areas
Software Development Model for Product feature delivery
[system]
Software Architecture and Domain-Driven Design
[container]
Extreme Programming
[container]
Lean Product Development
[container]
Align and Understand Product Requirements
[container]
Behavior-Driven Development
[container]
Strategic
Architecture
[Core
Domain
Charts,
Context
Maps,
etc]
Decompose
a
large
problem
domain
into
cohesive
modules,
so
that
we
can
identify
strategically
significant
parts
of
the
domain
Software
Design
[Bounded
Context
Canvas,
Aggregate
Design
Canvas,
C4
model,
etc]
Document
Bounded
Contexts,
from
naming
to
responsibilities
alongside
its
public
interface
and
dependencies
Code
the
Domain
Model
[Services,
Repositories,
Events,
etc]
Code
the
Domain
Model
applying
Tactical
Patterns
-
a
set
of
building
blocks
to
structure
the
implementation
of
the
model
Pair
Programming
[Ensemble,
Mob
Programming]
Developers
work
together
in
pairs
and
as
a
group,
reviewing
the
code
in
real-time
and
improving
the
design
continuously
Test-Driven
Development
[JUnit,
etc]
Lower-level
examples
of
the
behavior
of
internal
system
components
Continuous
Integration
[Jenkins,
Github
Actions,
etc]
Automated
build
scripts
are
used
to
run
tests
and
provide
immediate
feedback
to
developers
about
the
status
of
their
code
changes
Informative
Workspaces
[Scrum
and
Kanban
boards,
DORA/SAFE
metrics
etc]
Project
progress
and
potential
issues
are
visible
to
all
team
members
with
informative
workspaces
Short
Iterations
[one
to
two
week
development
cycles]
Short
development
cycles
deliver
incremental
value
and
enable
continuous
learning
about
the
product
Knowledge
Base
[Google
Drive,
Confluence,
Javadoc]
Centralized
repository
of
information
and
best
practices
that
the
team
can
refer
to
for
guidance,
problem-solving,
and
knowledge
sharing
Customer
Feedback
[customer
satisfaction
surveys,
gather
customer
insights,
etc]
Continuously
collect
customer
feedback
and
use
it
to
refine
and
enhance
the
design
of
products
and
features
Product
Brief
[Opportunity
Canvas,
Slideck,
etc]
Short
product
or
feature
brief
to
frame
and
constrain
the
project
Domain
Discovery
[User
Story
Map,
Event
Storming,
etc]
Map
the
Big
Picture
by
describing
the
User
journey
through
the
Product
telling
a
story
from
the
perspective
of
the
end
user
Product
Backlog
[Jira,
Trello,
etc]
Prioritised
list
of
User
Stories
that
need
to
be
completed
or
addressed
during
the
project
Specification
Workshop
[Example
Mapping]
Concrete
rules
and
examples
help
us
explore
the
problem
domain
to
clarify
and
confirm
the
acceptance
criteria
Features
[Gherkin]
Group
of
related
scenarios
that
demostrates
how
a
feature
works
Acceptance
Tests
[Cucumber]
Executable
specifications
that
verify
the
behavior
of
the
system
against
its
requirements
Domain
Expert
Product
Team
member
who
owns
and
drives
the
product
vision
Software
Engineer
Development
Team
member
delivering
high-quality
software
efficiently
and
iteratively
presents
Product
Feature
obtains
domain
knowledge
spread
domain
knowledge
creates
collaborative
requirement
specification
problem
decomposition
formulate
automate
guides
code
implementation
collaborative
modelling
apply
tactical
patterns
guides
code
implementation
write
just
enough
code
push
code
to
version
control
deliver
product
increment
visualize
progress
on
updates
gathers
All components and relationships [
svg
|
png
|
puml
]