Jestem jedynym programistą pracującym nad aplikacją internetową, która zbliża się do końca. Teraz zastanawiamy się nad uruchomieniem go za kilka miesięcy.
To aplikacja internetowa dla firmy spoza branży IT. Chociaż mają własny wewnętrzny zespół IT, zapytali mnie, jakie będą wymagania sprzętowe dla serwerów na żywo, np. RAM, 32-bitowy lub 64-bitowy.
Czy wewnętrzny zespół IT nie powinien tego robić, skoro jestem jedyną osobą pracującą nad projektem, czy moim obowiązkiem jest poinformowanie go o specyficznych wymaganiach sprzętowych, które mogą mieć wpływ na wydajność projektu?
Powód, dla którego zadaję to pytanie, jest taki, że nie robiłem tego wcześniej. Przez cały czas dostawałem serwer i prosiłem o wdrożenie na nim aplikacji. Nigdy nie martwiłem się konfiguracją serwera itp.
źródło
Odpowiedzi:
Być może uznają, że jako programista masz lepszy wgląd w wymagania aplikacji niż oni. Prawdopodobnie uruchomiłeś aplikację i wiesz, ile pamięci potrzebuje przy różnych obciążeniach.
Z punktu widzenia działu IT chętnie dostarczają wszystko, czego potrzebuje Twoja aplikacja. Prawdopodobnie mogliby dowiedzieć się, czego wymaga aplikacja na zasadzie prób i błędów, lub mogliby poprosić o opinię jednego z pracowników firmy, który może mieć wgląd w zachowanie aplikacji.
Często zdarza się, że programiści są proszeni o robienie rzeczy, które nie są ściśle określone w ich opisie stanowiska . Być może będziesz musiał napisać dokumentację, nawet jeśli jest personel techniczny. Być może będziesz musiał wziąć udział w procesie testowania, nawet jeśli istnieje dział kontroli jakości. Lub możesz zostać poproszony o pomoc w napisaniu oferty, nawet jeśli w projekcie jest analityk biznesowy. To normalne - należysz do zespołu, a twoją główną troską powinno być pomaganie zespołowi w osiągnięciu sukcesu. Jest to również dobre dla Ciebie, ponieważ zwiększa twoje doświadczenie i pomaga zrozumieć, co robią inni członkowie zespołu, i jest dobre dla firmy, ponieważ rozpowszechnia wiedzę.
źródło
Obowiązkiem dostawcy produktu (w tym przypadku firmy) jest zdefiniowanie minimalnych wymagań dla pomyślnego działania produktu. Jako osoba odpowiedzialna w Twojej firmie; może to być lider techniczny projektu ( brzmi jak ty ) lub CTO Twojej firmy - co nie ma znaczenia dla Twojego klienta.
Należy jednak podać minimalną listę specyfikacji, aby umożliwić prawidłowe działanie tego produktu na komputerze klienckim i serwerze.
źródło
Zależy to od kilku szczegółów. Ale generalnie mogą oczekiwać, że przynajmniej spełnią minimalne wymagania, ponieważ powinieneś mieć lepszą wiedzę na temat technologii zastosowanej w projekcie. Będziesz wiedział, która baza danych jest używana, jeśli użyjesz dodatkowego indeksatora do wyszukiwania pełnotekstowego, który może wymagać więcej pamięci lub wykorzysta dodatkowe rdzenie.
Z drugiej strony mogą też mieć trochę dodatkowej wiedzy, na przykład jakiego rodzaju obciążenia się spodziewać, ilu klientów może uzyskać dostęp do witryny i tak dalej.
Chciałbym po prostu nawiązać bezpośredni kontakt z zespołem IT i zdobyć wiedzę z obu stron.
źródło
Na tym etapie procesu powinni bezwzględnie prosić o te informacje. Zespół programistów / programistów jest odpowiedzialny nie tylko za pisanie kodu. Twoim zadaniem jest zrozumienie budowanej aplikacji i wszystkich jej wewnętrznych działań. Ta wiedza powinna pochodzić z wewnętrznych spotkań projektowych. Kto lepiej ocenia profil wykonania systemu ze wszystkimi jego niuansami niż zespół / programista, który go zbudował.
W tej fazie gry byłbym bardziej zaniepokojony, gdyby dyktowali konfigurację serwera, zamiast mnie pytać.
źródło
Wymagania sprzętowe nic nie znaczą.
Podczas gdy Ty, jako programista, myślisz w ten sposób, zachowaj ostrożność, aby nikt po stronie biznesowej nie przejmował się odpowiedziami na te pytania. Co będzie miało znaczenia to, jak aplikacja internetowa wykonuje . Na podstawie tego pytania podejrzewam, że nie masz wymagań dotyczących wydajności (takich jak liczba żądań na sekundę i średni czas ładowania strony). Powinieneś udzielić wskazówek technicznych przy opracowywaniu odpowiedzi na te pytania, zanim zaczniesz martwić się wymaganiami sprzętowymi.
Idealnie nie powinieneś tego robić sam: Ty, analityk biznesowy, ktoś z działu IT, który zna koszt serwera i kierownik projektu, powinieneś określić wymagania dotyczące wydajności i ich wpływ na zakres / harmonogram / budżet. Po uzgodnieniu z Tobą i IT możesz współpracować, aby dowiedzieć się dokładnie, co to znaczy, ale istnieje spora szansa, że będziesz chciał zrobić trochę optymalizacji oprócz dodania sprzętu.
Nawet jeśli musisz to zrobić sam, zalecam udokumentowanie wymagań dotyczących wydajności w wymiernych warunkach, które nie są arbitralnymi opisami sprzętu - da ci to również swobodę powrotu do IT i poproszenie o więcej, jeśli aplikacja nie jest ' t występować aż do tabaki.
źródło
Nie można oczekiwać, że znają wymagania sprzętowe oprogramowania, którego nigdy nie widzieli. Architekci i starsi deweloperzy powinni mieć przybliżone wyobrażenie o tym, ile mocy przechowywania i przetwarzania jest wymagane dla x-ilosci klientów. Jeśli chodzi o liczbę klientów, które oprogramowanie musi obsługiwać, zależy od klienta i naprawdę powinno znajdować się w specyfikacji wylogowania.
źródło