Getting Real symfony

Recently I wrote a review of Getting Real , the book by the guys from 37signals. But how, if at all, does this apply to, for instance, symfony ? Let's take some points from the book and see how symfony does...

Ignore details early on
In this essay, the main point made is to try and not pay attention to details early on in the project. Focus on the main functionality before diving into details. In symfony, this is easily achieved by using a basic CRUD interface first (removing the functionality you don't need, or adding specific functionality you want). Sure, it's a basic functionality, but it works. Another very powerful option is using the admin generator, which already contains quite a few more bells and whistles out of the box. It takes very little time (as little as a few seconds for the most basic screens) to set it up, and as you really need to start paying attention to details, you'll be able to much easier and with more time left in your planning. You'll be able to experience the big picture before actually thinking about the details.

Race to running software
This essay really builds on top of the previously mentioned Ignore details early on. In it, 37signals tells us to get something up and running quickly. Not until it is running will the project be alive, and will people actually feel part of it. And here again, the CRUD generator and the admin generator will be able to help. With them, in literally only a few seconds, you can set up your basic functionality. People can click through it, do everything, and experience it first-hand. And then, you can work out those things missing, or remove those things that you don't want in there.

Hire less and hire later
Why hire lots of people and think big, when a few people can do an excellent job? Symfony really supports this vision by enabling one or to developers, maybe grouped together with a designer, to deliver a basic working version of an application in a short time. Especially by using plugins that offer specific functionality ready-made, a small team can get things up and running quickly.

Actions, not words
In this essay 37signals says to look at prospective new employees not just from an interview, but also focus on what work he/she has done in the open source community. Because symfony is an open source project, it is easy to see who contributed what. An excellent way to see if your potential new employee is indeed as good as he/she says he/she is.

Interface first
Of course, symfony will have nothing to do with the basic HTML mockups Getting Real says to make first. But for a new application, applying the mockup you already made is easy. Using an empty module (or even an admin-generated or CRUD-generated module), you can easily apply your basic HTML look and feel to your project, simply be editing a single stylesheet (main.css) and a single layout file (layout.php). Thanks to the decorator pattern that symfony implements, this layout is immediately applied to all modules in your application, immediately giving you a good feeling about your application. It also removes the need for basic black-on-white proofs of concept and prototypes to show your customers. Little work has a big effect. And you can always worry about the details later.

One interface
Sure, many people split up the frontend from the backend and the symfony documentation also mentions this approach. But it's not a requirement, it's a way to do it. In this essay, 37signals speak about using a single interface both for frontend and backend actions, and just let the credentials of a user decide what a user can see. Symfony easily supports this, either completely custom-built or by a combination of admin-generated and custom-built code. Just as easy. And the symfony security model makes it easy to control the credentials of users and control what they can and can't see.

Less software
Less software means your software is easier to maintain, and has less bugs. This is one of the essences of symfony. Ensure that the lines of code a developer writes is kept to a minimum to save on cost (both development and maintainance) and also on complexity. The framework is already built and tested, so a developer does not need to focus on that. This keeps the actual code to write simple.

Open Doors
Open up your application by providing feeds and APIs, is the message of this essay. Well, feeds are only a few lines of code with the sfFeed2Plugin. OK, APIs are a bit more work, but due to the way symfony is set up, it is very easy to extend the basic behaviour of symfony to support for instance the setup of a SOAP or XML-RPC server. And if you just extend the basic symfony functionality, you only have to write that which isn't in symfony itself.

So...
As you can see, symfony can fit perfectly into a project that is Getting Real. I am not saying however that symfony is the only framework that will fit into the Getting Real vision. A lot will. 37signals is, after all, the company behind Ruby on Rails. And many other frameworks will allow developers to minimize the code they have to write themselves and save time. Symfony will just do this as well, and in my humble opinion, in an excellent way. It supports agility in all its glory.
Add comment

Php5_zce_logo

not tested in IE


Upcoming events

I will be speaking 04-09-2009: Symfony Day 2009

Tags

1337 2008 4developers accessibility AdaLovelaceDay09 agavi agile amsterdam apache apple article articles atk atkMetaNode audioscrobbler backwards compatibility bbc beatstad best practices bittorrent book books bughuntday caching cake cal evans cat cerf certificate cfp clear cms community conference conferences continuous integration crisis css custom DbFinderPlugin decorator decorators deployment devdays development directoryindex documentation download dpc dpc09 DPC2008 dreamhost eclipse ed efficiency enterprise event events expertise ezcomponents flickr frameworks freeze frontend fun games germany getting real google googletalk graceful degradation hack hackers hidden gem howto html http ibuildings icann ide imovie indy internet IPC ipc ipc08 javascript jobeet john peel joomla left on the web lime linux live london loudblog m2ts mac malware mambo marjolein meme meta methodology microsoft movie music mysql namespace namespaces nllgg odmarco open source ORM osx paradiso pear personal pfcongrez photo php phpabstract phpBB phpbb phpbelgium phpbenelux phpgg phpitalia phpnw phpnw08 phptek phptek09 phpuk2009 phpUnderControl phpunit php|architect php|tek podcast politics portability postcrossing presentation presentations public qa recruiting refactoring review rewrite ruby on rails schedule script security seven things simplexml slides software sogeti solar standard standards static steer strings subversion symfony symfonycamp symfonyUnderControlPlugin talk technology techportal tek09 terratec terrorism testfest testing textpattern tips tld tomas usability usergroup vhost video vinyl virus warp weblogging wiki women world world of warcraft writing xml xpath yara year youtube ZCE zemanta zend zend framework zend server zend studio Zend_Form
© 2004 - 2009 Stefan Koopmanschap + Powered by Symfony, photos powered by Flickr, links powered by Delicious, Shanghai smilies by Iconbuffet. Feeds: rss / atom. Left on the Web v4.4.0