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!
hive-lessons-learned
By Horia Radu
hive-lessons-learned
- 311