Open jordgubben opened 6 years ago
Hi Jakob,
Thanks a lot for your suggestion for making this course great.
What all junior developers, and arguably also a lot of otherwise senior developers, all struggle with is what to test and why That's a good point. I wonder whether this is something for a previous course, such as software engineering fundamentals or introduction to testing.
--Martin
The sooner you can get them stared thinking this way the better.
Perhaps even introducing TDD as a concept without JUnit, using only System.out.println()
and Object.equals()
as a "testing framework" in the beginning.
The sooner you can get them stared thinking this way the better. 100% agree.
Devops-team habits:
Each organisation has a culture. A team has its own way of working within a larger organisation. Even if there are formal process descriptions, written rules and guidelines, I believe the team's own habits affects the result much more than anything else. It is, in a sense, a shared memory of how things are done. Especially if the team members are co-located and a bit isolated/protected from the rest of the organisation. The question is: how to identify and develop the right habits in a devops team?
Litterature suggestion: "The power of habit - Why we do what we do in life and business" by Charles Duhigg.
The Amazing DevOps Transformation Of The HP LaserJet Firmware Team https://itrevolution.com/the-amazing-devops-transformation-of-the-hp-laserjet-firmware-team-gary-gruver/
Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339?SubscriptionId=AKIAILSHYYTFIVPWUY6Q&tag=duckduckgo-d-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=1942788339
Why are many business instilling a DevOps culture into their organization? https://arxiv.org/abs/2005.10388
Why site reliability is so important, a codeNewbie podcast https://www.codenewbie.org/podcast/why-site-reliability-is-so-important
Operational Excellence in April Fools' Pranks, Thomas A. Limoncelli, Comm. of the ACM (2018)
DevOps Education: An Interview Study of Challenges and Recommendations. http://arxiv.org/abs/2203.10324
receipt printer for GitHub issues https://aschmelyun.com/blog/i-built-a-receipt-printer-for-github-issues/
A Cross-Company Ethnographic Study on Software Teams for DevOps and Microservices: Organization, Benefits, and Issues https://arxiv.org/pdf/2205.01446
Rickroll bot for discord https://top.gg/bot/773915608965447743
Rickroll Teams meetings https://github.com/sambetts/poc-bots/tree/main/RickrollBot
Long Live Software Easter Eggs! https://queue.acm.org/detail.cfm?id=3534857
STRUDEL lab https://cmustrudel.github.io/research/
A Code of Conduct for Open Source Communities https://www.contributor-covenant.org/
Trusting Trust: Humans in the Software Supply Chain Loop https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9888996
goin' to production https://youtu.be/NaR8WlLtPw0
Ops teams are pets, not cattle https://stackoverflow.blog/2023/04/19/ops-teams-are-pets-not-cattle/?cb=1
Awesome hilarious github repositories https://github.com/terremoth/awesome-hilarious-repos
DexEx
DevEx (developer experience) is garnering increased attention at many software organizations as leaders seek to optimize software delivery. ..there is acceptance among technical leaders that good developer experience enables more effective software delivery and developer happiness.
DevEx in Action http://queue.acm.org/detail.cfm?ref=rss&id=3639443
Wikipedia references:
The 'Three Amigos' is perhaps more technique then technology and thus it's easy to miss. The gist of it is that three people representing Business, Development and Testing sit down together to discuss a feature. Together they outline a list of acceptance criteria that should all be proven true by automated tests before the feature can be considered implemented.
https://www.agilealliance.org/glossary/three-amigos/ https://www.agilealliance.org/glossary/atdd/
My personal experience with coaching newly graduated developers it that they grasp new software at blazing speeds. This is as true for testing as it is for every other tool. If they didn't know JUnit/Hamcrest/Mockito (or the equivalent) before showing up, then they'll have picked it up within a month or so.
The problem of applying TDD has little to do with tooling. What all junior developers, and arguably also a lot of otherwise senior developers, all struggle with is what to test and why; how to test and what tools to use is less of a problem. Role-playing with the 'Three Amigos' and listing requirements should help them think critically about software using perspectives that they will otherwise lack.