What time is it? It's Devoxx time! [Day 1]
And there goes the conference. In this series I'll try to summarize what happened at Devoxx Poland 2016, what interesting things one could learn and also a few subjective opinions about panels.
This years Devoxx Poland took place on 22th to 24 of July at ICE Congress Centre in Cracow.
Why does Yesterday's Best Practice Become Tomorrow's Antipattern?
Neal Ford - ThoughtWorks
Blazingly fast keynote by Neal Ford. His keynotes, as he says, are designed to be entertaining to a more diverse audience. This one was no exception. Speaker rushed through some historical antipatterns and their impact on later solutions, for example Continuous Integration was seen as a bad idea since integration phase was associated with tedious and painful process. Neal hasn't stopped on this case and mentioned recent drama with Leftpad what summarized with his ThoughtWorks colleague's quote:
Dependency management will be our "Goto Considered Harmfil" moment
As we are on quotes, one of the reason of antipatterns' birth speaker portrayed with George Santayana's words:
Those who cannot remember the past are condemned to repeat it.
Transpiling, a technique commonly used in javascripty forntends is nothing more than code generation, for decades found as an antipattern.
EDIT: I've got pointed out that code generation isn't necessary an antipattern but this thought is about reinventing the wheel. Well I could have gotten it wrong (or I just don't like generated code very much).
No presentation can miss Conway's Law, rubbing developers' noses in the dirt for looking for excitement in their work and reminding that we should favor libraries over frameworks. Neal quoted another law (his own?), Dietzler's Law. Year 2016 and nothing about microservices? Of course not! At this occasion Neal mentioned evolutionary architecture which was the topic of this second appearance.
Generally speaking this keynote was just a taste of things we would experience during following three days of Devoxx. It was great performance due to Neal Ford's great lecturing skills. If you have an opportunity to listen to one of his lectures, you should.
The Good Monolith
Łukasz Szydło - Bottega IT Solutions
You can create applications that aren't microservices? Cannot be! How?! Well, you just design them as microservices but deploy as monolith. Or that's what we have been told by Łukasz Szydło who compared monolithic systems to sky scrapers and microservice ones to a town consisted of smaller buildings. Good monoliths should be this town but under a dome. Speaker mentioned Domain Driven Design (like almost everyone at this conference) and Entities with Bounded Context. He also stressed out problem with overloaded models where the same objects are used in varying contexts. For example a human is a sophisticated being but in a swimming pool he's a swimmer, at the shooting range he's a gunman, etc.
As Łukasz said, an advantage of good monolith in in comparison to microservices is lower complexity, mainly in communication and transport. Also if, in the future, you decide to move to microservice architecture it would be easier to adapt those loosely coupled components than rewrite everything from scratch.
This presentation wasn't overloaded with information, a huge change after the previous one. You could check your mailbox and easily follow the topic.
Hotspot & AOT
Dmitry Chuyko - Oracle
What is AOT and why should I care. Dimitry showed new Oracle's experiments with Java compiler. Shortly explained what Hotspot VM has hidden underneath the surface of Java and what's the difference between GraalVM - the new Java compiler written in Java. Good side of AOT is that unlike JIT it doesn't require runtime resources and we receive predictable performance. Dmitry had weak slided, in most cases I could do without them as they weren't very informative. It's a shame that presenter's rhetorical skills were rather poor.
Successful startup is NOT enough. You must scale technology to ENTERPRISE while maintaining your startup creativity.
Marek Grochowski, Cezary Zminkowski - Sabre
Sabre's sponsor panel. Probably the worst one I've seen on this conference. Gentlemen spoke about their product, TripCase, and it's road to glory. It was developed for about 5 years but business success achieved just last year. Wait a minute! Isn't this supposed to be a lecture about startup success? Well, I learner that 90% of startups fail because they are just bad at startuping. How to do it well? For starters you should have a perfect architecture, estimate theoretical complexity of algorithms monitorloganalyzetrendsblahblablahblaa.
Antifragile Architectures
Matt Stine - Pivotal
If something is fragile and breaks under stress than antifragile, in the same situation, should grow in strength. Moreover, antifragile wither when not subjected to constant stress.
Thats how Matt Stine described antifragile in his lecture. He thinks that software have to be antifragile in order to withstand constant change and that change is a must according to Lehman's Law. In Matt's opinion systems should be failsafe and autodiagnostic. As an example he mentioned Netflix and their set of tools, Hystrix and Simian Army, which allow those traits. He stressed the role of Chaos Monkey as defect injection forces to constantly think about defects and their prevention. I quite liked this lecture but philosophical reflections about ultrabig systems was a little bit too much for me.
JVM Dive for mere mortals
Jakub Kubrynski - Devskiller
JVM is just an application
Jakub showes JVM as a regular application which you can learn and understand (especially when you can read the source code :)). He also walked through Java code life cycle, from code, bytecode, JIT, finishing on native code. Speaker also discussed few optimization techniques used in JIT pointing out usefulness of this knowledge. In short when you are aware of such processes you can predict what optimizations can occur and don't optimize prematurely by yourself. Solid and pleasant talk.
How to survive and thrive in a BigCo
Michael Coté - Pivotal
We are garbage men, not cowboys but without cowboys world wouldn't be as bad as one without garbage men.
That was just a random thought from the last lecture of day one, how to survive in a corporation. Michaels first advice was to find yourself a mentor who can help you find your place in a company. However if you are not satisfied as a code monkey you have to find a champion who can introduce into educative projects.
Speaker also advise not to take a lot of additional work, out of your responsibilities. There are homework vampires lurking for you. Apparently if you ask them for some involvement, like introduction into their task or picking just the slides directly related to their request you can recognize those vampires. If requester is willing to spend their time for you, they probably mean no harm.
Michael also raised a topic of introducing changes in a corporate cogs noting that it's not an easy task. It requires great effort in order to fix enormous company. Probably the best idea is to go into hiding with your new projects and don't reveal yourself until you achieve some success.
Apart from few tips about creating slides which are foundations of every corporation, Michael summarized his appearance in two statements (more or less):
The biggest competition is status quo
As a corporate rat I can't agree more with those remarks :)Work as little as you can
Nice wall of text we have here. Yet I think it was the most informative day of the conference and I promise that next ones will be shorter.