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

Building in quality

Building in quality

During the talk Jakub will remind about the importance of building the quality into an application from the very beginning. Agile methodologies are very popular these days. Writing user stories with acceptance criteria, standups and other agile ceremonies are nothing new to most of us. Going one step further and automating the acceptance criteria with tools like Cucumber, JBehave or Behat, improves the external quality of software, by focusing the development on the business goals. On the other hand, unit level tools aim to ensure the inner quality of code and support the developer, but seem to be totally worthless from the client’s perspective. Besides, how do we make sure that we’re building the right thing? How do we get satisfying acceptance criteria? How do we keep the business engaged?

Jakub Zalas

April 07, 2014
Tweet

More Decks by Jakub Zalas

Other Decks in Programming

Transcript

  1. 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.
  2. 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
  3. software quality? That the software delivers real value and is

    built in a sustainable way. @IanDominey External quality Internal quality
  4. "I need users to log into the site to track

    their delivery." Mr Client
  5. As a User I need to log into the site

    So I could track my delivery
  6. As a User I need to see my deliveries So

    I could know when it's going to be delivered
  7. "I need users to log into the site to track

    their delivery." "Why?" "So they could see where's their package." "Why?" "What do you mean? They need to track their deliveries." "Yes, but why?"
  8. "Well, our mission is to offer the most customer friendly

    courier services. We want to increase the number of satisfied customers." "Aha!" "So they wouldn't get impatient and file complaints when the delivery is delayed." "Why?" "So they could know when is it going to be delivered." "Why?"
  9. < 5% of customers filing complaints Customers   Support  

    Notifications Contact the Customer if delivery is delayed Add expected delivery time to the confirmation message SMS notifications Add a tracking URL to the confirmation message E-mail notifications List of deliveries after logging in Prevent complaints Check delivery status Why? Who? How? What?
  10. Feature: Tracking deliveries As a Customer I need to see

    a status of my delivery So I could know when it's going to be delivered Scenario: Clicking a tracking URL Given I am waiting for a delivery And I received a confirmation message When I click the tracking URL from the message Then I should see a status of my delivery Scenario: Clicking a tracking URL month after delivery Given I my package was delivered a month ago And I kept the confirmation message When I click the tracking URL from the message Then I should be informed the tracking URL has expired
  11. Failing   step   Failing   test   Code  

    Refactor   Passing   step   External Internal