Jako inżynierowie wszyscy „projektujemy” artefakty (budynki, programy, obwody, molekuły ...). To działanie (design-the-czasownik), które daje pewien wynik (design-the-rzeczownik).
Myślę, że wszyscy się zgadzamy, że rzeczownik jest innym bytem niż sam artefakt.
Kluczowym działaniem w branży oprogramowania (a właściwie w każdej firmie, w której należy ulepszyć powstały artefakt produktu) jest zrozumienie „projektu (rzeczownika)”. Wydaje się jednak, jako społeczność, całkowicie kompletnymi niepowodzeniami w rejestrowaniu tego, o czym świadczy wysiłek, jaki ludzie wkładają w odkrywanie faktów na temat swojej bazy kodu. Poproś kogoś, aby pokazał Ci projekt swojego kodu i zobaczył, co dostajesz.
Myślę, że projekt oprogramowania ma:
- Wyraźna specyfikacja tego, co oprogramowanie ma robić i jak dobrze to robi
- Wyraźna wersja kodu (ta część jest łatwa, wszyscy ją mają)
- Wyjaśnienie, w jaki sposób każda część kodu służy do osiągnięcia specyfikacji (np. Związek między fragmentami specyfikacji i fragmentami kodu)
- Uzasadnienie , dlaczego kod jest taki, jaki jest (na przykład, dlaczego dany wybór raczej niż inny)
To, co NIE jest projektem, jest szczególną perspektywą kodu. Na przykład [nie wybieraj specjalnie] diagramy UML nie są projektami. Są to raczej właściwości, które można uzyskać z kodu, lub prawdopodobnie właściwości, które można uzyskać z kodu. Ale z reguły nie można uzyskać kodu z UML.
Dlaczego po ponad 50 latach tworzenia oprogramowania dlaczego nie mamy regularnych sposobów na wyrażenie tego? (Zaprzeczaj mi wyraźnymi przykładami!)
Nawet jeśli to zrobimy, większość społeczności wydaje się tak skupiona na zdobywaniu „kodu”, że i tak gubi się rzeczownik projektu. (IMHO, dopóki projekt nie stanie się celem inżynierii, a artefakt zostanie wyjęty z projektu, nie będziemy tego omijać).
Co widziałeś jako środek do nagrywania projektów (w sensie, w którym to opisałem)? Przydałyby się wyraźne odniesienia do artykułów. Jak myślisz, dlaczego konkretne i ogólne środki okazały się nieskuteczne? Jak możemy to zmienić?
[Mam własne pomysły które podkreślają wypunktowany punkt widzenia powyżej, ale interesują mnie odpowiedzi innych ludzi ... i trudno jest wdrożyć mój plan [[i może to prawdziwy problem: -]]]
EDYCJA 2011/1/3: Jeden wątek odpowiedzi wskazuje, że „dokumentacja” (przypuszczalnie tekstowa, w szczególności nieformalna) może być odpowiednia. Chyba powinienem wyjaśnić, że nie wierzę w to. Narzędzia CASE pojawiły się na scenie od lat 80., ale wczesne narzędzia w większości przechwytywały piksele na schematach tego, co narysowałeś; chociaż narzędzia były prawdopodobnie komercyjnie udane, tak naprawdę nie były zbyt pomocne. Kluczowym wnioskiem było to, że jeśli dodatkowych artefaktów „projektowych” nie da się formalnie zinterpretować, nie można uzyskać poważnej pomocy ze strony narzędzia. Uważam, że ten sam wgląd dotyczy każdej długoterminowej użytecznej formy przechwytywania projektu: jeśli nie ma formalnej struktury, nie będzie miał żadnego rzeczywistego zastosowania. Dokumenty tekstowe prawie nie spełniają tego testu.