Programista architekt - czego się uczyć

1

Cześć,
interesuje mnie rozwój w kierunku architekta IT. Aktualnie zajmuje się głównie klepaniem nowych funkcjonalności do systemu (począwszy od warstwy bazodanowej przez logikę biznesową i formatki). Jest to jednak dość monotonne i mało ambitne wg mnie. Wolałbym rozwijać się raczej w kierunku kreowania globalnych rozwiązań wykorzystywanych w całym systemie, rozwiązywaniem problemów koncepcyjnych z punktu widzenia programistycznego i ogólnie kwestiami związanymi z architekturą aplikacji.

Czego w związku z tym powinienem się uczyć, jakie umiejętności powinienem rozwijać? Czy można się do tego jakoś dobrze przygotować we własnym zakresie w domu, czy raczej jest to kwestia przede wszystkim doświadczenia i pracy przy dużej ilości projektów? Czy w waszych firmach są w ogóle stanowiska tego typu, czy po prostu bardziej doświadczeni programiści wspólnie wypracowują potrzebne globalne mechanizmy?

4

Nie wiem na ile pokrywa się to z rzeczywistością ale wypowiem się na podstawie tego jak jest w firmie której pracuję.
Architektów jest kilku w tym jeden z największym stażem w firmie. Przede wszystkim to co zauważyłem to są to osoby ze sporym doświadczeniem jako programiści, ale także jako osoby które parę lat (>6) pracują w firmie. Dzięki temu znają dokładnie jej potrzeby, wymagania i na tej podstawie stale kreują nowe pomysły dotyczące nowych projektów a także rozwijają aktualne. Są to osoby na pewno z dużą wiedzą, ale także osoby które szukają nowych technologi. Dużo czytają i później w dokumentacjach przedstawiają swoje pomysły oraz za i przeciw. Są to osoby które nie są ukierunkowane na konkretne rozwiązanie ale szukające nowych możliwości. No i także to co przykuwa moją szczególną uwagę. Jeśli ktoś ma wiedzę, umiejętności i potencjał ale jest aspołeczny (powiedzmy że taki wycofany, trudno mu się odnaleźć w grupie itp) to z tego co obserwuję jak jest w naszej firmie będzie tylko programistą. Architekt powinien potrafić porozmawiać z zespołem, przedstawić swoje propozycje, czasami przekonać niezdecydowanych itp. Ciężko mi tu wskazać konkretny obszar z czego można byłoby się wcześniej uczyć aby być architektem. Wydaje mi się że trzeba do tego dojrzeć. Nie mniej jednak jest to tylko i wyłącznie moja subiektywna opinia z obserwacji poczynionych w firmie w której pracuje.

1

To tylko klepiesz kod, czy potrafisz też zaprojektować coś, co działa?
Znasz wiele różnych technologii i wzorców projektowych?
Przy ilu projektach pracowałeś? Ile z nich odniosło sukces? W ilu z nich widziałeś błędy?

0

Podstawowa wartość architekta systemu to rozumienie biznesu i umiejętność oceny technologi przez pryzmat kosztów.

0

Polecam lekturę książki Software Architecture for Developers - Simon Brown'a, autor stara się tam odpowiedzieć właśnie na te pytania, czym jest architektura aplikacji, kim jest architekt, jakie powinien mieć cechy, a jakie cechy powinna mieć dobra architektura i jak komunikować podjęte decyzje światu. Książka wprawdzie w sporej mierze jest autoreklamą jego podejścia C4 do dokumentowania kodu, ale da się to przeżyć ;).

0

Jako architekt z już dość dużym stażem (6 lat) powiem, że to jest rola, która wymaga dużego doświadczenia w wielu różnorodnych projektach. Trzeba przede wszystkim świetnie programować, być ciekawym nowinek, ale też nie dać się porwać nieuzasadnionym trendom. Trzeba umieć się dogadywać z ludźmi, pomagać im, umieć przekonać bez narzucania zdania. Trzeba się dogadywać z biznesem, umieć słuchać, wyłuskiwać rzeczy niewypowiedziane, czytać między wierszami. Trzeba być dobrze zorganizowanych i umieć organizować pracę innych. Trzeba umieć czerpać z doświadczeń innych, nie uważać siebie za nieomylnego, co zjadł wszystkie rozumy i wszystko wie najlepiej. Architekt musi mieć szeroką wiedzę, znać często wiele technologii do tego samego, znać ich silne i słabe strony, natomiast nie musi mieć wiedzy głębokiej o poszczególnych technologiach. Dlatego musi umieć słuchać programistów, którzy są często lepszymi ekspertami od danej technologii, jednak nie może być na tyle oderwany od technologii, że można mu coś ściemnić, wciskać kit jak np można nietechnicznemu PMowi.

Dodam, że nie wieżę w architektów, którzy nie programują.
No i oczywiście mamy różnych architektów, to co wyżej napisałam było o architekcie systemowych nazywanym też architektem rozwiązania. Oprócz niego mamy też architekta integracji, architekta infrastruktury i najbardziej oderwanego od technologii architekta korporacyjnego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1