Najważniejszą funkcją specyfikacji jest zaprojektowanie programu . Nawet jeśli sam pracujesz nad kodem i piszesz specyfikację wyłącznie dla własnej korzyści, samo napisanie specyfikacji - opisującej jak program działa w najdrobniejszych szczegółach - zmusi cię do zaprojektowania programu ...
... kiedy projektujesz swój produkt w języku ludzkim, próba wymyślenia kilku możliwości, zmiany i ulepszenia projektu zajmuje tylko kilka minut. Nikt nie czuje się źle, gdy usuwa akapit w edytorze tekstu. Ale kiedy projektujesz swój produkt w języku programowania, tworzenie iteracyjnych projektów zajmuje tygodnie . Co gorsza, programista, który spędził 2 tygodnie na pisaniu kodu, będzie do niego bardzo przywiązany, bez względu na to, jak źle jest ...
... Kiedy piszesz spec, trzeba tylko do komunikowania się, w jaki sposób program ma pracy raz . Wszyscy w zespole mogą po prostu przeczytać specyfikację. Ludzie kontroli jakości czytają go, aby wiedzieli, jak program powinien działać i wiedzieli, na co się testować. Marketingowcy używają go do pisania niejasnych białych ksiąg vaporware, aby rzucać na stronie internetowej o produktach, które nie zostały jeszcze utworzone. Ludzie zajmujący się rozwojem biznesu błędnie odczytali to, by stworzyć dziwne fantazje na temat tego, jak produkt wyleczy łysienie, brodawki i inne rzeczy, ale przyciągają inwestorów, więc to jest w porządku. Programiści czytają go, aby wiedzieli, jaki kod napisać. Klienci czytają to, aby upewnić się, że programiści budują produkt, za który chcieliby zapłacić. Autorzy techniczni przeczytali go i napisali fajną instrukcję ...
Kiedy nie masz specyfikacji, cała ta komunikacja wciąż się dzieje, ponieważ musi , ale odbywa się ad hoc . Ludzie QA wygłupiają się z programem chcąc nie chcąc, a kiedy coś wygląda dziwnie, idą i przerywają programistom po raz kolejny, zadając im kolejne głupie pytanie o to, jak to ma działać ...
bez szczegółowej specyfikacji niemożliwe jest ustalenie harmonogramu ... W zbyt wielu organizacjach programistycznych, za każdym razem, gdy odbywa się debata projektowa, nikomu nie udaje się podjąć decyzji, zwykle z powodów politycznych. Dlatego programiści pracują tylko na kontrowersyjnych rzeczach. W miarę upływu czasu wszystkie trudne decyzje zostają zepchnięte do końca ... Pisanie specyfikacji to świetny sposób na utrudnienie wszystkich irytujących decyzji projektowych, dużych i małych, które zostaną ukryte, jeśli nie masz specyfikacji. ..