I love seeing Symfony's success. From its components being used in Drupal 8 and many other projects to new developers and companies building and launching large applications in the Symfony Framework every day. I feel so lucky to have stumbled onto such a great technology and community (way back in the 0.6 days!).
Projects love using the Components because they're well-planned and built with best practices. In other words, they're exceptional, and their success has proven this.
Developers love using the Symfony Framework because it encourages you to write high quality, maintainable apps, stays out of your way and gives you access to a whole world of bundles.
The Symfony Framework Experience
But there's something else that can make a framework exceptional: your experience using it. From first download and installation, to building a page, saving things to the database and figuring out uploads: developer experience measures how easy it is to get work done, how often you have "wtf" moments and how quickly you can find answers.
When Symfony was released, we (the community) thought a lot about the Symfony experience: working on documentation, improving error messages and creating open source bundles. But since then, innovation has slowed down and the Symfony experience has stopped evolving. Today, the Symfony Framework is still the highest quality PHP Framework available. But the Symfony experience has stagnated.
Call to Action and the Good News
The good news is that improving the developer experience is easy, and it involves you!
Most developer experience (DX) issues are small and easy to fix. But as a community, we need to find these issues by questioning every step through the process of accomplishing something:
- Is doing X easy enough?
- Is the documentation for my open source Abc123Bundle clear enough?
- I got stuck doing YYY, how could things have been built (or documented) differently to prevent other people from having this issue?
Of course we'll always maintain what makes the Symfony Framework so great: clarity, simplicity and an architecture that promotes long-term maintainability and satisfaction. But within that, there is a ton of great leaps forward we can make.
How? 4 easy steps... and teamwork!
1) The DX (Developer Experience) Label
As of today, the symfony/symfony issues list has a new "DX" label. If you find a developer experience issue when using Symfony, just open up an issue and we'll tag it with DX. This will let us (the community) focus on ways of making every step of using Symfony great.
Check out the DX label right now: I've already added some things.
2) The DX Label for your Repository
Have a Symfony bundle or open source library? Add a DX label to it so that users can start reporting issues. The Symfony experience goes far beyond just the core: it's about creating a healthy ecosystem of high-quality libraries and documentation.
Using a bundle or library that doesn't have a "DX" label? Open your issue and ask them if they'll add the label.
Then, we can see all the GitHub DX Labels.
3) Community Hack Day
And to tackle these "DX" issues, I want to get the community together (remotely) for the first ever community hack day! This day will be about improving the entire ecosystem, including the open source bundles that we rely on. We'll meet on IRC, give each other remote high-fives and start hacking away on DX issues and anything else important.
If you're interested, we would love to have your help! Mark you calendars for July 5th. I'll create another blog post with more details soon.
(I know the date isn't great for people from the USA like me, but we'll have another hack day!).
4) Being Aggressive, Focusing on Beginners
Protecting backwards compatibility is really really important. But even
so, I hope you'll think aggressively and outside of the box about developer
issues. There are certain things like the template naming syntax (that
AcmeDemoBundle:Default:index.html.twig syntax) that have been around
forever. But if there's a better way to name our templates, let's find it!
This example is already being discussed.
And since a lot of us have been using Symfony for years, we've been able to write blog posts about increasingly complex things. That's great! But don't forget that there are new developers joining Symfony everyday. If you have a clear way to explain how to do something basic in Symfony, blog about it! Beginners will definitely be thankful.
Got any other thoughts or ideas? Let me know, and let's keep making Symfony the best and friendliest framework in PHP.