Tales from the jar side: Constructive loyalty, a Groovy user group talk, and the awesome #GIDS conference
Even when I don't travel, time zones are the bane of my existence
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of August 30 - September 6, 2020. This week I taught a Spring and Spring Boot course on the O’Reilly Learning Platform, gave a talk at the London Groovy and Grails User Group, and gave two presentations and a workshop at GIDS Java 2020, the Great International Developer Summit.
I also spent a fair amount of time working on my Managing Your Manager book, and realized there is a perspective I need to emphasize.
Managing Loyalty
Most working professionals are problem solvers. They dig into problems, solve them, and thereby make them go away. The difficulty is that some problems can’t be solved.
Personally, I hate that. I’ve always hated that. I want right answers, which I can deliver immediately whenever I’m asked. Maybe that’s because I come from a STEM (science/technology/engineering/math) field, or maybe it’s because I graduated from an educational system that demands right answers and penalizes anything else, or maybe I’m just built that way. Regardless, one key concept of my book is that the relationship between an employee and a manager can’t be solved. It can only be managed.
What does that mean? Conflicts between an employee and their manager are inevitable, because each is evaluated by different metrics and therefore has different incentives. Certainly there is some overlap in what you and your manager want — otherwise why work together in the first place? — but sooner or later you’ll want something your manager doesn’t, and vice versa.
If you view conflict with your manager as a problem to be solved, there are really only two solutions:
You can go along with what they tell you to do
You can leave
Unfortunately, neither of those get you what you want, which is to train your manager to keep your priorities in mind when they make decisions.
If, on the other hand, you treat the relationship with your boss as a problem to be managed rather than solved, then you have many more options and more time to guide your boss into treating you the way you want.
You can push back against decisions you don’t like, while assuring your boss that doing so is not provoking a crisis.
You can demonstrate loyalty by assuring the boss “you got this,” meaning you’ll handle whatever comes up, and let them know if you need help.
You can defend your boss to the outside world by “having their back” when problems arise.
By taking this approach (and others recommended in the book), you can play the long game, building a constructive loyalty relationship that encourages your boss to see you as a valuable asset they want to keep happy, while retaining your own self-respect.
I’m still not sure I’m saying all that correctly. I did a lot of rewriting on the first couple chapters, though, with that in mind. I’m also teaching my Managing Your Manager course on Safari again this week, so I’ll get another opportunity to try it out.
Talking Groovy 3
Something I tend to forget when scheduling talks is how much time and energy goes into preparing even the simplest of them. Back in 2018, I wrote an article for Java Magazine entitled Groovy 3: What’s Coming (note: link is to a pdf of the entire issue). At the end of July I was talking to one of the organizers of the London Java Community group to give my talk there, she mentioned that she was also organizing the London Groovy and Grails User Group, and would I be willing to give a talk there in early September?
September seemed like forever away, so I said sure. I figured I could put something together on the new features in Groovy 3. My article was based on an early beta version, and the release version has been out for a while now. I also love working with Groovy, and this seemed like a good way to support the community.
So imagine my surprise when I got an email on Aug 24 saying they wanted to confirm that I was scheduled for my talk on Sept 1.
“What talk?” is what I most definitely did NOT say. Nor did I reply, “oh yeah, maybe I should think about that.” I didn’t even say, “Groovy? That’s some kind of programming language, right?”
No, I went with the old standby, “Looking forward to it,” and dug in.
The resulting GitHub repository is here, and includes a file called Groovy_3_New_Features.pdf in case you want to see the slides. Probably the most notable thing about the presentation is that I used a new tool I’ve acquired for the Mac called Codeye, which lets me drop code samples into presentations with formatting and syntax highlighting, like this one:
Nothing terribly profound about that, and the sample doesn’t even require Groovy 3. The fib method does give me a chance to tell my one Fibonacci joke:
This year’s Fibonacci conference is going to be as good as the last two combined!
Here’s a test for the factorial calculation, showing that by using tail recursion you can compute factorials for very high numbers:
I’m a bit disappointed I couldn’t come up with anything clever that used the new features of Groovy 3, but no such luck. Mostly I reviewed the list of new features from the release notes. I did include this little script (which again doesn’t need Groovy 3, but so be it):
The script prints how many astronauts are in space at the moment:
There are 3 people in space
Chris Cassidy aboard ISS
Anatoly Ivanishin aboard ISS
Ivan Vagner aboard ISS
Not terribly profound, but it works and it doesn’t need any third-party JSON libraries to parse the response.
While there are many small changes to Groovy in version 3, the biggest differences come from the fact that Groovy now supports Java syntax for lambda expressions and method references. I showed a few examples of Java-style stream processing that looked and felt just like Java. One attendee said he was glad to see that, because his company is transitioning away from Groovy, and that would make the process easier.
Sigh. Groovy is still my favorite, but it’s just not going to win, at least not any time soon. At least I got a chance to play with it again.
GIDS Java 2020
Thursday was a weird day, mostly because of time zones. I gave two talks and a workshop this week, which were scheduled for two different days in India but were all on Thursday for me.
My talks were on Java Testing with JUnit 5 and Mockito 3, Thursday morning at 6am (yikes), Latest Java Best Practices, Thursday morning at 7am (yup, back-to-back), and then my Functional Modern Java workshop, Thursday evening from 8pm to 11:30pm.
I know it was the end of a very long day, but I had to reply:
The GIDS conferences are remarkably well run, and surprisingly well attended. I say surprisingly, because my 8pm workshop started at 5:30am in India, and I still had a pretty full room. Astonishing.
I have more talks at GIDS in November, which I’ll talk about as we get closer. My buddy and constant foil Sergio del Amo tweeted this in anticipation:
Because of course he did. My reply:
Get it? Like the “freshman 15,” the 15 pounds gained by freshmen when they go away to college any year other than this one? Funny, right?
As to whether that applies to me during our current lockdown, I refuse to answer that question on the grounds it may incriminate me, and shame on you for asking in the first place.
Follow-ups
This newsletter got referenced in September’s Java Annotated Monthly.
The entry in question is (from editor Trisha Gee):
Kotlin Cookbook in other countries, Reactive Spring, and a few random thoughts – I don’t really know which section to put this into. In this edition of his newsletter, Ken talks about async/reactive in a useful way, and also talks about how you’re not going to make any money from writing books. Thanks Ken, that totally justifies me not getting around to writing my book.
Trisha, please write your book anyway. :)
Finally, I want to thank the people that got in touch with me last week after I talked about my silly-but-annoying injury. My rotator cuff has gotten better every day since I saw the doctor, and it’s basically healed now. It cost me a few days during a week I’d planned to do a lot of writing, but it could have been a lot worse. Thanks again for reaching out.
Last week:
Two talks and a workshop at GIDS Java 2020
Spring and Spring Boot course on the O’Reilly Learning Platform
This week:
Managing Your Manager, Tuesday on the O’Reilly Learning Platform
Functional Modern Java, Wednesday, an NFJS Virtual Workshop
Presentation at the Madrid GUG, Thursday
The return of the NFJS conferences: NFJS Virtual Tour Stop #1 on Friday/Saturday