Big guns

for the small guys

Drupalcamp London 2015

28th February 2015

Who am I?

Engineer

Drupaleer

class DrupalCore{
    public function __construct() {
        $this->god = new God();
    }
    public function hack() {
        $this->god->kill_kitten();
    }
}

class God {
    public function kill_kitten() {
        $shelter = new Shelter();
        $lightninh = new Lightning();
        $shelter->get_kitten->apply($lightning);
    }
}

Geek father

http://media.boingboing.net/wp-content/uploads/2014/11/darth-vader-face.jpeg

http://media.boingboing.net/wp-content/uploads/2014/11/darth-vader-face.jpeg

Daft Vader

http://bronyman1995.deviantart.com/art/Darth-Vader-and-Rainbow-Dash-337777085

Rainbow dash!

Somethings I have done

Premises

1. Small team

2. Slow hardware

3. No cloud/IT

4. No $$$

Advice

1. Wear sunscreen

Disclaimer

Mostly back end...

The size of the gun is relative

We are not a panzer division

We are paratroopers

So let's choose the gun with the best value!

Myths

1. Bigger = faster

2. Bigger = better

3. You need CI

4. You need virtualization

5. Waiting for the perfect test is OK

(my) Truths

1. Small = lean

2. Small = weak

3. The smaller the client the peskier

4. Quality is about perception

5. You need tests

6. Humans make stuff as badly as possible,

but not worse

Processes

1. Do not multitask

2. Manage expectations

3. Lie to your PM/Client

4. Draw

5. Checklists

6. Workflows

7. Prepare

8. Do not allow others to dictate your professional dedication

9. Do not develop: assemble instead

10. Pay others to do what you do not master

11. Plan your work

What to test?

(Front end)
 Back end

Unit tests

Code complexity

Functional testing

Do not let the front end ruin your functional testing

Smoke tests

Regression tests

Performance tests

When to test?

During development

On integration

Each release

And my config?

Choose carefully

Very carefully

What is config?

Features + Strongarm

Profile + code

Profile + forms

Deployment module
 (update hooks)

Spreadsheet

Patterns

Selenium scripts

It must be run by your deployment script...

Drupal tools

Just one rule:
 chose tools you will use

OMG!

New!

(x) Tools

Just one rule:
 chose tools you will use

Links

http://www.ansible.com/home
http://robo.li/
https://getcomposer.org/
http://git-scm.com/
https://github.com/
http://phpqatools.org/
https://www.phptesting.org/
http://sismo.sensiolabs.org/

http://phpbrew.github.io/phpbrew/
http://aws.amazon.com/
https://www.loggly.com
https://www.drupal.org/project/logs_http
http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html
http://www.thekelleys.org.uk/dnsmasq/doc.html

https://www.drupal.org/project/drush_recipes
https://www.drupal.org/project/drush_cleanup
http://www.drush.org/en/master/make/
https://www.drupal.org/project/feather
https://www.drupal.org/project/drush_hosts
https://www.drupal.org/project/drush_cache_bins
https://www.drupal.org/project/makefile_extra
https://www.drupal.org/project/fetcher
https://www.drupal.org/project/drulenium
https://www.drupal.org/project/patchfile
https://www.drupal.org/project/drush_drake
https://github.com/reload/drake_ci
https://www.drupal.org/project/rebuild
https://www.drupal.org/project/drush_remake
https://www.drupal.org/project/profiler_builder

https://www.drupal.org/project/environments
https://www.drupal.org/project/githook

http://www.seleniumhq.org/

https://saucelabs.com/

http://browsershots.org/

http://slimerjs.org/

http://phantomjs.org/

http://bbc-news.github.io/wraith/index.html

Thanks!

Jorge Lopez-Lago

Kurkuma

Made with Slides.com