SIARHEI BARYSENKA | PRINCIPAL IOS ENGINEER | ATLASSIAN AMSTERDAM
Confluence Cloud Mobile:

An Overview
StiltSoft Atlassian Day 2019
Agenda
Team Structure
Quality
Making Decisions
Releases
Agenda
Team Structure
Quality
Making Decisions
Releases
Agenda
Team Structure
Quality
Making Decisions
Releases
Agenda
Team Structure
Quality
Making Decisions
Releases
Team Structure
>200
people in total work for Confluence Cloud
~30
people work for mobile version
4
mobile verticals
CONTENT EXP.
Deliver content
creation experience to
help users move work
forward
CONTENT EXP.
Deliver content
creation experience to
help users move work
forward
Ownership:
• create/edit/publish,
• content rendering,
• page restrictions
DISCO. & ORG.
Help users organize,
find, and discover
information from
their teams
DISCO. & ORG.
Help users organize,
find, and discover
information from
their teams
Ownership:
• search & page tree,
• Your Work & Activity
dashboards,
• space directory &
overview
COLLABORATION
Empower teams to
engage meaningfully
and move work
forward
COLLABORATION
Empower teams to
engage meaningfully
and move work
forward
Ownership:
• notifications,
• collaborative
actions (comments,
likes, and shares)
COLLABORATION
Empower teams to
engage meaningfully
and move work
forward
Ownership:
• notifications,
• collaborative
actions (comments,
likes, and shares)
BACKBONE
Propel dev
experience, velocity,
and operational
excellence
BACKBONE
Propel dev
experience, velocity,
and operational
excellence
Ownership:
• cross-cutting
services (e.g.
networking),
• auth,
• deep links
Quality
0
manual QA engineers involved
Manual QA duties are shared
across all members of the
team
PEER TESTING
PEER TESTING
PEER TESTING
“In Peer Test”
The column is used to indicate
tasks required to be tested by a
peer
PEER TESTING
“In Peer Test”
The column is used to indicate
tasks required to be tested by a
peer
Assignee
An engineer from your
vertical
Team gets together once in
two weeks before the release
to verify critical functionality
BLITZ SESSIONS
BLITZ SESSIONS
BLITZ SESSIONS
Checklist
Describes the functionality to
verify during the Blitz
BLITZ SESSIONS
Checklist
Describes the functionality to
verify during the Blitz
Failures
If functionality doesn’t work,
the bug is reported
BLITZ SESSIONS
Checklist
Describes the functionality to
verify during the Blitz
Failures
If functionality doesn’t work,
the bug is reported
Prioritization
Bugs are triaged to respective
verticals, and prioritized to
identify whether the release
should be put on hold
Company-wide investment
into the tools and practices of
automated quality control
TEST AUTOMATION
TEST AUTOMATION
TEST AUTOMATION
Unit & UI tests
Run on each pull request
TEST AUTOMATION
Unit & UI tests
Run on each pull request
End-to-end tests
Run on schedule
TEST AUTOMATION
Unit & UI tests
Run on each pull request
End-to-end tests
Run on schedule
Goal
Lower the effort of manual
testing due to constantly
increasing coverage achieved
by automated tests
Making Decisions
What if one needs to make an
engineering decision on a topic
that have multiple opinions?
MAKING DECISIONS
At Atlassian,

one would make a DACI
MAKING DECISIONS
DACI is a framework that helps
making group decisions
efficiently and effectively
DACI
What does DACI stand for?
What does DACI stand for?
Driver
A person responsible for gathering all
the necessary information and getting
a decision made by the agreed date
What does DACI stand for?
Driver
A person responsible for gathering all
the necessary information and getting
a decision made by the agreed date
Approver
A person who makes the decision
What does DACI stand for?
Contributors
They have knowledge or expertise
that may influence the decision – i.e.,
they have a voice, but no vote
Driver
A person responsible for gathering all
the necessary information and getting
a decision made by the agreed date
Approver
A person who makes the decision
What does DACI stand for?
Contributors
They have knowledge or expertise
that may influence the decision – i.e.,
they have a voice, but no vote
Informed
They are informed of the final decision
Driver
A person responsible for gathering all
the necessary information and getting
a decision made by the agreed date
Approver
A person who makes the decision
An example of DACI
DACI persons
Group of people relevant to
this decision
Status
Current status of DACI,

and a place to eventually
state which option you go
with
Due date
The deadline for making the
decision
Recommendations
Opinions from your contributors
Background
The reasons this decision is
required
Current state
Where you're at right now
Supporting data
The research you've done to
inform your decision
Options considered
A table with a column for each
option where you can
summarise pros n' cons, risks,
trade-offs, estimated cost or
effort, etc
References
A list of links out to reference
material, along with a brief
description of why it's relevant
Discussion
A place to discuss things and
share concerns
More information:
https://www.atlassian.com/
team-playbook/plays/daci
DACI
Releases
Ship new features safely,
without causing customer pain
through unexpected outcomes
FEATURE FLAGS
FEATURE FLAGS
FEATURE FLAGS
Phased roll-outs
Allows to ship features to the
smaller audiences and identify
issues earlier
FEATURE FLAGS
Phased roll-outs
Allows to ship features to the
smaller audiences and identify
issues earlier
Easy roll-backs
If something goes out of plan,
it’s easy to turn off the feature
Engineers are involved into the
on-call rotation to help
resolving production issues
INCIDENT RESOLUTION
On-call responsibilities
On-call responsibilities
Identify severity
On-call responsibilities
Identify severity Disable phased roll-out
On-call responsibilities
Investigate & fix the issue
Identify severity Disable phased roll-out
On-call responsibilities
Investigate & fix the issue Submit a new build
Identify severity Disable phased roll-out
SIARHEI BARYSENKA | PRINCIPAL IOS ENGINEER | ATLASSIAN AMSTERDAM
Thank you!
StiltSoft Atlassian Day 2019
Confluence Cloud Mobile

Confluence Cloud Mobile