Niedawno wziąłem udział w wykładzie wygłoszonym przez Grega Wilsona (głównego naukowca oprogramowania Carpentry). Z streszczenia:
Pomysł, że twierdzenia o praktykach tworzenia oprogramowania powinny opierać się na dowodach, jest wciąż obcy dla programistów, ale w końcu zaczyna się zmieniać: każdy naukowiec, który twierdzi, że dane narzędzie lub praktyka sprawia, że tworzenie oprogramowania jest szybsze, tańsze lub bardziej niezawodne, jest teraz oczekuje się, że poprze to twierdzenie jakimś studium empirycznym.
Podsumowując, wykład był bardzo pouczający i pozwolił mi głęboko przemyśleć moje podejście do rozwoju. W szczególności szukam teraz cytatów na poparcie wielu stwierdzeń. Wcześniej przyzwyczaiłem się po prostu powtarzać oferowane prawdy, być może z uwagą, by sprawdzić to później.
Mówiąc wprost, byłem łatwowierny .
Oto przykład wzięty z wykładu:
„Jeśli ponad 25% kodu wymaga refaktoryzacji, szybciej go przepisać”.
Brzmi realistycznie, ale czy to prawda? Gdzie badanie to potwierdza? Czy to prawda dla wszystkich języków? I tak dalej.
OK, całkiem możliwe jest doprowadzenie tego do skrajności i nie uwierzenie nikomu, chyba że sam wyprowadziłeś to z pierwszych zasad. W ten sposób leży szaleństwo (a może matematyka ;-)). Ale jeśli ktoś podejdzie do ciebie z oświadczeniem w stylu „Hej, robiąc to w [wybierz język chwili] będziemy w stanie zwiększyć wydajność o [wybrać wielokrotność 10]%”, czy jesteś skłonny po prostu zaakceptować, czy też poprosisz o udowodnione dowody?
Jeśli to ten drugi (i mam nadzieję, że tak jest), to
- gdzie byś poszedł znaleźć te dowody?
- jak surowy byłbyś?
Krótko mówiąc, jeśli ktoś zaoferuje niezweryfikowane oświadczenie, czy odpowiesz „cytatem potrzebnym”?