Mam pytanie, które podniosła moja ostatnia praca (raczej stażysta).
Po prostu w kontekście - mam 21 lat i ukończyłem drugi rok studiów, zanim miałem około 2 lata doświadczenia w pracy sys admin / QA i zasadniczo mogę powiedzieć, że widziałem, jak różne są Działały sektory IT. Pośpiesz się do teraźniejszości, a oto ja ląduję na stażu w jednej z najważniejszych instytucji badawczych w Wielkiej Brytanii.
Muszę stworzyć narzędzia wewnętrzne za pomocą różnych technologii - głównie AWS / Java / Bash - otrzymujesz obraz. Wszystko jest w porządku, wykonuję swoją pracę ALE nie jestem szczęśliwy. Dlaczego tak jest - skoro mam pracować w sprawie ad hoc. To jest tworzenie rzeczy szybko, bez poświęcania czasu na projektowanie. Mój kierownik wyraźnie stwierdził, że spodziewano się, że „pośpieszymy się” przez pojawiające się problemy, a my zasadniczo. W rezultacie okazało się, że trzeba było przerobić i przeprojektować i nadal nie są one idealne. Jeśli chodzi o testowanie - ogranicz go do minimum, dopóki wygląda na to, że działa, jest w porządku.
Czy jestem winny nie zgadzać się z tym sposobem prowadzenia pracy? Czy źle jest myśleć o systemie jako całości, a następnie skupić się na różnych komponentach i zobaczyć, w jaki sposób mogą ze sobą współpracować, aby wyzerować różne „kluczowe punkty”, które mogą okazać się problematyczne w przyszłości? Czy przestępstwem jest chęć wykonywania dobrej pracy, a nie „szybkiej pracy”? Czy błędem lub niewłaściwym podejściem jest badanie struktur danych mających zastosowanie do problemu, abyś mógł wybrać najlepszy w zależności od konkretnego zestawu problemów? O ile dobrze rozumiem, bit „Inżynieria” w „Inżynierii oprogramowania” ma dokładnie z tym związek - zbadać domenę problemów i znaleźć przemyślane rozwiązanie, a następnie udoskonalić w razie potrzeby?
Byłem na rozmowie w biurze Arm w Wielkiej Brytanii i pokazali mi swój pokój SCRUM i wyglądało na to, że mieli całkiem niezły pomysł na zarządzanie swoim projektem - mieli zaległości, mieli mierniki, jak długo każdy problem może zająć do rozwiązania - zwykłe rzeczy dla SCRUM - zupełnie inne niż sposób działania „tutaj”
Czy ogólnie pomyślałem o branży oprogramowania? Chciałbym usłyszeć twoją opinię na ten temat. Mam na myśli, że „weszłam” w tworzenie oprogramowania wyłącznie dlatego, że chcę tworzyć rzeczy - proste i proste, ale chcę tworzyć rzeczy wysokiej jakości. Chcę zobaczyć, jak moje oprogramowanie jest używane w różnych scenariuszach, chcę, aby było ono kuloodporne - czy nie jest to siłą napędową wszystkich inżynierów oprogramowania? Myślę, że każdy może być programistą / programistą, po prostu ucząc się składni, ale dla mnie prawdziwa zabawa zaczyna się wtedy, gdy trzeba wymyślić projekt, który można wykonać w prawdziwym świecie.
Zwykle wykonywałem swoje zadania na uniwersytecie, po prostu patrząc na nie i bezpośrednio rozpoczynając kodowanie. Mogłem łatwo uzyskać oceny powyżej 75% i nigdy tak naprawdę nie doceniałem modułu „cyklu życia oprogramowania”. Ale teraz, kiedy zobaczyłem w prawdziwym świecie, jak źle jest pracować bez żadnego formalnego procesu i frustracji związanej z sytuacją, w której nie wiesz, czy wymagania zmienią się jutro (och, czy powiedziałem, że nie nie masz jasno zdefiniowanej analizy wymagań?)
Naprawdę lubię wierzyć, że właśnie osiągnąłem pozycję, w której niektórzy ludzie potrzebowali po prostu małpy kodowej, aby wykonać swoją brudną robotę, a tak nie jest w przypadku całego świata oprogramowania.
because I'm expected to work in an ad-hoc matter. That is create things quickly, without spending time on designing
- Witamy w The Real World ™, gdzie są terminy i oczekuje się, że firmy przyniosą rezultaty.