Czy zadaniem programisty jest sugerowanie wymagań IT?

26

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.

ashishjmeshram
źródło
6
Będąc po obu stronach tej monety (wieloletnie doświadczenie zarówno w IT, jak i SD), mogę śmiało powiedzieć, że gdybym miał nikiel za każdym razem, gdy zespół deweloperów dawał mi specyfikację sprzętową, która dokładnie pasuje do aplikacji, miałbym 0,00 $. Prawdopodobnie 90% było znacznie poniżej specyfikacji, a pozostałe najwyraźniej wymagały superkomputerów. Nie bój się współpracować z działem IT w celu ustalenia specyfikacji sprzętu! Połączenie wiedzy na temat aplikacji ze znajomością systemów i skalowalności przyniesie Ci znacznie więcej niż próba sprawdzenia specyfikacji procesora i pamięci RAM w oparciu o programowanie / testowanie.
Justin ᚅᚔᚈᚄᚒᚔ

Odpowiedzi:

52

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.

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ę.

Caleb
źródło
7
Heavy jest głową małego dewelopera sklepu kodowego, ponieważ to on musi nosić wiele czapek.
Philip
1
Niedawno zakończyłem migrację witryny Wordpress. Nie o tym dokładnie myślałem, kiedy postanowiłem zostać inżynierem oprogramowania, ale w małym zespole, zwłaszcza w małej firmie, robisz to, co należy zrobić dla dobra zespołu, nie dlatego, że pasuje to do twojego pomysłu jaka jest Twoja idealna praca.
konopie
15

czy moim odpowiedzialnym zadaniem jest poinformowanie ich o specyficznych wymaganiach sprzętowych, które mogą mieć wpływ na wydajność projektu?

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.

EL Yusubov
źródło
4
To. Zespół IT nie ma pojęcia, jak wymagająca może być Twoja aplikacja. Bez tej wiedzy udostępnienie serwera to dźgnięcie w ciemność. Jeśli nie wiedzą i muszą zapewnić serwer, zwykle dostaniesz coś potwornie przewymiarowanego, ponieważ nie chcą zbyt małego rozmiaru. O ile oczywiście nie ma budżetu, utkniesz na małym serwerze i będziesz obwiniony za każdy problem z wydajnością, jaki kiedykolwiek miał.
Brian Knoblauch,
6

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.

Thorsten Müller
źródło
1

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ć.

cdkMoose
źródło
0

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.

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.

kojiro
źródło
0

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.

Odwrócona lama
źródło