post-thumbnail

Być może słyszeliście o teście Joela Spolsky’ego “12 kroków ku lepszemu oprogramowaniu” (Spolsky, 2005, s. 29-42). Joel Spolsky to programista, pisarz i autor niezwykle popularnego programistycznego bloga Joel on Software.

Spolsky opracował test oceniający jakość zespołu programistów. Jak mówi sam autor, test jest “dalece niedoskonały”, ale jego największą zaletą jest to, że jego wykonanie trwa niecałe trzy minuty, a w zaoszczędzonym czasie, według Spolsky’ego, spokojnie zdążysz ukończyć akademię medyczną.

Test Joela składa się z 12 pytań, które wymagają udzielenia odpowiedzi “tak” lub “nie”. Za każda pozytywną odpowiedź zespół otrzymuje 1 punkt.

Jak, według Spolsky’ego, interpretować wyniki testu? Jeśli zespół programistów otrzymał 12 punktów, to znaczy, że tworzy wspaniały, zdyscyplinowany zespół, mogący tworzyć dobre oprogramowanie. 11 punktów to wynik do zaakceptowania, a 10 punktów i mniej wskazuje na poważny problem. Joel Spolsky twierdzi, że niestety większość firm wytwarzających oprogramowanie osiąga wynik 2-3 punktów, co świadczy o potrzebie zmian w zarządzaniu. Natomiast firmy osiągające najwieksze sukcesy na rynku, jak np. Microsoft, dbają o utrzymywanie 12-punktowego wyniku.

Pytania w tym teście wydają się bardzo ogólne i generyczne, ale dzięki temu pozwalają na głębsze wniknięcie w stosowane procedury, narzędzia i sposoby pracy danego zespołu.

W naszym zespole SolveQ test wywołuje burzliwe dyskusje. A co Wy sądzicie na temat zasadności i skuteczności Testu Joela?Jak w 3 minuty ocenić jakość zespołu programistów?

Test Joela

  1. Czy wykorzystujesz mechanizm kontroli wersji kodu źródłowego?
  2. Czy możesz skompilować cały system w jednym kroku?
  3. Czy przeprowadzasz kompilację po każdym dniu pracy?
  4. Czy utrzymujesz bazę danych z informacjami o wykrytych błędach?
  5. Czy usuwasz istniejące błędy przed napisaniem nowego kodu?
  6. Czy realizujesz projekt zgodnie z ustalonym wcześniej planem?
  7. Czy korzystasz ze specyfikacji?
  8. Czy programiści w Twoim zespole mają zapewnione właściwe warunki pracy (czyli przede wszystkim ciszę)?
  9. Czy wykorzystujesz najlepsze narzędzia dostępne na rynku?
  10. Czy korzystasz z pomocy testerów?
  11. Czy kandydaci do pracy w zespole muszą napisać próbkę kodu w trakcie rozmowy kwalifikacyjnej?
  12. Czy wykonujesz z zespołem tzw. korytarzowe testy użyteczności? (testy te polegają na zaczepianiu osób na korytarzu firmy i namawianiu ich do próby użycia napisanego kodu)

Zrobiliście test? Podzielcie się Waszymi wynikami i uwagami.

Bibliografia:

Spolsky J, Zarządzanie projektami informatycznymi, Gliwice 2005.