Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Firefox Chrome or Safari browser.

Przestańmy się zakładać!

To notoryczne, nielegalne, nieprofesjonalne i nudne!

90%
90% architektur to zakład.
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 20
1 2 3 4 5 6 7 8 9 30
1 2 3 4 5 6 7 8 9 40
1 2 3 4 5 6 7 8 9 50
1 2 3 4 5 6 7 8 9 60
1 2 3 4 5 6 7 8 9 70
1 2 3 4 5 6 7 8 9 80
1 2 3 4 5 6 7 8 9 90
1 2 3 4 5 6 7 8 9 100
Postawmy to na głowie - mierzmy nasze architektury.
O czym tu będzie?
czemu warto mierzyć

Powody by mierzyć?

  1. Koszt!
  2. Ludzie
  3. Wiedza

Wada projektu na etapie programowania może być najczęściej tylko zmitygowana, a nie poprawiona.

- własne doświadczenie

Kasyno zawsze wygrywa... bo dokłada wszelkich starań by tak się stało.

Słynne 4:1.

Ludzie

WIEDZA:

Mapy Google.

Powody decyzji znikają w mrokach niepamięci.

co znaczy 'mierzyć architekturę'

While there is no universal definition of software architecture, there is no shortage of them, either. The Software Engineering Institute’s web site collects definitions from the literature and from practitioners; at the time this book was published, the collection numbered over 90.

- Documenting Software Architectures by Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford.
czym jest architektura?
ZALEŻY
od systemu, od Ciebie
co sprawia, że system działa
zwykle spoina systemu, klej
architektura a projektowanie
Mierzyć architekturę znaczy sprawdzać czy wspiera ona spełnienie wymagań postawionych systemowi
jak?
kilka pytań nim zaczniesz:
  • kryteria, pułapy?
  • po co? dla kogo?
  • działający system, projekt?
  • Możecie mieć dowolną kombinację funkcjonalności pożądanych przez Ministerstwo Lotnictwa, jak długo nie wymagacie także, by tak zaplanowany samolot latał.

    - Willy Messerschmitt

    68% of companies are more likely to have a marginal project or outright failure than a success due to the way they approach business analysis.

    - raport IAG nt wpływu wymagań na sukces lub porażkę projektów IT

    Project Success Factors : % of Responses

    1. User Involvement : 15.9%
    2. Executive Management Support : 13:9%
    3. Clear Statement of Requirements : 13.0%
    4. Proper Planning : 9.6%
    5. Realistic Expectations : 8.2%
    6. Smaller Project Milestones: 7.7%
    7. Competent Staff : 7.2%
    8. Ownership : 5.3%
    9. Clear Vision and Objectives : 2.9%
    10. Hard-Working, Focused Staff : 2,4%
    Other : 13.9%

    - tzw. raport Chaosu, grupy Standish
    Narzędzia, metody...
    Odkrywanie wymagań, alias "discovery review":
    • Zanim zamrożą wymagania i kiedy architekt nieźle poznał problem i ma nań jakiś pomysł.
    • Koniecznie z decydentem upoważnionym do zmian wymagań!
    • Jeśli wydaje się niemożliwym spełnienie wszystkich wymagań, to pod koniec spriorytetyzujcie je.
    Jak odkryć / wynaleźć architektury?
    Kata
    http://platforma.com/doc-download.jsp?filePath=\etc\passwd
    Kandydackie architektury to wstęp do scenariuszówek
    Scenariuszówki: SALUTA, ATAM, SAAM, ARID
    Przykłady własnych:
    Niezawodność, dostępność:
    • wyłącz pół serwerowni
    • DDOS, DOS
    sudo apt-get install stress
    Rozszerzalność:
    • czy możesz dostarczać klientowi co tam chce przyrostowo?
    • czy możesz dostarczać klientowi co tam chce prosto?
    • czy możesz dostarczać klientowi co tam chce w określonych terminach?
    • przenieś system na inny OS - chodzi?
    • odpal pod inną przeglądarką - wszystkie funkcje są dostępne?
    • podbij wersję biblioteki - nadal ok?
    • zmiana wartości w konfigu?
    • zmiana konfigu?
    • zmiana protokołu - soft wynegocjuje w locie czy padnie?
    • dodajemy nowy sterownik?
    dług techniczny, kontrola defektów
    kwadrant Feathersa
    1 2 3 4 5
    uważaj na
    ogrywanie metryk: gdy koń tłusty; trawa bardzo zielona
    Dane
    8888888888888883888888888888388888
    8888888888888888888888e88888888888
    8888888888888888888e8388888ee88838
    8888888888838388888838888888388888
    8888888888888883888888888888388888
    8888888888888888888888e88888888888
    8888888888888888888e8388888ee88838
    8888888888838388888838888888388888
    8888888888888883888888888888388888
    8888888888888888888888e88888888888
    8888888888888888888e8388888ee88838
    8888888888838388888838888888388888

    Do informacji ile jest trójek został jeszcze kawałek.
    Podsumujmy!
    Obecnie 1 na 10 architektur jest jakkolwiek weryfikowana
    Czas to zmienić!
    Warto mierzyć: koszt, ludzie, wiedza...
    Architektura = jak uważasz.
    Mierzyć architekturę to sprawdzać czy sprosta wymaganiom.
    Da się to zrobić na etapie projektu jak i na żywym systemie.
    Wymagania: (nie)funkcjonalne.
    68% projektów pada na wymaganiach.
    Klucz do sukcesu to użytkownicy.
    Spróbuj DDD i wszechobecnego języka ("ubiquitous language").
    stress, New Relic, App Dynamics, JMeter, Java Melody.
    Testy, Sonar (dług, treemap), ~CodeCity.
    Metody: archi-kata, scenariuszowe, testy, kwadrant, retrospektywa.
    Dane a informacja; ogrywanie metryk; sens mierzenia...