Airlift
- the journey -
Team
Solution
simple CRUD
multiple CRUDs
a truckload of CRUDs
app
large app
large app & indian team
multiple apps
loopback & multiple apps
loopback & multiple apps
& libs
bugs & limited support work
plan for awesome infrastructure
actual implementation
indian app integration
Lessons learned
- code -
Code is what we do
clean
readable
maintainable
pay attention
Root of (almost) all evil
copy - paste
code duplication
Pull Requests / Code review
slows you down
builds common knowledge
builds trust
enforces best practices
prevent hard to fix design flaws
pay attention when you review!!!
bad code is the reviewer's fault as well
takes time => plan
Bugs will happen
unit tests
continuos integration
manual QA
Testing
very important
too much mocking can lead to undetected bugs
tests are code
design good test cases
scenarios not coverage
don't test trivial things
make testing fun
angular directive testing => puke!
continuous integration
automated integration / UI tests
what can u say if u don't run them...
Read the requirements
read them again!
and again!
clarify the requirements
QA / BA helps (a lot!)
keep JIRA clean & searchable
bad requirements will kill you
Definition of ready
you are responsible for clarifying/contributing to the user stories' requirements together with the PO
break down the work:
parallelisable
people can work on what they want/know
better view of complexity
QA work is work as well => same rules apply
prioritise the story
priorities change
Definition of done
you are responsible of coding, testing & integrating
briefly manual QA your own code
take note of the code style
don't waste other people's time
Technology
make decisions late
don't let frameworks drive you
don't trade speed for cleanliness
don't be afraid to delete code / throw things away
must haves: build, run tests,
debug
choose the right tool for the right job
infrastructure which supports you
We don't need
that
you might never need it
you are not a psychic
investigate what are the costs of
having that
make it possible to have it
later
because you might need it!
The devil is in the details
loopback-context
continuation-local-storage & cls-mysql
async-listener (glue.js)
Lessons learned
- process -
Teammates
share knowledge
ask for help
discuss / debate solutions
share responsibility
build trust
communication => be responsive
Teammates
we are all on the same team: DEVs, QAs, PO, PM, Scrum Master, etc.
we are all in this together
be as transparent as possible =>
saves time for everybody
let others know what you are doing
signal problems as soon as possible
attitude is very important
Other teams
be as decoupled as possible!
define APIs / contracts
respect them
defend against failures
reveal them (easily)
don't create headaches by yourself
TRAX
india
Support
empower people to do their job / to investigate
DEVs control DEV environment
QA investigates as much as possible
eliminate bottlenecks
help future you
Documentation
write once vs. repeat N times
everybody contributes
"nobody reads it"
promote it
improve it
it will not replace framework knowledge
Estimations
people are depending on you
everybody has somebody to answer to
be transparent
be proactive
be realistic
subtile difference btw.:
how long will it take
you
?
how long
should
it take?
how long
will
it take?
Retrospective
identity problems
can you fix them?
yes => fix!
no => escalate
otherwise: not a problem.
Challenge the status quo
everybody likes improvements
people are afraid of change
show the benefits
Get attached
take pride in what you are doing
do it as best as possible
take ownership
Don't get (too) attached
you will be asked to do things which you think are stupid
express you opinion, politely :P
you are paid to do it, so...
Have fun!
Made with Slides.com