MageTitans 2: The Monster Review

I learned that November Rain is more than just a Guns ‘n’ Roses song as I aquaplaned across the M6 during a torrential downpour at 6 in the morning – myself and 4 colleagues were on the way to the second MageTitans event in Manchester.

As before, the guys at Space48 did a great job hosting and organising the event that attracts Magento developers from across Europe and beyond, so I want to start by thanking and congratulating Jon and his team on putting on a great event.

The best thing about MageTitans is that they always get top speakers from the world of Magento, people that are respected and liked by everyone in the Magento community. I’m pretty sure that if you were to do a Mt Rushmore of Magento developers, Ben and Vinai would be Abe Lincoln and Thomas Jefferson.

As with any conference I attend, I have dumped my thoughts and key learnings from the day in chronological order. Enjoy!

9:40am – The How and the Why of Composable Magento

The first talk was delivered by Alistair Stead and James Cowie of Session Digital. They spoke about the importance and significance of developing your customisations and modules in as much of a ‘composable’ way as possible. As a developer myself I know how easy it is to be only focused on the code you’re writing doing its job. With Magento 2’s introduction of interfaces and service contracts you can develop modules with intense levels of reusability.

James Cowie and Alistair Stead delivered the first talk of the day
James Cowie and Alistair Stead delivered the first talk of the day

The question you may ask yourself is “could this Magento 2 functionality be easily ported into a Symfony project?”. It’s about making your code more holistic and “DRY”er.

10:20am – Architecture in the Small

Vinai Kopp took to the stage once again, with a handlebar moustache that would make Hulk Hogan jealous, to take a detailed look at several different areas of PHP coding best practice. He promoted simplicity over volume of code (which I 100% agree with) and gave an interesting insight into how code can be refactored to create encapsulation and immutable objects.

I know that my TV is an un-mutable object when the remote batteries run out, but immutable objects / variables was a term I was unfamiliar with. I made sure I concentrated hard as the German dissected the subject in detail. The definition given on one of Vinai’s slides said it best: an immutable object is an object who’s state cannot be modified after it has been created, which means you should ultimately have code with less bugs and more certainties. Here’s an example of how it works in practice:

Mutable:

$nPeople = $room->countPeople();
$room->addPerson($attendee);

$room->countPeople() === $nPeople + 1;

Immutable:

$nPeople = $room->countPeople();
$updatedRoom->addPerson($attendee);

$room->countPeople() === $nPeople;
$updatedRoom->countPeople() === $nPeople + 1;

Vinai’s full presentation can be viewed below:

12:20pm – Lightning Talks

In the same style as last year’s segment 4 speakers had the chance to give 10 minute talks on a variety of subjects.

Front-End From Scratch – Returning speaker Yousef Cisco from Ampersand kicked off the session with a good talk about how to optimise your frontend code in Magento. He mentioned that you should NOT use Magento’s in-built JS/CSS merging and instead use Grunt to run a variety of tasks, including finding all translations within your template – smart idea! He also introduced me to Mustache Templates for client and server side rendering and a cool script called BaseBlocker that prevents templates from defaulting back to base/default.

Cache Configuration – Paul Partington from CTI Digital explained to the audience how the configuration cache is created by Magento and how the file can become a significant size when custom modules are added. He also highlighted the importance of a cache policy and provided a link to their Cache Lock module, which keeps cache creation to a single request and prevents module updates from running multiple times.

BDD & TDD in an Agile Environment – Sarah Alhawi from Sage Pay described the Test-Driven and Behaviour-Driven fundamentals of how Sage Pay’s agile methodology works. A company like Sage Pay needs to prioritise testing and security above all else and it was interesting learning how they work.

Magento Best Practices – Italian Magento Developer Alessandro Ronchi talked about Magento best practices, which included the odd plug for his book but was interesting nonetheless. His example of the subcategory script rang all-too familiar as it is something I had seen before. His refactored code was 10x faster than the previous effort. He also wins the exclusive Adam Moss Award for Best Slide of the Day:

CRAP

Alessandro’s full presentation can be viewed below:

12:50pm – Aspect Oriented Magento

I think Daniel Sloof’s talk about Aspect Oriented Magento was the one I learned most from of the talks I witnessed at MageTitans. Those familiar with Magento 2 will know how beneficial plugins have become when it comes to modifying the output of certain methods without class rewrites. Daniel has developed a module for Magento to achieve this exact functionality, installed with Composer:

https://github.com/danslo/Danslo_Aop

Daniel Sloof
Daniel Sloof in action

Daniel’s Presentation can be viewed here: https://docs.google.com/presentation/d/1iaH9zuINLvB-tBoIHEAzyO31Nl5qtlGmZEGiBbDFMZs/edit?usp=sharing

13:20pm – Mistake Driven Development

One of the more fun talks of the day was delivered by Deutschland-dwelling Scotsman and Magento Developer, David Manners. He likened the learning experience of multiple Rugby injuries to learning from your mistakes in the world of web development. One of his key messages was to not be afraid to ask questions, and in particular direct them to Ben Marks (who is probably in the process of changing his email address).

14:30pm – INNOVATION Award

A new feature for this years conference was the MageTitans Innovation award that recognised the achievements of several developers who made the shortlist. Our submission sadly didn’t make the shortlist this time 🙁

The innovation award was a cool new feature for the event
The innovation award was a cool new feature for the event

Congratulations, not only to the winners (GoInStore) and runners up (Meanbee & Cloudtags), but also to Grant Kemp who delivered the unofficial Comedy Store Joke of the Day:

I’m not bald, I just have margin-top:100px

If you have the chance, check out the GoInStore winning submission video below. It’s pretty awesome:

15:10pm – Magento 2 – What It Means To You & Your Merchants

Ben Marks once again returned to the Comedy Store stage to give an official update from Magento about the status of Magento and the benefits of the new platform from a usability and technological point of view. In a nutshell we’re getting:

  • Improved Admin
  • Improved Performance
  • Improved Integration
  • Improved Customization
  • Improved Upgrades
  • Improved Resources
Startled Ben
I’ve named this picture ‘Startled Ben’

When you look at the evidence it’s hard to argue with any of those points. Magento 2 does have a better looking admin, and the system is much more upgradable and easier to extend. He acknowledged that the resources need some work, but at least they exist unlike Magento 1’s barren offering.

Ben also delivered the following stark warning to Magento extension developers:

Untested code is incomplete code

Could this quote be the new “Did you edit the core T Shirt”? Time will tell…

15:40pm – Debugging and Magento

Tony Brown from Space48 gave his second MageTitans talk and delved into the murky waters of debugging in Magento. Debugging Magento can be the single biggest ballache in the world if you don’t have the right tools at your disposal. However using the likes of XDebug and New Relic you can make your life easier than nap in a pillow factory. The full list of tools mentioned were:

  • PHPStorm / Magicento
  • XDebug
  • N98 Magerun
  • Z-Ray Toolbar
  • Firegento Debug
  • AOE Template Hints / Profiler
  • New Relic
  • Blackfire
  • ECG Coding Standard
  • Automated Testing (PHPUnit, MageSpec, etc)

16:05pm – Going Beyond Magento Speed Limits Without HHVM & Varnish

Former Magento 1 core developer Ivan Chepurnyi made a special appearance at MageTitans to talk about getting the best performance possible out of Magento without using cache. He introduced his custom-made layout compiler which can be found on GitHub. The presentation had more graphs than an Al Gore’s laptop, but it clearly demonstrated how Sphinx search can increase the performance of key pages significantly.

16:35pm – Agile Product Management

One of my favourite talks of the day was given by Kimberley Thomas of Interactiv4, a Magento development agency in New York. I’m a huge fan of the agile methodology and it was interesting to see how other agencies use it for their project management. Kimberley is a big advocate of Jira and a process that is very close to scrum.

I learned that your web development methodology has a big impact on the morale of your developers. Everybody wants the same thing out of a project: transparency, goals and accountability. Without this your projects can falter at every hurdle.

Kimberley was asked about what happens when you run out of tasks in your sprint? Go to the pub, obviously.

17:20pm – After Party

Due to other commitments we could only stay for a couple of drinks at the after party, so the real winner this year was my liver.

An unusually sober post-conference Creare photo
An unusually sober post-conference Creare photo

Summary / Recommendations

You know what they say about 2nd albums or TV series – they’re never as good as the first. I’m happy to say MageTitans II did not suffer that fate and was equally as good as last year’s in terms of content, attendance and delivery so thanks again to everyone involved.

I would have liked to see the panel segment again because that was a highlight last year, and if I could make one suggestion it’s that it would be cool to somehow get more audience participation / interaction.

If you’re lucky enough to get to Milan on 5th February 2016 you can go to the first ever MageTitans Italia. For the rest of us, MageTitans III