@title[What will you learn in 2018?]
#### The 2018 DevOps Porto Learning Challenge
[ Miguel Alho, DevOpsPorto Meetup, December 12th 2017 ]
Software Engineer, Freelancer, Trainer
Designer, Photographer, Media Content Producer
@fa[twitter] @MytyMyky
@fa[globe] www.miguelalho.pt
@fa[envelope] alho@miguelalho.com
Note: What I want to talk about today is Lifelong Learning.
- Part of how we tap into our own "potential" - unrealized ability
-
- initial steps require learning new skills, then practicing
- We need to have a growth mindset instead of a fixed mindset
-
- the fact that you are here represents a growth mindset
- "get better" => continuous improvement (Kaizen)
-
- personal kaizen
Note:
-
We are, after all, knowledge workers, in a demanding profession.
-
Companies are and want to move fast , and that requires skilled professionals.
-
Problem solvers
-
Being a highly skilled can bring along many advantages
-
- more enjoyable work,
-
- more fulfilling work,
-
- maybe more money as you progress.
-
We need to avoid becoming obsolete
Note:
- It's not hard;
- It's actually enjoyable and a part of the "optimal experience" (Csikszentmihalyi -Flow);
- But we are busy with everyday things and get lost in our ability to focus on aquiring new skills.
https://fityourself.club/the-5-hour-rule-to-excel-at-any-skill-55f2a635dc4b
Note:
- Google it
- I haven't found science around this (mostly observation)
-
- there is better science out there on learning and habit creation / behaviour change
- but it's believed that some are highly active in learning
- And its a great measurable thing to consider for ourselves
- deliberate learning
- READ - REFLECT - EXPERIMENT
(image credit: https://fityourself.club/the-5-hour-rule-to-excel-at-any-skill-55f2a635dc4b)
Note: Finding time is hard, not learning itself:
- 8-12 hour work days,
- comutes,
- kids to care of,
- a work-life balance to manage.
Note: So much is going on, and there is only so much we can get through. It is overwellming at least. Scary too.
Guess what?!...
---?image=assets/memes/itsatrap.jpg
Note:
- We can't really learn everything and follow along in everything.
- It's unfourtunate, => too much going on
- we won't really get anywhere if we try to ingest everything at once (Think WIP).
AND THAT IS OK!
Avoid:
-
cognitive overload, imposter syndrome, burnout
-
needs to be acknowledged and accepted.
-
This doesn't mean we should stop learning.
-
we should be moving forward and evolving, continuously.
Note:
- we know we want / need to learn to improve
- we know we have a time problem to overcome
- let's look at how we can get past that
@fa[twitter] @DevOpsPorto #ImGoingToLearn
Note:
- Get your twitter app ready and type in tha hash tag .
(hint: it's better than 0)
Note: It's like the Kanban WIP. Too much at the same time means nothing get's done.
Note:
-
Focus your searches on that topic.
-
Read and ingest enough to know about it,
-
Prepare yourself to be able to apply it and bring it into you day-to-day work.
-
Topic doesn't have to be related to current work -> prepare yourself for what is to come
-
discover new topics to move through and reduce the "unknown
- DevOps Practices
- Application Quality Enhancements
- Code Patterns
- Tools
- Value Processes
- People Skills & Personal Development
Note:
- We'll break them down into areas,
- You choose what you feel would be the most benficial to you short / mid / long term (choose one).
- If your feeling brave, choose more, but don't over do it.
- Important to get at least one.
- TDD / BDD
- CI / CD pipelines
- GIT
- Shell language
- Runbooks
Note: Baseline stuff for devops - choose one of these if they are not a part of your toolbelt yet. They are foundational
- Logging, Monitoring and business metrics capturing
- Infrastructure as code
- Feature flagging
- Deployment techniques
- DocOps
- Security (OWASP and more)
- Portmortems
- Game Day activities
- Chaos engineering
Note:
- alot is related to non-functional requirements and often "left behind"
- learn a web tech to be able to build a tolling portal
- mix feature flags and metrics capturing
- security -> have you salted?
- game day => deliberate practice
- ADRs
- Living documentation
- Consumer Driven Contracts
- DB testing
- Infrastructure Testing
- Nonfunctional validation
#0003 - Add Request Logging
##Date: 2017-02-24
##Context
Debugging calls to the server can be hard if requests and responses are not logged.
By logging every request and response we can understand if a request ever arrives
at the service and we can also monitor requests by aggregating information from the
requests and errors produced
##Decision
Add Middleware log every request and response. Response message should have
code and time.
##Consequences
* we can see every resquest made and mount monitoring dashboards on
top of that. Tracking and debuggung options are improved.https://github.com/joelparkerhenderson/architecture_decision_record
Note:
-
short text file (don't overdo it)
-
single decision per file
-
Easy to insert practice
-
Helps describe changes in a repo / architecture
-
Great help for the onboarding process
-
Functional + Non Functional
-
Context to your change history
-
ThoughtWorks radar Adopt status
-
Read Micheal Nygards stuff on this
NOTE:
- consumers write expectation
- services test valid
- what about CDCs for
- what about at the shared db layer
- non http services
- tools like Pact and Pacto help
- check out Beth Skurrie's presentations
- CQRS
- Resiliency patterns (circuit breaker)
- DB migrations
- NoSql
- Microservice patterns
- Event Sourcing
- Message queue patterns
- Reactive design
- Scalability patterns
Note:
- uService - discovery, monitoring, containerization, scheduling ...
- Resiliency - how to test at that layer
- how to test db integration layer´
- scalability at the service and infrastructure layers
(Command Query Responsability Segregation)  https://www.infoq.com/articles/cqrs_with_axon_framework
Note:
- CQS at the architectural level
- Reads and writes through different channels
- single source of truth
- event propagation on state changes
- REACT a bit like this on the UI layer
- Code Quality Analysis
- Code change trend analysis
- Linters
- Build scripting
- Package managers
- Static analysis tools
Note:
- SonarQube stores code metrics and analysis histroically
- Code-maat checks for code coupling trends and change motivation
- Event storming
- Value stream mapping
- Impact mapping
- Maturity model evaluations
- Physical software modeling technique
- Excelent for project inception phases
- Domain events and Aggregate exploration
- Helps find Bounded contexts and subdomains, too
Note:
- Sticky note based
- Low tech, low cost techinique
- everyone participates
- Maps beautifully to DDD concepts
- Check out Alberto Brandolini's work on this
- even when done poorly, It still brings in a lot of value
- Writing
- "Captains Log"
- Empathy
- Management & Leadership Skills
- Team & Communication Skills
- Learning Organizations
Note: ...but it's OK to change throughout the year (that's ok)
Note: I hear too often "I don't have the time" (I sometimes say it too) Back to the idea of making time!
- Lunch and Learn
- Group gatherings
- Book Reading Habit
- Mix activities
- Mix it into work
- YOU time (schedule it!)
NOTE: (mix and match) If you know any good ones that work for you , PLEASE DO SHARE
~ 40 hours per year of learning if you do it once a week.
(1/5th of the 5-Hour rule)
Note:
- Classic : Someone brings a theme and a short presentations, and presents at lunch hour. all you need is some projector. everyone typically needs to eat lunch
- Variation 1: Just watch a tutorial or conference presentation at lunch (in group) 0 cost, guaranteed info ingestion
- Variation 2 While having lunch, watch some tutorial or presentation
Note:
- Go To Conferences, Workshops and Meetups
- Our meetup is 2 hours of monthly-ish learning.
- Social aspect enables some interesting things in our brains
- take it a step further and organize one
Note: Challenge Adendum : Book challenge
- at least one tech book per year / semester / quarter
- fiction plus non fiction
- book group / swap
- start a company library
- free books and cheap used books
- read books on your comute
- listen to podcasts while you drive
- listen to audio books while you excercise
- watch a presentation while you cook
- toilet reading
Note: The idea is to do regular daily stuff (not cognitively expensive) with information ingestion
- Learning requires focus. You can't focus if you mix activities that require attention.
- Multitasking is expensive
- Consider only activities that do not require great attention
- consider mixing senses (amygdala is connected to the hippocampus)
- katas
- tutorials
- Q&A
- documenting and sharing learnings
- link sharing
Note: On the job, deliberately
Learn what other do by working with them, or help them acheive their goals
Note:
- a dev can work with ops on on-call duty
- a dev can automate some unautomated process
- a dev can do customer support
Volunteer for it
- Using 1-on-1s and mentoring
- Logging work and discoveries
- Learning retrospectives
- Portmortems to blamelessly learn from failure
- 20% time projects or hack-a-thons
Ultimately, YOU (may) need to schedule time for learning
Note: deliberately set the time aside (like a meeting)
Note: Like running, learning efforts can benefit from having others around you, pushing you forward and feeding from your effort. Careful, others may reduce efficiency if not focused / committed.
Note: Is your company a learing organization? Can you be the one who helps transform it into one?
- concept of learning org is more then this, obviously, but it's a step in that direction
Note: Both by law and by interest.
Lobby for your training if you are not getting it.
- get to go to workshops and conferences
- get them to buy the books
- get them to subsscribe to training sites (Lynda, Pluralsight, Mapt, Safari, Udemy...)
Note:
- You SHOULD buy books and videos
- You SHOULD go to confrences and workshops
- You should be able to afford these things... If not, something is fundamentally wrong.
Note: It solely up to you The company you work for may help, your colleagues and friends may help, but it is up to you...
thank you very much!
@fa[twitter] @MytyMyky
@fa[globe] www.miguelalho.pt
@fa[envelope] alho@miguelalho.com
---





