38
how your business can benefit from Symfony2 an attempt to understand the business value of using the Symfony2 framework

How your business can benefit from Symfony2 / PHPDay 2011 in Verona

Embed Size (px)

DESCRIPTION

2011 will see the first stable release of Symfony2. It's development has drawn much attention already in the community and many of its protagonists have moved on from symfony 1 to Symfony 2. When speaking about this new framework all discussions immediately get technical. You will hear about performance, caching, security and many more topics. However from a business point of view you have to ask yourself if the move is really paying off. * What are the costs of moving to Symfony 2? * What can you achieve with it that you could not achieve before? * How will the use of it enhance your production process? Being amazed by technological progress is one thing but in the end you have to earn money for a living. This session will try to help you answering the question if switching to Symfony 2 is a good decision for your situation.

Citation preview

Page 1: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

how your business can benefit fromSymfony2

an attempt to understand the business value of using the Symfony2 framework

Page 2: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

about.me• Christian Schaefer a.k.a. caefer• read me http://test.ical.ly• follow me http://www.twitter.com/caefer• fork me http://github.com/caefer• stalk me http://about.me/caefer

• web developer for over 11 years (mainly PHP)• Symfony experience of over 4 years• new media advisor in the publishing industry• working with several teams all over Europe

Page 3: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the business perspectivethe bigger a company – the less technological knowhow will be present amongst those

who have to make business decisions.

„every new project is an investment with an estimated cost and an expected result“

when technology and development play a vital part in a new project you have to investigate whether the estimated cost is complete (hidden costs, unconsidered cost developments, ..) and the expected result is realistic (risks, unknown details, ..).

Page 4: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

it projects in a nutshellthe essence of any project

„a client pays a price for some resources within a timeframe to produce a result“

how can this be improved?

you can• .. make the client happy and possibly come back• .. lower the price• .. reduce the number of resources needed• .. shorten the timeframe• .. improve the result

Page 5: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the happier client

Som

e rig

hts

rese

rved

by

zubr

ow h

ttp:

//fli

c.kr

/p/9

pmsy

M

Page 6: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the happier client.. can be achieved by• .. realizing his requirements in scope, in budget and in time (obviously)• .. making him happy with the result (usability)• .. making him happy with the result even months later (reliability)• .. enabling him to extend a successful product (extendability)• .. preparing his product for success (scalability and performance)

a happy client will come back eventually and might attract other clients.

Lets assume your client has a new business idea and you create the website for it.

If his idea becomes a success he will have a lot of things to do to leverage that momentum. if the website even under heavy load performs well and can easily scale to more servers or into the cloud, if new features can easily be added and improvements can be made then your client will be happy.

Page 7: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the lower costs

Som

e rig

hts

rese

rved

by

zubr

ow h

ttp:

//fli

c.kr

/p/9

pmsy

M

Page 8: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the lower costs.. can be achieved by• .. saving of time and resources (obviously)• .. reusing already available parts (reusability)• .. being prepared for change during development (extendability)• .. by reducing the number of bugs (stability)• .. developing for success (scalability and performance)• .. allowing easy installation in the clients environments (compatibility)

Hidden cost such as bugfixing, scaling, performance enhancements or installation in the productive environment will either be paid for by the client or the supplier or both depending on your contract. in any case they will not be fun.

When adding features later on costs can grow significantly when the previous development does not allow for change.

of course the costs can be reduced more efficiently by working on the time and resources issues but we‘ll come to that in a moment.

Page 9: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the reduced number of resources

Som

e rig

hts

rese

rved

by

Stew

f htt

p://

flic.

kr/p

/AM

uDH

Page 10: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the reduced number of resources.. can be achieved by• .. making them achieve more (productivity)• .. not spending them on reccuring tasks (reusability)• .. reducing the number of problem fields (simplicity)• .. reducing proprietary knowledge (openness)

Multiple resources (developers) will have to be used when different skill sets are required. The less problem fields your project has the less ninjas do you need.

Often you find single developers a must have in all project as they are Mr. Knowitall. By spreading knwoledge evenly you can get rid of this dependency (clever developers will thank you for that).

A lot of stuff can also be done outside your company. Leverage communities!

Of course more resources are used to do stuff in parallel this is dealt with next.

Page 11: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the shorter timeframe

Som

e rig

hts

rese

rved

by

bria

ncon

nolly

htt

p://

flic.

kr/p

/6tx

d42

Page 12: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the shorter timeframe.. can be achieved by• .. utilising effective tools (productivity)• .. not reinventing the wheel (reusability)• .. making it easy to understand the next mans code (simplicity)• .. not introducing bugs and side effects with each change (stability)• .. not keeping devs busy replicating the project locally (compatibility)• .. pushing devs into a vibrant and helpful environment (support)

The majority of a projects time should be spent on things important for the client such as his desired functionality, usability and design. By using effective tools and reusing components you can save a lot of time.

Complicated environments, undocumented and complicated code and the unavailability of a codes creator can cost a lot of hours.

Page 13: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the improved result

Som

e rig

hts

rese

rved

by

The

Slus

hey

One

htt

p://

flic.

kr/p

/7Efi

Bk

Page 14: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

the improved result.. can be achieved by• .. well crafted functionalities and clear design (usability)• .. reducing the number of bugs and side effects (reliability)• .. making it fun to work with (performance)• .. making it long lasting (scalability)• .. enable it to be easily extended (extendability)

Any product that will „just about do it“ can easily begin to hiccup in real life when data load becomes a lot, traffic rises or more hardware needs to be used.

Don‘t make your client come back for problems with the product.Make him come back because he loves your work!

Page 15: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

put order to the buzz words

Som

e rig

hts

rese

rved

by

Attila

con

la c

ámar

a htt

p://

flic.

kr/p

/8Fb

VSr

Page 16: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

put order to the buzz words

save time

better result

save resources

lower price

happier client

reliabilityextendability

scalablityperformance

usability

compatibilitystability

simplicityproductivity

supportreusability

simplicityproductivityopennessreusability

reliabilityextendability

scalablityperformancecompatibility

stability

reliabilityextendabilityscalablityperformanceusability

Page 17: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

any decent open source framework

Som

e rig

hts

rese

rved

by

erix

! htt

p://

flic.

kr/p

/5D

PwN

q

Page 18: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

any decent open source framework.. will provide you with

• basic website functionalityby being able to reuse existing components i.e. orm, routing, templating, authentication, etc.. you can save resources and time

• a structure to work inmakes your code much simpler and more compatible, enhances communication and therefore improves productivity to save time

• good documentation and training materialssupports your productivity speed and saves time

• upgrades with bug and security fixes and enhancementseach reliable fix and enhancements that you can reuse but did not have to do yourself will save resources and time

Page 19: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

any decent open source framework.. will also provide you with

• a community of knowledgable peoplethey can provide support to you or even be hired as your system of choice is compatible to theirs. they can help you to save time

• tons of open source extensionswhich you can reuse and not develop yourself to save resources and time

• some development toolsi.e. logging or meaningful error messages can greatly enhance your productivity and save time

• controlat least that‘s what a framework should do. maintaining the control of your project and not having to bow down to a software lets you focus on usability more to make the client happier

Page 20: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

Symfony2

Som

e rig

hts

rese

rved

by

JF S

ebas

tian

http:

//fli

c.kr

/p/6

fm5j

b

Page 21: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

Symfony2

„so is Symfony2 some kind of special?”

the short answer is yes

Page 22: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

Symfony2 is really fast!Symfony2 uses very little memory!

Symfony2 adds very little overhead to your code.

helping you build much better products !

so. there you go. use Symfony2. thanks for listening!

Symfony2

Page 23: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

• Symfony2 already gained a good reputation within the PHP community• the Symfony community is one of the biggest PHP communities and

probably the most active (more than 180 contributors at the moment)

there are many people with in depth knowledge able and quick response to bug reports to support you save time

• the documentation is awesome, getting better on a daily basis and is already one of the best and most complete documentations in the PHP worldso there is a lot of information out there supporting you to save time

• Symfony2 applies learnings from more than five years of community feedback

making the framework more reliable and stable again to save time, to make the client happier and to lower the price

• Symfony2 applies best practices from various other technologies from the PHP world to Perl and Ruby and a lot from Java (Spring)making it even more reliable and stable to save time

Symfony2

Page 24: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

• there already is a huge number of bundles (Symfony2 term for plugins)enabling you to reuse rather than to reinvent and save time and resources

• classnames in Symfony2 follow approved naming conventionsmaking your code more compatible with other to eventually save time

• Symfony2 code comes with the MIT licence so you can use it commercially.

in contrast to i.e. GPL licensed this is a key requirement for commercial work!

• with Sensio exists a dedicated company driving the future of Symfony2

although not strictly necessary this backing will make clients happier

Sensio also organises Symfony2 conferences and talks to grow the community and also provides official trainings

• with OpenSky, KnpLabs and others there are even more companies actively supporting Symfony2!

companies trust other companies more than individuals so this makes clients happier

Symfony2

Page 25: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

Symfony2

„wait a minute that’s not special -that’s marketing!”

ok, there‘s more..

Page 26: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

• Symfony2 is fully unit tested!

enhancing reliability and stability a lot to save time and resources and lower the price and making the client happier

• Symfony2 is fully interoperable!

and can integrate non-Symfony2 code easily like other libraries or your own code to lower the price, save time and resources

• there has been a security audit on Symfony2 funded by the community!

enhanced security makes your application more stable and also makes the client happier and saves time and resources

• Symfony2 uses de-facto standard software such as PHPUnit

so the tools used in Symfony2 are probably known to your developers which saves time

• included in Symfony2 is the form framework!

easing one of the most time consuming tasks will save time

Symfony2

Page 27: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

• Symfony2 gives you the web profiler!

this tool is one of the most advanced debugging tools around and can definitely save time

• everything (!) in Symfony2 is completely decoupled

this enables you to exchange every single part or switch those off that you don‘t need to make it faster so you can build a better result and make the client happy

• the structure of Symfony2 encourages to write framework independent

so you can easily reuse your old legacy code but you can also easily reuse your new code in other even non-Symfony2 projects which will make your application more reliable in the future and will eventually lower the price and make the client happier

Symfony2

Page 28: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

a special feature deserves a dedicated slide.

Symfony2 respects, follows and fully supports the HTTP protocol

this may sound geeky and appears to be only a technical detail but it enhances the developers understanding of his application across the multiple tiers from the browser to the server.

• Symfony2 authentication and authorization follow the HTTP specification

this makes such important topics easy to understand and saves time and creates a better result

• Symfony2 comes with an amazing caching feature!

this feature is a PHP implementation of a reverse proxy or gateway cache that operates on standard HTTP protocol headers produced by the framework. it even supprts edge side includes (ESI) and can be replaced for production by Akamai, Varnish or Squid which will make a better result and make the client happier

Symfony2

Page 29: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

and another special feature deserves another dedicated slide.

Symfony2 comes with Twig for your templating as default

not many PHP frameworks use templating engines these days but Twig is just the perfect match. It is dead simple and it is stand alone.

web designers can easily work with Twig templates right away before any business logic s actually programmed or even started. It is very easy to create dummy contents that can later be replaced by the web programmers.

• so you can show the website to the client very early on in the process while still changing to the requirements and making the client happier

• this way you will make the requirements more stable before spending too much time on impleming them which saves time and resources

• design work and programmer work is in fact so decoupled that you can do the work in parallel without side effects and save more time

• Twig already takes care about output escaping so using Twig greatly enhances the security of your app and making the client happy

Symfony2

Page 30: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

Symfony2

„ooh wow!”

wait. there‘s more

Page 31: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

and then here is some good stuff to use for your own marketing

• Symfony2 comes with a Long Term Support of 3 years

during which time there will be fixes and enhancements making the framework more reliable which lowers the price and makes the client happier

• Symfony2 guarantees a stable API for all minor versions!

so unless upgrading to Symfony3 at some point you can be sure that all framework methods that you use and that are indicated as being covered by this warranty (with the @api annotation) will still reliably work so you save time, lower the price and make the client happier

• Symfony2 development is spread across many communities!

Doctrine as the default ORM is used outside Symfony2 as well and has ist own community pushing it further. the same goes for Twig, SwiftMailer and the Symfony Components so there is no development bottleneck but high reliability which makes the client happier

Symfony2

Page 32: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

anything else?

if Symfony2 is not an option for you –

you can still consider using it.

• consider to use the HTTP cache on ist own wrapping your application• consider to use Silex for small, special functionalities (i.e. Ajax responses)• consider to introduce Symfony Components in your applications• consider to use any of the stand alone libraries Doctrine, SwiftMailer, Twig, ..

Page 33: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

pitfalls to look out for

Som

e rig

hts

rese

rved

by

H G

M h

ttp:

//fli

c.kr

/p/8

opqa

Q

Page 34: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

pitfalls to look out for

currently Symfony2 is in beta state –it‘s fairly stable but not yet finished

this means• .. the documentation is growing still and might not yet cover everything• .. there are no best practices on how to work with Symfony2 just yet• .. code generation is not yet fully available which was a blast in symfony 1.4• .. Symfony2 still has some edges to take care of that can be quite complex

Page 35: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

links to further reading

Som

e rig

hts

rese

rved

by

H G

M h

ttp:

//fli

c.kr

/p/8

opqa

Q

Page 36: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

links to further reading• http://www.symfony.com/what-is-symfony, What is Symfony• http://symfony.com/contributors, Top Symfony2 contributors (all time)• https://github.com/fabpot/Silex, Silex micro framework• http://components.symfony-project.org/, Symfony Components

Page 37: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

questions?

Som

e rig

hts

rese

rved

by

dsb

nola

htt

p://

flic.

kr/p

/5D

euzB

Page 38: How your business can benefit from Symfony2 / PHPDay 2011 in Verona

please rate my talk and leave feedbackhttp://joind.in/2994

read me http://test.ical.lyfollow me http://www.twitter.com/caefer

fork me http://github.com/caeferstalk me http://about.me/caefer

thank you!