These are my notes and observations from tonight’s WP Leeds meet-up.
Open Source – The story of Herbert
Jason Agnew gave a insightful and inspiring talk about his experiences building Herbert, an open source WordPress plugin development framework. I’ve spent the last 10 months working a major open source project myself so I took a lot away from it.
Put some of your own personality into any open source project you create: whether this be the name, branding etc.
A bad developer environment can make a good developer feel like he/she has the dreaded imposter syndrome. Always strive to improve the environment!
Building something open source is an opportunity to reignite your passion for coding, especially if you’re feeling low or frustrated with other projects.
Work with no constraints from the very beginning. Eventually you’ll need to add rules and/or refactor as it matures but it’s important to just start building it.
Recognition makes you feel validated and helps vanquish imposter syndrome.
Fixing what you’ve built when it breaks/doesn’t work as advertised shouldn’t be seen as a negative: it’s an opportunity to learn and grow as a developer.
Set yourself a strict time frame for building it, and stick to it
Spend time writing documentation and building the brand before you release
Get someone else to review the code, and let the project breathe for a few weeks before you release it to the masses.
Open source isn’t limited to GitHub or code for that matter: it’s a mindset.
Creating open source projects leads to increased credibility which is useful when you’re trying to bring in new business/win contracts.
Criticism will ultimately help you improve the way you do things whether you’re a solo freelancer or a team within an agency.
Team members who can create and contribute to open source projects are far more motivated than those who cannot. Freedom breeds motivation!
Have no fear. Try something new, something risky, something that has already been done before. If it doesn’t work as you hoped then, so what? At least you actually built something. Time to move onto the next idea.
Is the wp-admin dead?
Next up was Tim Nash with another one of his thought provoking talks. This time the subject was taking the wp-admin out of the equation when building WordPress plugins and themes. I love watching Tim’s talks as he is always full of energy and ideas!
Tim currently submits blog posts by pushing Git commits to his repo which then in turn trigger the WP-CLI via SSH. Interesting!
WP-CLI and the REST API are the future…maybe.
Think about plugins in terms of pure data: focus on building your data model first rather than how the settings are to be presented in an interface.
It’s all about CRUD (Create, Read, Update, Delete)
Building simple, lightweight/fast admin pages for administering plugin/theme settings is relatively easy using Backbone (used in core) and Underscores.
HappyTables is a good example of how the administration interface can be completely and radically overhauled to improve the admin user experience.
The REST API gives us access to the raw data we need, empowering us to use this data in new and exciting ways when giving users control over plugins/themes.
One advantage of using the WP CLI and/or REST API is decreased reliance on the web-server. No more long running processes = better server performance and resource availability.
Integration testing is an awful lot simpler due to there being a lot less code involved: a lot of which you haven’t written.
You should seriously think about providing a command line interface for your plugin to save users the hassle of logging into wp-admin area to change settings.
Think more about the capabilities of the user, rather than the location from which they will administer/edit the plugin or site e.g. don’t assume that the administrator should be logged into wp-admin to make a change.
Using the WP CLI as part of the ‘user-less’ WordPress installation is viable and has a big security benefit due to the lack of opportunities to hack passwords!
A lot of ‘normal’ users stand to benefit from providing alternatives to the traditional wp-admin interface: not just technical ones. People want multiple points of entry to WordPress now, regardless of their role/capability.
On Saturday October 10th, WordCamp Manchester (WCMCR) rolled into town and with it came my first opportunity to speak at a WordCamp, or in front of any group of people larger than your average local developer meet-up.
In this post, I’m going to cover my journey leading up to WCMCR before talking about my experience speaking at the event itself. This is a long read but hopefully an interesting one!
Before WordCamp Manchester
Back on June 9th 2015 I gave my first ever development talk at the WP Sheffield meet-up after Kimb Jones — m’colleague at Make Do and event organiser — encouraged me to share my experience with the Customizer API.
I’d just spent the better part of a week using it for a client project and was feeling a lot more confident. A speaker was needed for that particular month’s meet-up so after having a mild panic attack, I agreed.
I threw together a talk using Google Slides over the course of a couple of days, and when the day finally came the talk seemed to go rather well: several folks at the meet-up found it useful which made the effort/terror worthwhile.
Not long after my talk at WP Sheffield, Samantha Miller put out a call for speakers for the WP Leeds meet-up that she co-organises, so, feeling confident I had a chat with her and soon I was booked in. I felt the need to keep the momentum going and get more speaking experience.
The event was held at Google’s Digital Garage in the Leeds dock area and was about three times the size of the room in the pub where I’d given the talk at WP Sheffield. There was a fancy podium, a huge wall acting as the projector screen and a lot more capacity. I’d say there were about half a dozen more people at this event so it wasn’t as if I was suddenly in front of 50+ people!
The event went well and the talk just flew by. I was getting used to talking in front of a group, and I was a lot more familiar with the slides/material. I had a few questions to answer and once again, several people spoke to me or tweeted me after the event to thank me as it had been helpful. Fantastic!
A month later I saw the call for speakers for WCMCR, and was immediately tempted. Kimb and Matt in Slack and Sam via Twitter were encouraging me to submit my talk for consideration so I applied from a pub at ThemeConf!
Then came an even bigger wave of The Fear™.
Dealing with The Fear™
I’ve never been keen on public speaking. I’m sure many of you are the same.
Although I’ve managed/supervised teams in other industries earlier in my career, and trained entire rooms of colleagues at the agency I previously worked at before joining Make Do, the thought of standing up in front of a group of (mostly) strangers has always terrified me.
Over the years I’ve had my fair share of issues with anxiety/panic but lately I feel like I’ve either dealt with or it grown out of it: regardless I am always prepared for the worst! Thankfully I can put on a decent ‘game face’ even if I’m absolutely terrified underneath!
If I’m honest, the main source of the anxiety/fear/terror relates to the time that is allotted for questions after talks: something I knew was a feature of larger conferences/events such as WordCamps.
When I was a little boy, my hearing was damaged in both ears. I have a hearing aid that I wear on the worst side when it’s an important work situation or an event I’m attending (alas, I’m too stubborn to wear it 24/7) which does help me a lot, but I still get nervous in case I struggle to hear someone asking a question, or anything for that matter.
Ask anyone with hearing damage how they feel when they repeatedly mis-hear or fail to hear something and you’ll see them immediately look and feel uncomfortable or stupid just thinking about it. It’s very debilitating.
I didn’t mind that I could be asked questions that are beyond the extent of my knowledge, as a simple “I’m sorry, I don’t know” or “I’ll have to look into that and get back to you” will suffice. However, looking like a complete idiot in front of a room full of people was not something I was mad keen on experiencing!
The other source of anxiety/fear/terror relates to the talk itself. In my Worst Case Scenario mindset, I assume that:
Most people who attend already know about everything in my talk
Lots of things in my talk are wrong/misleading/poorly explained
There will be Extremely Clever People in the audience shaking their heads
For someone who has an above-average amount of self-belief, it’s tragic that I think like this in these situations: but I know I’m not the only one. I’d done plenty of research and proofread the talk many times, plus all of the code was working as expected and was error free.
With my talk already submitted for consideration, I told myself everything would work out and waited to hear back from the organisers.
A few days later I was invited to speak, and was only too happy to accept.
Revamping the Slides
One thing that I knew I had to do before WCMCR was re-write my talk to make it look nicer. I never had any plans for the slides to be particularly fancy in any way, but I wanted them to be easier to read both for those attending my talk and those viewing them online at a later date.
After a couple of quick Google searches, I came across Reveal.js. Reveal is a HTML presentation framework that uses React, and lets you create interactive slide decks using standard HTML5 markup (and a little JS if you feel like it).
I loved the idea of writing the talk in HTML — hell, I am a web developer after all — and it meant I could easily update it via GitHub and host it on my site without the need for any third party services. In case of a tragic loss of my laptop or other technical issue a web browser would be enough to deliver the talk.
It took me about a day over two sessions to convert the existing slides and make all my changes. Wherever possible I added descriptive text to the slides to make it easier to understand for those viewing the slides after the talk. Although a lot of the code examples stayed roughly the same, I practically re-wrote the rest of the content, removing and adding slides in the process.
Speaking of code, Reveal has syntax highlighting built in which I found really useful. A couple of folks pointed out that the syntax was easy to read which pleased me greatly given how poor the colour contrast was in the previous slides!
Simon runs the MCR Fred meet-up and is one of the brains behind the fabulous UpFrontConf conferences, so his feedback meant a lot!
Reveal has useful features such as markdown support, printing of slides, full screen mode etc and is highly configurable.
One of the things I love about Reveal is the fact that the slides scale depending on the size of the viewport: you just need to set the base height and width variables in the config and it takes care of the rest. When the WCMCR team confirmed that the slides needed to be in a widescreen format I just needed to enter 16:9 aspect ratio values (use this tool): 1200px x 675px in my case as I was writing the talk on my Macbook.
If you want to get your hands dirty with JS to create some really sexy slides you can: my slides were pretty straight-forward and I only played with slide fragments, vertical slides and of course the syntax highlighting.
The other major change that took place between WP Sheffield and WCMCR was the way I demonstrated the results of the code shown in the slides. In both of the previous talks I’d switched from the slides to my IDE and web browser to show live examples using pre-prepared code in a child theme.
Whilst this was relatively simple to do it broke the flow of the talk and was quite time consuming. When I asked for her feedback at ThemeConf when I realised I’d have to shave ~10 minutes off the running time, Sam Miller suggested combining the demos to shave off precious minutes. This was a great idea. Thanks Sam!
I decided to go one step further and record two videos of the demos using Screenflick for OSX which I highly recommend. The videos looked fantastic when embedded in the slides and were a nice touch. Plus it meant I didn’t have to break out of the slides into another app. On reflection I wish I’d put the videos into full screen mode, but that’s a lesson learned for next time!
Cometh WordCamp Manchester
So the day finally came. After a week of barely any sleep (never dog sit two young dogs before a WordCamp!), a couple of timed runs through the talk and a Friday night of last minute tinkering my alarm woke me at 6.50am: it was time to head into Manchester.
I remember being a little nervous, but I was more concerned about making sure there were no issues with the slides! After arriving at the venue for about 8.30am I registered, grabbed my speaker badge and…decided to add a couple of slides!
Mingling with the WCMCR gang and the Make Do chaps immediately made me feel a lot more relaxed. In fact, I was actually looking forward to it. I’d prepared as much as I could, so now it was just time to get on with it.
In the days leading up to the event I wasn’t entirely sure how many people I’d be stood in front of. I’d prepared myself for about 50-100 people and in the end the number was around 60. Not that I counted while waiting to be introduced!
The AV guys got me wired up with a microphone and I had a chat with Rhys for a few minutes while we waited for everyone to finish taking their seats. At this point I’d completely relaxed and was chatting to Rhys as if I’d done this before.
And that’s the thing. That’s when it hit me. I had done this before, just on a smaller scale. It doesn’t matter how many people are sat in front of you because ultimately you’re turning up and talking to a bunch of folks about something you think they’ll find interesting/useful. That’s it.
The number of people sat in front of you doesn’t change what you have to do. Focusing on the task in hand rather than the audience is a big help!
Thankfully the talk went without any technical hitches, there were a few laughs (which really help!) and I managed to get through everything in the allotted time. In fact, I finished the talk in bang on 25 minutes which was 5 minutes early!
In fact, I remember having a moment of blind panic when I finished as my brain was shouting “You’ve skipped some slides! You’ve finished too quickly!”. The truth is I hadn’t, I’d just forgotten that I completely re-structured the talk!
With hindsight I’d have elaborated on a couple of slides to use up the extra few minutes, but everything that needed to be covered was covered. Winner.
The applause was generous and it felt as though folks had enjoyed it. I immediately felt a sense of relief but also of pride as I’d actually spoken at a WordCamp without transforming into a gibbering wreck!
Next up: question time! Instead of crashing and burning as I thought I would when I had The Fear™, I found myself replying to some really interesting questions: a couple of which have influenced some of the content of the follow-up talk that I’m going to start writing in the not too distant future.
And after what seemed like just a few minutes, that was it. My talk was over and I could settle down to enjoy the rest of the day’s talks.
I spent the next hour or so enjoying the next talks and browsing all of the tweets relating to my talk that used the #wcmcr hashtag. I favourited everything (useful for tracking photos to use in blog posts!) and I replied to everyone who had said kind things about my talk.
It absolutely justifies all the effort you’ve put in and any fears you’ve overcome when people share their appreciation for your talk. Several people came and thanked me straight after as well as later on in day which was amazing. Hearing and reading people talk with such passion and excitement about the topic you’ve just been speaking about is very rewarding.
For me, the goal was always for my talk to help one person. If just one person went away and got stuck into the Customizer then my work was done. Judging by the tweets and the one-to-one chats I’m quietly confident that the number is a bit higher than that, which makes me very, very happy indeed.
Things I Learned
As someone completely new to public speaking I feel like I’ve learned a hell of a lot. Here’s some tips/advice for anyone reading this who might want to embark on the same journey. Remember, I’m not an expert, just a novice who has, to use gaming parlance, levelled up a little bit.
Try and see as many talks as you can at local meet-ups and larger events: you’ll pick up useful tips, ideas for the look and feel of your slides and much more.
Take the time to understand the subject you’re speaking about and you’re half way there. You’ll be in trouble if you’re not at the very least comfortable it.
All of those irrational fears are exactly that: irrational. Take a deep breath and just throw yourself into it. You’ll surprise yourself and grow as a person.
Flesh out a rough structure for the talk as early as you and can and then keep developing it. Don’t be afraid to throw away slides or re-structure it entirely.
Start small and work your way up. Local meet-ups are perfect for this as the numbers are typically lower and you may know more folks in the room.
Set aside plenty of time to prepare your slides before the day or any submission deadline, and keep refining/proofing/editing the talk right up to the last minute.
Make sure your slides have a sufficient amount of text explaining their content for the benefit of those who will be viewing them after the talk.
Folks who attend development talks absolutely LOVE and come for code. Lots of code examples and/or live demonstrations will rock their world.
Don’t make any assumptions about what your audience knows. Clearly explain as much as you can and try to show, not tell wherever possible.
Be prepared for and take on board criticism and suggestions. It can be difficult to be completely objective. Your talk can and will be improved this way.
Take note of any questions you receive after the talk has finished as you can use these to refine its content, create follow up talks and learn something new!
And finally, after you’ve stressed yourself out, dealt with The Fear™and have tweaked the slides a thousand times… make sure you bloody well enjoy it!
I’ve really enjoyed the journey that I’ve been on for the last six months, and I’ve realised it’s a great way for me to develop myself both personally and professionally whilst giving something back to the community.
It’s great to network with so many folks on my travels and I would highly recommend both attending and speaking at these kind of events. Go on, do it!!!
I’m already planning one or two new talks that I hope to be able to deliver in the next six months, so stay tuned for details. I’m also looking forward to attending lots of great conferences in the coming months including WordCamp U.S!
You’ve got to the end so you deserve a pat on the back! I’d love to hear from you in the comments section, especially if you have any talk feedback or questions!
So I finally caved in and decided to start blogging using Twenty Fifteen theme while I carry on working on my blog/personal site.
For the past couple of months I’ve been accumulating blog post ideas as well as having lots of experiences that are worthy of a post, so it made sense to at least start blogging while the full site is in development.
Originally I planned on building the site using Jekyll and submitting new posts via Git commits, with absolutely no CMS. This wasn’t as a result of any negative attitude toward WordPress, rather a desire to do something different given that I spend 90% of my working week using or developing for WordPress.
Whilst static Jekyll site development is still something I’m really interested in, I’m currently building the prototype site using the WP REST API and ReactJS because:
I have a feeling that hands on experience with both of these is going to be invaluable in the coming months and years
Until now I have had zero exposure to both the WP REST API and ReactJS, even though I’ve been hearing a lot about them on the grapevine.
They are both relatively new and shiny.
I hope to share my experiences with both of these technologies in the coming weeks once I’ve got my head around everything!
Development of this new site is also going to serve as a proof of concept that will help the team at Make Do, giving us a better understanding of how exactly we can leverage this new and exciting way of creating websites/themes/apps with WordPress when coming up with solutions for our clients.
The blog posts will probably come thick and fast for the next couple of weeks, then I’ll hopefully be settling down to 2-3 posts per week. I hope my ramblings will be interesting and occasionally helpful!