Zauważyłem, że jest dużo firm, które wykonują aplikacje internetowe na zlecenie.
Te firmy są po to, żeby umożliwić posiadanie strony przez osobę, która nie umie programować.
Tylko chciałem zadać pytanie "na jakim poziomie abstrakcji" są ustalenia co do aplikacji między klientem a firmą.
Prosty przykład. Klient chce zlecić napisanie aplikacji rozwiązującej równania kwadratowe. Można wymyślić następujące poziomy. Poziom 1 jest to najbardziej abstrakcyjny, gdzie klient nawet nie zna zagadnienia, a ostatni poziom, to jest "kawa na ławę", czyli dokładne przedstawienie algorytmu obliczeń.
Poziom 1:
Program, który oblicza i wyświetla rozwiązanie równania Ax^2 + Bx + C = 0
Poziom 2:
Program, dla którego dane jest równanie kwadratowe, oblicza wyróżnik trójmianu kwadratowego, sprawdza, ile jest rozwiązań i wyświetla oba rozwiązania lub jedno rozwiązanie lub informację, że nie ma rozwiązań.
Poziom 3:
Program ma służyć do obliczania równania kwadratowego postaci Ax^2 + Bx + C = 0.
Użytkownik podaje wartości A, B i C, następnie oblicza się wartość D ze wzoru (B^2)-(4AC).
Jeżeli D < 0 to wyświetl informację, że nie ma rozwiązań
Jeżeli D = 0 to oblicz wartość -B/(2A) i wyświetl ją jako rozwiązanie
Jeżeli D > 0 to oblicz wartość (-B-aqrt(D))/(2A) i wyświetl ją jako pierwsze rozwiązanie, potem oblicz wartość (-B+aqrt(D))/(2*A) i wyświetl ją jako drugie rozwiązanie
Weźmy przykład: http://pobierzpliki.pl/.
Poziom pierwszy to omówienie, że potrzebuję strony, która umożliwia ominięcie limitów na serwerach Rapidshare, Megaupload itd i o tym, jak strona ma wyglądać i działać jak korzysta z niej klient. A to, co trzeba zrobić, żeby ominąć limit, to firma programistyczna się tym zajmie, bo od tego jest.
Natomiast ostatni poziom, to jest wtedy, kiedy ja doskonale znam sposoby, żeby ominąć ograniczenia tych serwerów, przedstawiam swoją wiedzę firmie programistycznej, a cała ich robota to tylko przeniesienie projektu z papieru do edytora do skryptów.
Inny przykład:
Potrzebuję napisać program, w którym wprowadza się współrzędne gamutu i bieli monitora, a program wyświetli mi obszar kolorów, jakie ten monitor może wyświetlić oraz wyświetli najbardziej zbliżony kolor dla danego widma światła.
Nie ulega wątpliwości fakt, że żeby napisać taki program, trzeba posiadać wiedzę z zakresu teorii koloru, przestrzeni barw, gamutu, mieszania barw światła itd.
Poziom pierwszy to taki, że ja mówię, co program ma robić, a firma programistyczna jest od tego, żeby dowiedzieć się, jak to wszystko się liczy, jakie algorytmy i napisać program.
A ostatni poziom to taki, że to ja poczytam o tym wszystkim, dopiero, jak będę znać algorytmy, które są potrzebne w tym programie, to wtedy zwracam się do firmy programistycznej i podaję dokładnie, jak ma działać program.
Oczywiście, w każdym przykładzie jest wiele pośrednich poziomów.
Pytanie:
Czy firmy programistyczne z reguły chcą rozmawiać z klientem na pierwszym poziomie (klient mówi tylko, co potrzebuje, a resztą zajmuje się firma), czy na ostatnim poziomie (firma wymaga dokładnego opisu działania programu)? Czy jakiś poziom pośredni?