Code Garden is Umbraco's largest community gathering, held annually near Umbraco HQ in Odense. Code Garden is several days filled with talks about various topics related to Umbraco, networking, fun activities and good food, all organized by Umbraco. I had the privilege to attend for my first time this year and on top of that, I was granted the title of "first-time Umbraco MVP"! In this post, I'll be sharing my experience.
⚠️ This post is based on opinion |
---|
This blog is merely my personal experience of the event and this article does not contain any objective truths. Anything I write in this article is based on my own views and expectations. |
In short
This event was an experience I didn't want to miss. Although talks were 50/50 and "networking" gave me anxiety, I had a great experience in Odense overall and I'm happy that I attended.
Umbraco MVP
One of my personal highlights of the whole event: I am now Umbraco MVP! Being an Umbraco MVP is a recognition for the contributions that one makes to the community of Umbraco. It's awarded to people who are especially helpful to members of the community and who make the community an even better place than it already is. The note that I got was as follows:
"The work you have undertaken to produce your blog posts, to help others in our wonderful community is so great to see. This along with your code contributions and package development and collaboration helps to make Umbraco and our community an even better place to be"
It's honestly flattering that my contributions are noticed and appreciated and it gives me more motivation to continue contributing.
The talks
I've attended a variety of talks: some more technical, others more inspirational. It's sometimes hard to judge how useful these talks are, based on their summary in the schedule. The talks about the new, upcoming, backoffice and the headless api were in my opinion among the most interesting. I've also seen a few talks that I found very underwhelming. Mainly the inspirational-personal-experience talks did not meet my expectations. It's a hit-or-miss with these talks: If you don't relate to the situation, you won't relate to the resolution. One exception was the talk "From Headless to Fully Disconnected". As a technically oriented person, I felt really inspired by the new perspective that the presenters gave and I was very impressed by their innovative ideas.
On the other hand, some technical talks were rather underwhelming as well. We hear a buzz word like "composable DXP" and are fed the impression that there is some innovative plug-and-play approach to software infrastructure, only to listen to a talk that can be summarized with: "Did you know you can connect to 3rd party systems?". It's not the first time that I go into a technical talk, expecting a deep dive into the difficult issues, but only getting surface level information that I consider common knowledge.
EDIT: Thanks to @hfloyd for commenting on this article and giving more details. I understand now that the goal of their talk was not to dive into the technical aspects of composability, but more to reassure us that "we're already doing it" among other things. It was my expectation that there was something revolutionary out there that I'm missing out on, but the whole point was that that is NOT the case. Understanding that, I now see much more value in this talk. Thanks again to Heather for taking the time to explain, you're awesome! 😊
That being said, I've seen some very awesome technical talks as well. Umbraco workflow is looking amazing and the new backoffice has an awesome new model that I really look forward to. It was also a big eye opener to watch as Matt Brailsford turned a simple website into a fully functional e-commerce platform in 30 minutes. Seeing how photoshop could be integrated into Umbraco was absolutely delightful.
The organization
The organization was great! There was always water available at all the venues, as well as various snacks, fruits, coffee and more. With good lunch and dinner every day, we could be sure that we wouldn't get hungry or thirsty.
The schedule was very easy to find, either on the website or in the app. The app provided notifications for all major events so you always knew when to move. But only if you have internet everywhere you go, which I don't, but that's a me-problem.
The various activities and talks were nicely spread throughout the day, with good time in-between to make friends and connect.
Networking
I'll be honest: I am properly incapable of networking. Hearing "Go make friends!" was a mild nightmare for me. During the empty times in-between activities, I find myself standing amongst all these people, walking past me left and right. I feel a social expectation to talk to them while also not knowing how to approach anyone or keep a conversation flowing and that really pressed on me. Throughout these times I felt a strong desire to find a spot to hide myself until a new activity started. This probably could've been avoided if I had applied during the uBuddy program, which was specifically introduced for people like me, so I could've been taken along with somebody and be pulled into more conversations. I'll likely apply for that next time and see if it gets any better.
That didn't stop other people from approaching me though! Most of the people who I wanted to speak with have approached me: I shook hands with Jason Elkin and we exchanged a quick word, I've had some chats with Ronald from the package team, I've also quickly met Carl Sargunar, Huw Reddick and Bolette Kern (I think?). I said hi to Callum, although I'm not sure if he said hi back or not. I've also had a nice conversation with Alexander Fjellvang, who I've given a little hand before with a package that he was developing. So I've definitely met some cool people at Code Garden. Perhaps next time I'll have the courage and be able to shake hands with Callum, meet Kevin Jump and Matthew Wise, because they're all people who I've seen online in various forms, but would like to actually interact with in person.
It was also very nice that Paul Seal still recognized me from DUUG.
The activities
The Umbraco awards were nice, I've watched UmbraCoffee live and thursday evening was insanity. Because I was busy hiding before the thursday evening program, I was 1 minute too late and the event had already started. I couldn't find my coworker who had reserved a place for me, so I had to stand on the side, only to stand awfully in the way of the olympic flame that passed right in front of me. Eventually I found a moment to sneak through the crowd and I found my spot. I've watched the most insane game of Jenga and it was absolute chaos for the whole evening and I loved that.
What I look forward to
I think I'm quite critical about the talks, but that's because in my opinion there are a lot of surface-level talks that don't dive into the really relevant matter. At DUUG I attended a talk about security, only to hear common knowledge: "make sure to configure security headers". Where is the "I made my whole Umbraco site CSP compliant, here's how"? This is also how I felt about the whole "composable DXP" thing. I am left with questions: How do we describe composable architecture and how has this helped in practice? Is composable architecture still a monolith or is it microservices or something in the middle? What does it take to turn my little content website with connection to an HRMS into a "composable DXP"? Maybe I'll find an answer in future talks.
I hope that next time I can find a better place to calm down if I have to. I've found my social energy depleted on multiple occasions and not finding a good space to restore it, other than my hotel room, which was a 21 minute walk away from the venue. I've been very exhausted.
Will I go again next year?
I'm not sure. If I go again, I definitely need to apply to the uBuddy program.
That's all I wanted to share. A big thanks to Umbraco for hosting this event and to all the wonderful people who were attending. Thank you for reading and I'll see you in my next blog! 😊
Top comments (6)
Hi Dennis! Thanks for the constructive criticism of my talk. ❤ I had designed it as more of an overview, because when "DXP" became a buzz-word at last year's Codegarden, I was hearing from some very experienced technical people questions like "What IS DXP?" - as if it were a totally new technology that they had to master. The idea for the talk was to provide the general message - "this is not anything new/complicated- you've been doing it for years already." I think the talk has room to be "beefed up" a bit with perhaps more technical details, without intimidating certain of the intended audience, though, so I do appreciate your suggestions. Do you feel that more concrete "case study" examples would be useful? What would have made it a "winner" in your view?
Ps. Welcome to the MVPs! I'm sure I'll see you on the Slack group. 🙂
Hi Heather! I am mostly talking from a technical perspective, because I see my role as a "builder". I think your talk could be very productive for perhaps a sales person or product owner of some sort, at least somebody who communicates with clients and needs that update on their vocabulary with less connection to the technology. I am personally mildly worried that I am lacking behind on the technology. I hear headless on one side, "enterspeed" has been mentioned at some point, cloud services, you name it. I really wonder how Umbraco fits in here. Do I need to go headless to call my solution a "composable DXP"? If so, how does that work with things like SEO for example? What does a composable DXP look like in a simple Umbraco solution? In the example in the blog I mentioned it: say I have an Umbraco website that is connected to an HRMS to show vacancies for example, what might the infrastructure look like if it's a composable DXP? Perhaps I am not quite your target audience, but these are questions that I would like to get answers to. It would be awesome to see a practical example where the benefits of composability are leveraged. The talk would be a winner for me if I can go to work tomorrow and build my next 3rd party connection the "composable DXP way", which is something I feel I cannot do right now.
Hi Dennis! I'm afraid that my talk failed... And not perhaps for the reasons you might believe so... The thing I was trying to communicate is that "composable DXP" isn't actually a "thing" or an architectural methodology, not really. It truly just means "I have different online-connected services, data, etc. and I want to link them together to make access and workflows smoother, whether for internal (staff) use, or for external (visitor/customer) use." There really isn't a "composable DXP way" - the way is specific to what your needs are, and what connection points are available.
What I wanted to show with the talk is that Umbraco has various open connection points - and choosing what to do is really based more on WHAT you are trying to surface/facilitate, WHO should have the access, and WHERE that connection/UI should exist. The point of challenge/limitation is generally on the external side - What "connection points" does the external system provide/allow? Does it have a REST API which can be hooked into? Is it a database (SQL, etc.) which can be connected to directly (via a SQL Connection string), Does it only provide a JavaScript embed code snippet? All those things are usable in their own ways, and count as part of "composable DXP".
The philosophy of composable DXP (which I think Filip covered nicely during the first day keynote), is just that you should be able to choose the systems and services which best meet your business/functional needs - and Umbraco should help you to use them/connect them to your website "hub". So, you might have a single e-product to sell, and you use Gumroad to sell it - that should be easy to integrate with your site (which is what I do: heatherfloyd.com/agencys-guide-to-...) or, you might have a bunch of physical products you are selling through Amazon... or via Shopify, and you want to make it a reasonably smooth process for a customer to get from your main site to the checkout. Or you might be handling a massive e-commerce setup, and using an external custom PIM system to manage inventory/fulfillment, or you might want to use Umbraco itself as the PIM system/checkout platform... The point is that Umbraco doesn't dictate any of this - whatever makes the most sense for your commerce setup can be connected to the Umbraco site. (that's the "composable" bit).
For your question about an HRMS... The thing to do is to look at the HRMS documentation - Does it have an API which can pull a structured list of available positions? If so, then you can use a Razor file to display that list - either linking to "detailed" info on-site, or off-site to an "apply" page hosted by the HRMS service. Does it include an embed-able snippet to add an application form to your site? Then people can apply without leaving your domain.
RE: Headless: IMHO, this is basically "content-as-a-service". Headless is really only the right fit if you only want to use Umbraco as the data-entry UI and "repository" for your content, but you have a bunch of node-Js loving front-end developers who want to build the front-end of the website without Razor views and/or you are providing your content in a structured form to other external systems - either as an API provider to external sites or as the data source for mobile apps, kiosks, etc. Since Umbraco's Heartcore (headless) service does NOT allow for a Razor front-end, if you want a Razor front-end you probably shouldn't be using it (caveat: if MOST of your usage is still via apps and other non-traditional-website access, then the underlying infrastructure of Heartcore might still be preferable... but that is another topic.)
I hope this clarifies things, but if not, LMK!
This makes so much sense and this is really what I needed. This whole idea of composability, plug-and-play, use whatever system you want, I thought: "it has almost never been that easy, what am I missing?", but I see now that I'm not missing anything and that was exactly the point that you were trying to make with your talk. Thanks a lot for your explanation.
Hi Dennis! I'm glad that clears it up. I do appreciate the critique! I'm not likely to have an opportunity to do this talk again, but if I were, I think I would hit the "you're already doing this!" part a lot harder.
Hey Dennis! Codegarden is a marathon, not a sprint, isn't it? I also found myself needing a quiet place to reset and restore, so I should have mentioned the quiet area that was set up behind the stage area. It was a place of refuge for many.
I'd love to see you at the event next year! You can tag along with me next time. :)