Question for people in 'Mature enough' Orgs who actually use this advanced tech/concept....
Do you watch videos like these on your employers time? And then do you have like 5-6 other colleagues also watch the video? or perhaps book a meeting room (virtually to all watch the talk, make popcorn, etc..)
and then once its done, do you guys have a day to come back around and discuss its concepts, like a reading group (what if stuff is burning, PRs, SRE tickets, milestones? is time allocated for this stuff? is it lowest of priority to keep abreast of this knowledge) . I started reading his DDIA book and I can't fathom solidifying all those concepts without discussing them thoroughly with other engineers over at least a month or so.
Basically, curious how orgs 'ingest' these large ideas into their software eng knowledge practices, are there initiatives? etc... or are you just banking on some engineer to study this stuff on their own time at home.
In my Fortune 500 employer, we have pan-regional task forces/committees people can join for collaboration like this. I'm on the Engineering Training Taskforce in my region. We meet an hour a month to plan various events, including "Tech movie nights". Pre-COVID we'd get upper management to approve a small budget for popcorn during movie showings, etc. We also have a few (infrequent) long-running series of invited talks on a theme.
Follow-up discussion from earlier in a series is good, but you need it to not interfere with people being able to selectively attend events. Presumably, you'd want to budget some time after the video screening to discuss the just watched movie, followed by some budgeted time for discussing the previous video. If you start out with discussion of the previous video, you're going to scare off newcomers. Or, you have a Slack channel (or similar) for the series and have drawn out asynchronous discussion.
At least until you have critical mass, you need your series to be like an easy-watching low-context series with relatively self-contained episodes. Think The Simpsons instead of something that really requires investment to keep up with the context, like Game of Thrones.
Being on a taskforce/committee does take extra time and effort, but does show initiative and can get one valuable exposure/mindshare from upper management. At least in our organization, cross-team collaboration looks good at annual review time.
I read the DDIA book in my own time and have watched some of the internal Amazon tech talks mentioned above during work time with other engineers.
I think either way it’s important to realise that unless you’re superhuman you’re not really solidifying the knowledge, you’re making yourself aware of the concepts. If a use case comes up that requires it you have a better chance of recognising that and then going back and getting a deeper understanding of how to apply it.
I only absorbed a small fraction of DDIA but I still think reading it was invaluable.
I believe we retained Martin as a consultant for a time, so next level up from video watching. But: there are all of the above (organized initiatives, informal propagation, top-down edicts). But group video watching would be unusual. Typically these days there's a slack channel where it is encouraged to post things like this.
We have a dedicated slack channel and weekly meeting called AV Club - you watch the selected video on your own time and discuss at the meeting or in the chat.
It's quite easy to draw a line from org principles ("we're always learning" etc) to active participation in a CoP, so helps align incentives on a team level (we can spend time on things outside of our immediate needs) and an individual level (it's an obvious way to get performance review evidence)
I read the DDIA book in my own time and bought it myself. It probably would be possible to get these kinds of books bought by the company and read them on company time if there is some important enough thing to learn. But I never made use of it. The way I read books you can tell I read them because they have marks everywhere.
We do have initiatives to learn from each other, but the days are already filled with too much unplanned work and meetings.
There's an innovation day every 2 weeks where you work on your own projects within the company.
If it's good or a considerable effort to implement, it can become a work item after approval.
We also have tech talks to share knowledge about what you want/experienced and even industry speakers. After tech talks, a small group of interested people can form in a dedicated channel.
At Amazon there are “principal of Amazon” talks every few weeks which broadcasts to the entire company. My previous team has regularly watching party for the most popular talks of all time - they are all super useful. There are many big names among the presenters
I love the way Martin Kleppmann made his slides. Does anyone know of software that enables you to hand write slides and then present them the way he has?
Hello, Martin here :) I use the Paper app (https://wetransfer.com/paper) on an iPad, then transfer the images to a computer, do a little post-processing in Gimp and ImageMagick, and then drop the images into PowerPoint. You might be able to present directly from the Paper app, but it's more designed for drawing than for presenting.
Kleppmanns books (as this talk) references spreadsheets and the underlying programming model of Functional Reactive Programming. You essentially define a variable as a function of inputs it depends on, and it gets recalculated if any of the inputs change.
In a way it is quite a cool concept, because you can build a model that is based on some inputs and then it gets recalculated on-the-fly as the inputs change (or the model changes).
Is anyone aware of a language that supports this type of calculations in a nice way (outside of spreadsheet applications)?
Fwiw this is the core concept behind React, and it is approached in a nice way there as far as my opinion goes. I'm unclear about general purpose programming languages but seems like other comments have good suggestions
"Data flow programming paradigm" would be one term that describes the architecture for such a system. It is more general but if each node in the graph emits output only if novel input is received then one gets idempotency.
A Makefile (ie, for the "make" tool) or any of the similar build systems implement this pattern using file based data exchange (DFP graph edges) and graph nodes implemented as processes.
Do you watch videos like these on your employers time? And then do you have like 5-6 other colleagues also watch the video? or perhaps book a meeting room (virtually to all watch the talk, make popcorn, etc..)
and then once its done, do you guys have a day to come back around and discuss its concepts, like a reading group (what if stuff is burning, PRs, SRE tickets, milestones? is time allocated for this stuff? is it lowest of priority to keep abreast of this knowledge) . I started reading his DDIA book and I can't fathom solidifying all those concepts without discussing them thoroughly with other engineers over at least a month or so.
Basically, curious how orgs 'ingest' these large ideas into their software eng knowledge practices, are there initiatives? etc... or are you just banking on some engineer to study this stuff on their own time at home.