Eventually, a famous Java conference came to Prague. After planning to travel to Krakow some time, it was suddenly to be here at my finger tips. As a fresh freelancer, not yet fixed to any long-term project, I decided to invest the money to inhale the atmosphere of a big conference and enjoy presence of all the people interested in Java and all the tech stack around it. So here I was to see and listen to Neal Ford - the one from ThoughtWorks, so adored for their Radar. I came alone, as freelancers often tend to, expecting to meet some familiar faces from my previous jobs. What followed was much beyond my expectations, as so many of them started suddenly popping up. Great feeling to meet so many pleasant people after 2 years spent away from Prague.
"So this is the water!" - I told to myself while Neal was talking about continuous delivery, acceptance tests and all the supportive things aiding in software development, wiring together the effort of developers, testers, operations and project managers. Warm feeling rose even higher when the very book I'm currently reading appeared on one of Neal's slides. He hit the nail again, when he stated that meta-work is more fun than real work. And it is often not productive at all, when the fun is not guided well. Damn, that is so true. Even though claiming to seek improvement in my daily work, the biggest power to drive me into my pet projects is the desire to do fun stuff to complement boring daily work. Boy, that's a relief that I'm not the only one having problems with lack of fun! But then, banks are not ACID? Again, not ACID?? Then, how the hell can I be sure to get my salary on my account at the end of the day? Wait, banks are running auditing jobs after working hours to put everything in order. ACID is slow and inefficient in real world. Eventual consistency is enough in most cases. But remember to schedule the auditing jobs, guys, just in case. Immutable database - an oxymoron, sure? No, Datomic is here to keep track of all the past changes. The SQL is dead, long live NoSQL! :) Jokes aside, now I seriously started thinking that some NoSQL solutions have really something to offer. Read NoSQL distilled if you want to know more...
Some more insights from Day 1:
"Customers want consistency. But when they find out what would they lose to get it, they tend to sacrifice consistency without a doubt." (see also CAP theorem)
- Neal Ford
"Architecture of software projects tends to resemble structure of the organization" (Conway's Law)
"Design enough, early enough"
"Don't document things evident from the code"
"Keep a decision log to remember reasons for past decisions"
- Janne Sinivirta
"Many companies want to be agile, but do not realize what definitely is NOT agile"
- Katarzyna Mrowca
Afterwards, some home-baked cookies from Czech speakers - perfcake is an interesting tool to monitor throughput, memory consumption and other performance characteristics. It comes with some nice additional features like CSV reports and warm-up detection. Finally, I was looking forward to assertThat(I). understandUnitTesting(). On top of that, I've learned how NOT to write unit tests, which may be even more helpful. I've also found out that TestNG is good, because "it is much better". Maybe true, maybe not, I would suggest to the speaker to add more reasoning to be more convincing.
However, what certainly is true, is that I enjoyed the day and even more interesting sessions were to come the day after. I took a donut on my way home and headed to the train station filled with joyful emotions.