- Za specyfikację odpowiedzialna jest jedna osoba. Za jej dostępność, za wprowadzane do niej poprawki. Osoba ta rozwiązuje też sytuacje konfliktowe. Przykład z wykładu - kiedy przychodzi Project Manager do programisty i mówi, że ma być tak a tak, a on na to - "sorry, ale ta żaba to no way". Osoba odpowiedzialna za spec'a podejmuje ostateczną decyzję co ma być.
- Specyfikacja jest jednolita dla zespołu. Project Manager, programiści, QA, dostawca pizzy - wszyscy korzystają z tego samego dokumentu.
- Należy stosować jakiś sposób oznaczania rzeczy, które są niejasne, zostaną uzgodnione w przyszłości. Przyjęło się oznaczać takie miejsca magicznym FIXME.
- Specyfikacja przedstawia system z punktu widzenia użytkownika. Nie opisujemy szczegółów implementacji, ale to, jak system działa i wygląda dla tego, kto z niego korzysta.
- Wprowadzenie - ogólny opis systemu, tzw. The Big Picture. Co to jest, do czego to ma służyć.
- Scenariusze Użycia - jak użytkownik może korzystać z systemu, opisane na konkretnych przykładach, z konkretnymi (nazwanymi) uczestnikami. Ot tata Adam ma syna Jasia, którego chce zapisać do przedszkola (jeśli piszemy system elektronicznej rejestracji do przedszkoli). Co robi? Jak zachowuje się nasz system?
- "niecele" - czyli to, czego system na pewno NIE będzie robił. Jest to bardzo ważne dla naszego klienta, a dla nas jest gwarancją spokojnego snu. Ot, przykładowy klient przychodzi do nas z pretensjami, czemu właśnie wyprodukowany system nie robi tego-a-tego. Pokazujemy mu spec'a i mówimy, że 'jest tu wyraźnie napisane, że system tego robić nie będzie; a pan się pod tym podpisał...' ;). Jest to często pomijana, a tak na prawdę kluczowa składowa dobrego spec'a. Wraz z dobrym określeniem tego co system będzie robił, pomaga zarysować granice funkcjonalności projektu.
- Opis - czym jest projekt, z punktu widzenia. Tu ma miejsce podział systemu na różne fragmenty. Ale uwaga - to nie jest miejsce na Elizę Orzeszkową - mimo wszystko trzeba pisać o konkretach i unikać opisów pogody nad Niemnem.
- Składowe systemu - szczegółowy opis fragmentów, na jakie podzieliliśmy projekt. Jak powinny wyglądać, jak mają działać - ale cały czas z punktu widzenia użytkownika. Pożądane są tu wszelkiego rodzaju rysunki, screeny, concept art'y, itp.