Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building the quality in

Jakub Zalas
September 16, 2013

Building the quality in

Agile methodologies are very popular these days. Writing user stories with acceptance criteria, standup meetings and other agile ceremonies are nothing new to the most of us.

Going one step further and automating the acceptance criteria with tools like Behat, improves the outer quality of the software we write, by focusing the development on the business goals from the very beginning.

On the other hand, tools like PhpSpec aim to ensure the inner quality of code, supporting the developer at every step by almost suggesting next actions to take.

During the talk Jakub presented development practices for developers focused on building quality into the application with a test-first approach.

Jakub Zalas

September 16, 2013
Tweet

More Decks by Jakub Zalas

Other Decks in Programming

Transcript

  1. Who am I? o  I work @SensioLabsUK o  I tweet

    @jakub_zalas o  I code @jakzal
  2. for me software quality is defined by factor how easy

    is to introduce and manage change without breaking product @cakper
  3. easier to maintain = less technical debt = less cost

    financially. @rich_81 plus, who likes working on crappy projects? ;-)
  4. software quality is very subjective! It's not only about the

    code @hhamon but also availability, ease to use, ease to change, failures tolerance, performance, backups management...
  5. Quality is really two levers: external and internal quality. External

    quality is the quality perceived by the customer. [Internal quality is] Quality of internals of the system: how well it is designed, how good the internal tests are, and so on.
  6. the extent to what the software takes into account what

    matters most for the customer & the maintainability of the source code @_md External quality Internal quality
  7. software quality? That the software delivers real value and is

    built in a sustainable way. @IanDominey External quality Internal quality
  8. Failing   step   Failing   test   Code  

    Refactor   Passing   step   External Internal
  9. Feature: Language detection In order to avoid frustration As a

    Visitor I want my language to be automatically detected Scenario: British visitor Given I am in the UK When I visit the homepage Then I should see the website in English Scenario: French visitor Given I am in France When I visit the homepage Then I should see the website in French Scenario: Unrecognised language Given my language cannot be determined based on location When I visit the homepage Then I should see the website in English
  10. Language Detection Listener •  Sets a locale on the Request

    if it can be determined •  Does nothing if locale cannot be determined
  11. Geo Ip Dictionary •  It returns a locale found by

    ip •  It returns a default locale if country could not be determined •  It returns a default locale if country is not supported