$30 off During Our Annual Pro Sale. View Details »

Bootstrap Your Project!

Thorsten Rinne
September 07, 2012

Bootstrap Your Project!

Thorsten Rinne

September 07, 2012
Tweet

More Decks by Thorsten Rinne

Other Decks in Technology

Transcript

  1. BOOTSTRAP
    YOUR PROJECT!
    Developer Conference Hamburg 2012

    View Slide

  2. THORSTEN
    RINNE
    ‣ Diplom-Informatiker (FH)
    ‣ Senior-Software-Entwickler
    ‣ Yatego GmbH
    ‣ phpMyFAQ
    ‣ @ThorstenRinne

    View Slide

  3. DAS PROJEKT

    View Slide

  4. NOT!

    View Slide

  5. Definiere die Projektvision

    View Slide

  6. Beginne mit einem kleinen
    Team.

    View Slide

  7. Aber bitte keine Code-Monkeys!

    View Slide

  8. Füge neue Entwickler
    langsam hinzu.

    View Slide

  9. Teile die Vision mit dem
    Team.

    View Slide

  10. Sammle alle Requirements.
    Zuerst die Wichtigen.

    View Slide

  11. Ordne sie nach ROI.
    Sammle alle Requirements.

    View Slide

  12. Dokumentiere
    deine
    Tasks!

    View Slide

  13. Priorisiere die Tasks nach
    ROI und Komplexität.

    View Slide

  14. Achte auf Cheap Wins!

    View Slide

  15. INFRASTRUKTUR

    View Slide

  16. Keine Hardware. Noch nicht.

    View Slide

  17. Virtuelle Maschinen

    View Slide

  18. View Slide

  19. $ vagrant box add base http://files.vagrantup.com/lucid32.box
    [vagrant] Downloading with Vagrant::Downloaders::HTTP...
    [vagrant] Downloading box: http://files.vagrantup.com/lucid32.box
    [vagrant] Extracting box...
    [vagrant] Verifying box...
    [vagrant] Cleaning up downloaded box...
    $
    Vagrant

    View Slide

  20. $ vagrant init
    A `Vagrantfile` has been placed in this directory. You are now
    ready to `vagrant up` your first virtual environment! Please read
    the comments in the Vagrantfile as well as documentation on
    `vagrantup.com` for more information on using Vagrant.
    $

    View Slide

  21. $ vagrant up
    [default] Importing base box 'base'...
    [default] Matching MAC address for NAT networking...
    [default] Clearing any previously set forwarded ports...
    [default] Forwarding ports...
    [default] -- 22 => 2222 (adapter 1)
    [default] Creating shared folders metadata...
    [default] Clearing any previously set network interfaces...
    [default] Booting VM...
    [default] Waiting for VM to boot. This can take a few minutes.
    [default] VM booted and ready for use!
    [default] Mounting shared folders...
    [default] -- v-root: /vagrant
    $
    Und fertig :-)

    View Slide

  22. Konfigurationsmanagement

    View Slide

  23. class nginx::package {
    anchor { 'nginx::package::begin': }
    anchor { 'nginx::package::end': }
    case $::operatingsystem {
    debian,ubuntu: {
    class { 'nginx::package::debian':
    require => Anchor['nginx::package::begin'],
    before => Anchor['nginx::package::end'],
    }
    }
    opensuse,suse: {
    class { 'nginx::package::suse':
    require => Anchor['nginx::package::begin'],
    before => Anchor['nginx::package::end'],
    }
    }
    }
    }

    View Slide

  24. Private
    und Public
    Clouds

    View Slide

  25. View Slide

  26. Jedes Feature ist ein Branch.

    View Slide

  27. Nutze HTML Diff E-Mails

    View Slide

  28. Automatisiere so gut wie
    alles. Entwickler sind faul.

    View Slide

  29. Nutze ein Wiki.
    Und halte es aktuell!

    View Slide

  30. Dokumentiere so, dass du
    ersetzbar bist.

    View Slide

  31. Nutze eine Tracking
    Software.

    View Slide

  32. FRAMEWORK. NIH.

    View Slide

  33. Nutze Frameworks. Für das
    Frontend. Für das Backend.

    View Slide

  34. Nutze bewährte Frameworks

    View Slide

  35. Nutze die Community

    View Slide

  36. Checke Google Hits der
    Technologie X

    View Slide

  37. Donald Knuth:
    „Premature
    optimization is
    the root of all
    evil.“

    View Slide

  38. Test-Driven-Development

    View Slide

  39. Der „Abbrechen“-Button?
    Wurde nicht getestet! :-(

    View Slide

  40. Unit-Tests für die wichtigen
    Basis-Klassen.

    View Slide

  41. Teste deine API automatisiert

    View Slide

  42. Keine Selenium-Tests zu
    Beginn. Zu teuer.

    View Slide

  43. VIELE, KLEINE MEETINGS

    View Slide

  44. Iteratives Vorgehen

    View Slide

  45. SCRUM

    View Slide

  46. KANBAN

    View Slide

  47. XP
    Kommunikation
    Einfachheit
    Feedback
    Mut
    Respekt

    View Slide

  48. XP Feedback Loops
    Release Plan
    Iteration Plan
    Acceptence Test
    Daily Standup
    Pair Negotiation
    Unit Test
    Pair Programming
    Code
    Monate
    Wochen
    Tage
    Tag
    Stunden
    Minuten
    Sekunden

    View Slide

  49. Daily Standup

    View Slide

  50. Team-Mittagessen

    View Slide

  51. ⇥ Timeboxing ⇤

    View Slide

  52. Vorbereiten auf Meetings

    View Slide

  53. 2 Wochen Rhythmus
    14 days

    View Slide

  54. Führe Retrospektiven durch

    View Slide

  55. Lerne aus ihnen!

    View Slide

  56. Pair-Programming fördert
    den Knowhow-Aufbau

    View Slide

  57. Pair-Programming reduziert
    den Fragen-Overhead

    View Slide

  58. Führe Usertests so früh wie
    möglich durch

    View Slide

  59. Rapid Feedback.
    Lenkt die Entwicklung.

    View Slide

  60. ÄNDERE NICHT ALLES.

    View Slide

  61. Bekämpfe das
    „second system syndrome“

    View Slide

  62. Nutze alten,
    wiederverwendbaren Code

    View Slide

  63. Nutze bewährte Bibliotheken

    View Slide

  64. Ständiges
    Refactoring

    View Slide

  65. View Slide

  66. Walking Skeleton

    View Slide

  67. A/B Testing
    20% Conversion Rate 25% Conversion Rate

    View Slide

  68. Monitoring

    View Slide

  69. Monitoring

    View Slide

  70. Lege dich spät fest.

    View Slide

  71. Habe Spaß am Projekt

    View Slide

  72. „Stay hungry, stay foolish!“
    Steve Jobs, 2005

    View Slide

  73. Fragen?
    Kommentare?

    View Slide

  74. Vielen Dank für Eure
    Aufmerksamkeit!
    Twitter: @ThorstenRinne
    App.net: https://alpha.app.net/thorsten
    Slides: http://speakerdeck.com/u/thorsten
    Thorsten Rinne
    Yatego GmbH
    [email protected]

    View Slide