Guest Post by Ivo Lukač, Netgen

Symfony becoming a common ground for mid and big-sized teams working with PHP

First to give some context to this post. I am the co-owner of Netgen, a web development agency which uses eZ Publish as a base for most of web projects.  We used to make extensions and integrations in more or less pure PHP, occasionally using some libs. There were many incentives to consider PHP frameworks, but we never did. When eZ Systems announced  2 years ago that the new version of eZ Publish will be based on Symfony, we were finally ass-kicked to invest time and learn a framework that will help us be more efficient and productive by not reinventing the wheel all the time.

Anyway, in last 2 years we’ve done a few projects based only on Symfony and have also done several projects on the eZ Publish new stack (current version is 5.3) which is based on Symfony. We are still not great experts in the Symfony framework but we’re already benefiting from the endeavour. When you work in a team, you really want to have as much common ground as possible. If every team member is doing stuff on their own, it becomes very hard to maintain project code and also very hard to switch developers between projects. So a team should either invent their own conventions or embrace external ones.

Over the years, we have embraced the eZ conventions for content management work and have extended them with our own. In a similar way we are now embracing Symfony conventions. We will still base our new content centric projects on eZ, but empower it with Symfony know-how to customize, extend and integrate. We will also build web apps that are more feature oriented solely on Symfony.

So far the story isn’t that interesting for global audience, but I am getting there, stay with me :)

It seems that eZ Systems is not the only one thinking that Symfony is a very good common ground for products. The Symfony community, led by its creator Fabien Potencier, did an amazing job with Symfony2:

  • performant and modern architecture
  • joining forces with other great PHP projects like Doctrine
  • separated in many components
  • letting each components be used independently
  • extensive documentation (rare beast in open-source projects)
  • adopting recent object oriented PHP traits and other important concepts like dependency injection

And many, many more good things :)

Certainly KNPLabs did its share too, with their KNPBundles and KNPUniversity community projects.

This has enabled greater Symfony usage and its community is gaining more and more momentum. Projects like Drupal and phpBB are using a lot of components independently. Even some other frameworks, like Laravel, are using  Symfony components.

This is starting to be very interesting for bigger projects where you might need  multiple products to fulfil the scope. Someone who knows Drupal or eZ might integrate phpBB with less hassle than before.

There are also new products that are developed completely with the full stack Symfony framework. Besides eZ Publish, which is basically refactoring everything, there are also Akeneo PIM, OroCRM and Sylius. There are probably more out there too.

Besides products being developed on top of Symfony, things are changing in custom PHP development. A few month ago, a big web development agency from our town decided to start using Symfony as a base for their homegrown CMS. A few days ago I was told that a web development team in a bank from my town is switching to Symfony too.

Is this just a coincidence or evidence that Symfony is the main PHP framework of choice already, well, at least for mid-sized and big teams working with PHP. There are, of course, many other frameworks, many of them suitable for different situations, simpler or more specialised. There is also Zend, but to be honest I don’t know much about it. And recently, I haven’t heard much about it either. Maybe I am just biased or not informed. Although, there are plenty of surveys and polls where Symfony usually beats Zend.

With 2 year experience as a Symfony developer and project manager, I find it very effective for our use case. We tend to use mature open source code (from standard Symfony components to the eZ Publish new stack with the legacy stack as a fallback), and the possibility to extend the code is vital. With Symfony’s Service Container (Dependency Injection component), it’s possible to do so very elegantly. For performance we lean on the HTTP cache implementation and use Varnish with ESI. It’s almost native to Symfony. Pulling usable bundles with Composer is also a breeze. The MVC implementation is quite strict as you can’t do much in Twig, so it forces you to do things the right way.

To conclude, Symfony is not the only option but it’s definitely the best option at this moment when several people work together in PHP and implement less-than-simple projects or products.

By using Symfony and the eZ Publish new stack as well, we at Netgen are members of two communities, constantly trying to build the bridge between. In that direction we are organising the PHP / eZ Publish Summer Camp this September. It will be a great chance to learn a lot about Symfony and about the new eZ stack. And also to discuss all of us at Netgen and KNP Labs, so meet us there :)

SymfonyPizza @KNPLabs

Miss interesting discussions with smart colleagues? 
What will it be?
A meeting of those who love Symfony2 and a very warm company. You can shoot questions, you can answer questions, you can just listen, eat, drink and get smarter.
Registration is limited to 15 people, so be the first.
Need details? Here we go!
Topic: PHPCR
Speaker: Oleg Zinchenko
Date: June, 27 @ 19-30
Place:
Kiev, Moskovska street 27, 5th floor(Arsenalna station)
Come and enjoy tasty food & topics!
Registration is required!!

Register now, it’s free ;) 

Aria ? Une nouvelle copine rencontrée à l’Accessiday

logoJe suis super heureuse d’avoir pu participer à l’Accessiday dans ma ville adoptive, Caen. J’y ai rencontré des très belles personnes qui sont passioné(e)s et sensibles à la qualité du code produit et à l’expérience de l’utilisateur. Et en particulier j’ai découvert “Aria“, qui m’a bien épatée :D

Les supports des conférences seront  bientôt mis en ligne, chaque conférence était en effet filmée (http://www.accessiday.fr/#programme).

Mes highlights de la journée:

IMG_6018La rencontre avec Delphine Malassingne, sa présentation de l’accessibilité pour le grand public m’a beaucoup touchée. Nous avons eu aussi une discussion passionnée autour du people management.

 

IMG_6021

 

La présentation interactive de Sébastian Délorme , avec qui on a utilisé les consignes WCAG pour créer une app mobile… et  son retour d’utilisateur plein de surprises…!

 

 

IMG_6024Et j’ai bien rigolé lors de la présentation de Stéphane Deschamps et Matthias Dugué avec le sujet “peu” polémique “JS et accessibilité font-ils bon ménage ?” – j’ai découvert à cette occasion ma copine “Aria” ;-)  Et la façon dont elle tchatche avec VoiceOver et Talkback.

 

 

Je soutiens que leur solution s’applique à tous projets faits avec amour, des tests, des standards, du binômage, des user stories … “Un client, ça s’éduque – mon luc” :D

IMG_6025

Et bien sûr, on était présent sur le JobBoard de la journée…

IMG_6023

Merci à Willy et Sylvain - les Calvacoders :D

SymfonyPizza @ KNPLabs

Miss interesting discussions with smart colleagues? 
What will it be?
A meeting of those who love Symfony2 and a very warm company. You can shoot questions, you can answer questions, you can just listen, eat, drink and get smarter.
Registration is limited to 20 people, so be the first.
First beer (juice, water) is free ;)
Need details? Here we go!
Topic: Free
Date: May, 23 @ 19-00
Place:
Porter pub, Kiev, Mazepy street 3 (Arsenalna station) (https://plus.google.com/105816614686484432727/about?gl=ru&hl=ru)
Come and enjoy tasty food & topics!
Registration is required!!

Register now, it’s free ;) 

Consulting agile chez Legallais

Legallais est une entreprise familiale normande qui existe depuis maintenant 124 ans, forte de 750 salariés. Leader dans la vente de quincaillerie à destination des professionnels du bâtiment, saviez vous que l’entreprise a récemment été récompensée d’un prix de la meilleure plateforme e-commerce ? C’est en partie grace à l’optimisation de ses offres multi-canaux (internet, smartphone, téléconseillés) qu’elle est devenue leader du marché.

1226-g-1226_LegallaisBouchard-lacherdeballons

J’ai été contactée par le responsable de l’équipe web, Anthony LeCourtes, pour deux jours de consulting agile. L’enjeux : La refonte de la plateforme française.

Afin de gagner ce pari, l’équipe voulait connaître et tester quelques méthodes agiles, tant pour la gestion de projet et pour le processus de développement.

J’ai proposé le programme suivant :

  • Journée découverte de l’agilité avec une partie de serious games, un peu de théorie et une session de brainstorming sur leur méthodes de travail actuelles.
  • Une démie journée Backlog création et grooming avec le Product Owner.
  • Une démie journée de planning poker avec l’équipe afin de préparer leurs premiers sprints.

La journée découverte de l’agilité

Commençons avec un petit ice-breaker physique ! Même si l’équipe se connait déjà très bien, c’était à moi de découvrir mes partenaires de jeu. J’ai donc préparé quelques questions et selon raponse, il fallait faire un geste sportif. L’effet positif : l’activité physique reveille vraiment tout le monde ;-)

Pas trop de théorie au début ! Learning by doing ! Donc on joue toute la matinée au Lego4Scrum. Le moment le plus apprécié par l’équipe :-)

IMG_5664

On termine la matinée avec un brainstorming autour de la question : Comment améliorer notre façon de travailler.

Requinquée après le déjeuné, l’équipe a ensuite attaqué la session What4Do, qui a apporté plusieurs idées concrètes suite au brainstorming :

  • Faire un Kanban afin de mieux gérer le temps entre la maintenance de la plateforme existante et le développement de la nouvelle plateforme. L’utiliser comme moyen de communication avec les différents services internes qui ont souvent des demandes “très urgentes”.
  • Une journée OpenTaff mensuel pour la R&D et échange des bonnes pratiques.
  • Pair-Programming et code review réguliers.
  • Des daily Stand-Ups devant la cafette :)

Un peu de théorie et ensuite, une simulation de planning poker, qui a montrée qu’il n’est pas si facile de découper une tâche et de l’estimer….

Le ROTI était entre 3 (“parce qu’on demande à voir d’abord si ça marche en réalité”) et 5 (“Je suis conquis et j’en ai marre de la méthode 1664 à l’arrache” / “J’adore les Legos”).

Demie journée de Backlog grooming

Le plus difficile était derrière nous : Anthony avait découpé le travail de 6 mois en milestones qu’il avait également priorisés. Nous nous sommes concentrés sur le premier milestone : découpage d’abord en sprints, puis, création des user stories et leur definition of done.

Demie journée de Poker Planning

Tout le monde est surpris que l’estimation d’une tâche puisse prendre tant de temps ! Je dis que c’est normal pour la toute première tâche et toute la discussion a permis de voir plus clair les enjeux du projet : la vision globale (ce qu’on veut livrer), l’architecture (workflow de deploiement et de livraison)… le Kick-off va surement être plus efficace grâce à cette discussion.

Scrum-Planning-Poker-1

L’équipe n’avait pas l’habitude d’estimer des tâches, car elle travaille exclusivement sur des projets internes. Le côté ludique a aidé à se sentir plus en confiance. J’ai également insisté sur le fait qu’on n’utilise pas l’estimation pour faire un planning Gant et figer tout le monde sur l’estimation; c’est un outil pour s’assurer que tout le monde ait la même vision de la difficulté d’une tâche : Si mon équipier pense qu’elle va durer 2 heures et moi je pense qu’elle va durer 2 jours, il y a surement un malentendu ou une information qui n’est pas passée !

En 3,5 heures on avait terminé le mois de Janvier.

L’équipe est maintenant armée pour réussir le défi : Livrer une nouvelle plateforme e-commerce, en gardant la même qualité de maintenance sur l’ancien site.

success-baby

La recette du succès:  1 kilo de Post-Its, une tranche de Kanban, une prise de Pomodoro et une bonne dose d’esprit d’équipe :)

Sea, Sun and… Symfony!

Have you ever dreamt about learning things about Symfony in one of the most beautiful places in the world?

Well your dream has come true: we’re glad to announce our sponsorship of the fabulous first PHP Summer Camp in Croatia!

This amazing event will take place next september (2014) from the 3rd to the 6th in Rovinj in a beach resort.

Yeah, that’s nice. But now… how interesting is it going to be?

Well I can promise this is going to be a great place to learn about Symfony.

You’ll have 3 full days of Symfony2 workshops with amazing Symfony gurus – yes, you heard right, it’s all about workshops: you’re going to get your hands dirty!

You will learn and work with KNP guys like Ryan Weaver and Saša Stamenković about Symfony, testing with Behat and PHPSpec.

Our good friend Paweł will introduce you to Sylius so that you learn how to create an ecommerce platform with Symfony.

The amazing Bernhard Schussek is going rock your world about the infamous Form Framework.

And other great speakers are already on board – see the confirmed speakers now.

We are really glad to sponsor this event; it really is what we like at KNP: hands-on trainings in a friendly – and sunny – atmosphere!

Now, if you want to organize a workshop – ping them!
If you want to sponsor this event – ping them!
And in any cases… save the date and we’ll see you there!

− Read more at PHP Summer Camp.

Вебинар “Symfony2 framework, с чего начать?”

У многих есть друзья/знакомые, которым интересен Symfony.

Но, как обычно, нам лень или нет времени уделить достаточно внимания, рассказать и показать что это и как легко можно начать работать с Symfony2.
Webinar blackboard sign

Для того, чтобы исправить это и сохрнить ваши нервы KNP Labs организовывает специальный открытый вебинар!

Во время вебинара слушатели узнают:

  • Что такое Symfony2 framework?
  • Каковы его преимущества по сравнению с другими фреймворками?
  • Как начать использовать Symfony2 на практике?
  • Получите ответы на ваши вопросы, касательно опыта использования Symfony2

Когда? 25 апреля с 14-00 до 15-00 по киевскому времени
Где? Google Hangout
Сколько? Бесплатно, при условии предварительной регистрации!

Спешите, регистрация уже открыта!

Спасибо, что поддерживаете любовь к Symfony в мире! ;)

Spring Symfony2 training in Slovenia

In our previous blog post we announced the upcoming Spring Symfony2 trainings. First in this series happened April 3 – 5 in Ljubljana, Slovenia. The event was organized by D-Labs, an agile software development company from Ljubljana.

They welcomed us to their very cool office. We are impressed with the  atmosphere and very friendly people. They even had a dog named Ruby in the office :). It just felt like home.

They provided an awesome conference room for each group of 9 developers, most of them working for D-Labs. The trainees were very interested in the subject and asked a ton of smart questions. We were amazed by the skill level of the trainees, they all had a lot of PHP knowledge at their fingertips and most of them already used Symfony2 in real life projects. It was just amazing how they always wanted to know more and experiment with the real project we were building during the training. On Last day David jumped in to help everyone master Symfony forms and my group was doing advanced Doctrine training.

During these three days we did not limit ourselves to just Symfony and Doctrine. We explained and used many third party components and bundles, played with TDD, and one of the biggest surprises for me was their interest in the Sylius project!

The end of each day was reserved for chillin’ in a local bar. Everyone was so great but a special thanks goes out to Mitja and Jure who took us to the Bled lake the day after the training.

All in all, our visit to Slovenia was a success, we had a great time and the trainees were happy. Mitja wasn’t shy to share his impressions:

David and Saša from KNP were fantastic! They managed to cover all the important basics of Symfony2 while giving numerous tips and tricks along the way, then in the advanced part they got under the hood and showed us how the complex parts of the framework work. We were especially impressed with the way they manage to dig into the Symfony2 core to find answers to our more advanced questions.

I would like to thank the guys from D-Labs for their hospitality, Slovenia rocks! :)

Spring Symfony2 trainings already comming!

Spring is a wonderful time to get to know something new and exiting.  The nature blossoms and the mind is ready to wake up!

Ready to check this?

We are organizing Symfony2 training in USA, France and Ukraine this spring! 

student campus table laptop

You’re going to code
This isn’t a two-day speech, there are no textbooks and no tests. You’re going to be coding the whole time so that you’ve physically done everything we cover. So, bring your A-game and rest your weary fingers…

You’re going to build something real
Theory follows practice. Yes, when you leave you will understand security, the service container, Twig, forms and lot’s more. But not because we studied the API (yawn), because we built something real that you can take home with you.

Need details? Check the nearest to you city!

Our trainings will be in your native language!

See you there ;)

SymfonyPizza @ KNP Labs, Kyiv

Miss interesting discussions with smart colleagues? 
Lucky you!
KNP Labs starts SymfonyPizza!
Food_Pizza_Delicious_pizza_029580_
On the first week of April we’re going to talk about Sonata admin’s features and tricks.
Find out more about Sonata admin concept and creating a simple admin panel based on Symfony RAD edition and Sonata Admin.
Our speaker Andrew Kovalyov will show interesting tricks and KNP Labs will share delicious pizza!
Need details? Here we go!
Topic: Sonata admin: How to make a full-featured backend without any line on client-side (html/css/js)
Date: April, 3 @ 19-00
Place: 27, Moskovska str., 5th floor, KNP Labs, Kyiv, Ukraine
Come and enjoy tasty food & topics!

Register now, it’s free ;)