Symfony Live 2015 — The Second Day

Alberto Assmann
Project A Insights
Published in
9 min readNov 5, 2015

The second day of the Symfony Live 2015 event started the same as the first one, with a really nice breakfast to get ready for another long day full of technical talks. In this post, I’ve summarized the highlights for you.

Keynote: Fix Your Company Culture

However, the opening keynote, given by Johann-Peter Hartmann, CTO of my former Company Mayflower, proved to be an exception to all the technical talks. Hartmann comes from an agency which has fully replaced official job titles with self-determined ones. He spoke about the agile transition and why the idea behind the agile manifesto and the Management 3.0 movement will help to create sustainable businesses in the future. As developers who often have a lot of experience in an agile workspace it should now be part of our job to help companies with the necessary agile transition in a world which is getting more complex every day. To ensure that a company is successful it is not enough to plan ahead. It is also necessary to empower adaptation to current changes. This is an especially well known need in startups, which often results in pivoting several times to get off the ground successfully. Therefore it isn’t enough to have just working practices. Sure, when a used practice led to success in the past it is a good starting point to use it in similar situations, but there is no guaranty of success. So a practice has to be adapted to the situation if it doesn’t work out. If the new practice is more successful than the old one, it should be reused as a so-called emergent practice.

To be able to adapt to new situations, we have to change more than just the way we are working. The companies have to change as well, to let those people who are working with the problem actually make the decisions. This is nothing the management can bring into a company as long as culture does not come from orders but is more a reflection of the lived practice in a company. Therefore, it is a key factor of success to help all employees to organize themselves and let them make decisions on their own to adapt faster to new situations. This is the culture which fits the best into the complex, rapidly changing world we know at the moment, so it should become a key factor for companies to let this transition happen.

At the end of his talk, Johann gave some practical advice on how to become such a self-organizing and agile company. First of all, transparency has to become really important, not only to give all information to the deciders, but also to make failures transparent and let others learn from them as well. Second, the company has to create a strong community, thus providing an identity with which decisions are already aligned, due to the common interest of all of the company’s employees. The most important step is to create an environment where changes are easy to be made and therefore trying out new practices to improve further and learning from failures and adapting to avoid them in the future is as painless as possible.

For me this was one of the talks which literally blew my mind and on the other hand gave me a motivational boost to keep doing what we are doing at Project A.
Luckily all slides are available with notes to form your own opinion about the agile transition.

Puli: PHP’s Next Package Revolution

The next talk was, though more technical than the keynote, no less inspiring.

To those who remember how the introduction of Composer and package management changed the PHP community and gave them a new direction, they should keep an eye on Puli. Its mission is to reduce the amount of work required to adapt a library to function within a chosen framework by generalizing the way that resources are handled. In the first step, Puli will maintain all resource files, such as templates, images, javascripts and so on, and take care of replacing the paths which are mapped to the right URLs. As a result, it will become very easy to put all assets to a CDN by just adapting the Puli mappings instead of changing code. But Puli doesn’t stop with just mapping paths. It also gives you the ability to overwrite resources in other bundles or extend them without having to take care of the conventions that the chosen framework uses. This approach should give you the ability to create a library only once and use it in every PHP framework without needing to write a bundle to integrate the library into the particular framework. One feature I’m looking forward to using is the so-called resource discovery, which will give the ability to add resources, e.g. translation files, to an object. Especially together with the Class Discovery feature this will help a lot to expose plugins which are provided from one bundle A to another bundle B, which is using this plugin, without the need for bundle B to know anything about bundle A.

To me, Puli sounds like another small revolution for the PHP community, which will change how we work with third-party libraries.

Robust and Scalable Applications Through Distributed Systems

Afterwards, Ole Michaelis from Jimdo gave a talk about his company’s journey from being a big monolithic application to providing small microservices. He included some best practices, especially to always use timeouts to ensure a service can be down without having a huge performance impact on the other parts of the application. In addition, he stressed the benefit of using standard protocols for communication, like HTTP and of always using SSL encryption if possible.

The talk itself was funny and filled with a lot of good tips and practices.
The German slides can be viewed online.

Kubernetes: How Chefkoch.de Works with Containers

Following the common main topic, Per Bernhardt talked about how Chefkoch uses Kubernetes to manage their microservices effectively. Kubernetes is an orchestration tool like Giant Swarm or Amazon ECS to solve the issue of administering a cluster of microservices built on top of docker containers. Chefkoch.de chose Kubernetes because it is built by Google and companies like Microsoft, VMWare, Intel, HP, RedHat and IBM have already contributed to this tool. One outstanding feature is the so-called “pods”, a unit of services which will be deployed as closely as possible together by Kubernetes. Another feature worth mentioning is the fact that Kubernetes can mount different file systems into containers like NFS, S3 and GlusterFS. Also the replication controller feature seems very promising: it ensures that a pod or service is running and is able to replicate this service for scaling and failover purposes. Kubernetes can also load balance between services of the same type which makes scaling a certain service a lot easier. Lastly, Bernhardt warned against using Kubernetes in production, since it is still in an early stage and there are still some bugs, which could potentially cause trouble in a production environment.

All the slides of this talk are available online.

“We Need Rock Stars, Not a Band!”

The most controversial talk, at least for me, was “Wir brauchen Rockstars, keine Band!” (“We Need Rock Stars, Not a Band!”) by Christian Schäfer, Head of Digital Business at Axel Springer Mediahouse.

Schäfer has also seen that business models are changing really fast and that the one you have in mind at the beginning will probably not be the final one which is successful on the market. To cut down on wasting money for features, when it is not sure whether they will survive a longer time, he would, from a stakeholder perspective, rather have a single rock star developer who is capable of working with the whole stack, including testing and requirement analyses. Schäfer argues that you don’t need a full blown team with leads, QA etc., for small projects. Therefore, it becomes necessary instead to use simple and standard software like Wordpress, which is not bleeding edge technology but will yield fast results. Even if this is contradictory to what most developers want to have, namely building software on a green field with the newest technology stack, he proposed considering applying for such a job and maybe just doing it part time. As compensation, the developer can garner appreciation from the company, due to being the one who delivers features fast to create real business value out of it, along with the possibility of doing one’s own projects in one’s spare time.

To me personally, this sounds like the worst nightmare I can imagine, because I love to constantly learn from my colleagues and to tackle new problems, but maybe for others this could be a dream job. There are no slides online, but I found this lovely live sketch which pretty much sums up the talk for me.

Hexagonal Architecture — Message-oriented Software Design

Following up on “The Quest for Global Design Principles”, which took place the day before, Matthias Noback gave an overview of those application design patterns. Basically an application which follows these patterns is separated into different layers, which makes it easier to replace certain parts of the applications, either for testing purposes or when requirements are changed. Each layer should not know anything about the implementation details of other layers and therefore not rely on a specific implementation of a particular component. To avoid dependencies across layers, a top layer, such as controllers or console commands acting as an interface to the outside world, should only be coupled to an inner layer and not the other way around. If there is a coupling in the wrong direction this has to be resolved by implementing against an interface, which allows the user to hide the implementation details. This concept makes it possible to defer decisions and make them as late in the process as possible thus remaining flexible enough to change implementations without the need to re-implement a bigger part of an application. Also it allows for the re-use of certain components across projects, since they are not bound to a certain business logic, protocol, or technology anymore.

Most of this is covered by the slides, but it was good to hear it first-hand anyway.

Lightning Talks

Following the same procedure as the previous day (10 minutes per talk, free choice of topic), there were also several lightning talks given on Friday.

The first lightning talk was about the eZ Platform, a CMS with a long history, which migrated to use some Symfony components. At least for me, this was unfortunately nothing that I will still remember in a few weeks.

Afterwards, Steffen Hanikel from MeinFernbus spoke about the process of porting the Joda library to PHP and improving the handling of dates in PHP projects with this library. So far he hasn’t been able to open source it due to copyright restrictions, but he is working on that part.

Our former CTO and current Co-founder of Spryker, Fabian Wesner, gave a quick introduction to the concept of state machines and how they helped our ventures in the past and will help projects built with Spryker in the future to scale up the business by being able to process a high amount of orders per day without a lot of people manually processing the order management. Beside the scaling factor, the visualization of the order process helped us to discuss optimization with the business side and keep track of the current process without detaching the process documentation from the process, as is normally done by creating a process documentation in a wiki.

The following talk, if we can still call it that, was really special and incredibly funny to follow. Jeffrey A. “Jam” McGuire presented us three poems, about “Heimat, Liebe, Tod” (home, love, death), each accompanied by a musical performance on an alphorn. I’ve never seen such a performance before, but it was one of the talks I will always remember.

The next-to-last talk was from two developers from Develop4edu, better known for their work for Klett, a company which prints school books, about their migration to microservice architecture. One special thing they detailed was how all microservices are authenticated against an authentication service, which they bought from Atlassian.

Lastly, Bogdan Héréa from Pitech+Plus gave a quick introduction to their education platform for programmers, called Academy+Plus, which has a really nice visualization of the progress and requirements which are needed to be eligible to attend new courses. Sadly, the whole platform is only available in French for now, but will be translated into English soon.

Conclusion

After another long and really interesting day, full of awesome talks, I was really happy to have had the chance to attend the event and get a lot of new impressions. For me, it is always nice to compare my own knowledge and working approach with others and to learn where there is room for improvements and acquiring new knowledge.

From the organizational point of view, the Symfony Live event was one of the best conferences I have attended so far and I would be happy to be there again next year.

--

--