Browsed by
Category: Architecture

Jak podejmować wystarczająco dobre decyzje? – podejście analityczne

Jak podejmować wystarczająco dobre decyzje? – podejście analityczne

W tym artykule chciałbym Ci krok po kroku zaprezentować moje podejście do dokonywania wyborów. Ale nie byle jakich wyborów, tylko wyborów dostatecznie dobrych. Jest to o tyle istotne, że w dzisiejszym świecie bardzo łatwo jest popaść w tak zwany paraliż decyzyjny. Sytuację, gdy analiza opcji przed podjęciem decyzji jest ważniejsza niż sama decyzja. Dość łatwo szukając idealnego rozwiązania, analizować coraz to nowe opcje lub też pogłębiać analizę tych już znanych. W efekcie ciągle nie możemy się zdecydować, co wybrać. Sytuacja…

Read More Read More

Narzędzia do rysowania diagramów

Narzędzia do rysowania diagramów

Mam wrażenie, że diagramy są jednym z moich najczęściej używanych narzędzi jako architekta i konsultanta. Język wizualny jest jednym z najbardziej uniwersalnych i najprostszych sposobów przekazywania i przede wszystkim uwspólnienia wiedzy. W związku z tym do codziennej pracy potrzebuję dobrego narzędzia do rysowania diagramów. Takich narzędzi jest bardzo wiele, jednak zanim zaczniemy zastanawiać się, które z nich wybrać (lub w ogóle jakie mamy możliwości), to trzeba zdefiniować nasze wymagania. W moim przypadku bardzo mocno zależy mi na swobodzie tworzenia diagramów….

Read More Read More

Jak zrobić wdrożenie aplikacji bez przestojów?

Jak zrobić wdrożenie aplikacji bez przestojów?

Dziś porozmawiamy o wdrożeniach i o tym, w jaki sposób można zrobić wdrożenie aplikacji bez przestojów, żeby żaden z naszych klientów tego nie zauważył. Jak wygląda normalne wdrożenie aplikacji? Gdy wdrażamy kolejną wersję naszej aplikacji na serwer (mowa tu w szczególności o aplikacjach webowych), musimy wykonać kilka kroków: Wyłączamy usługę.  Wgrywany nowe pliki.  Włączamy usługę.  Poniższa animacja świetnie to obrazuje. Nie jest moja, ale bardzo mi się spodobała. Tak więc pomiędzy pierwszym a ostatnim krokiem mamy przestój w działaniu aplikacji….

Read More Read More

Rozwój aplikacji bez rewolucji u klientów

Rozwój aplikacji bez rewolucji u klientów

W pracy związanej z rozwojem oprogramowania naturalne jest, że każda aplikacja, każdy system, który tworzymy prędzej czy później będzie musiał być zmodyfikowany. To normalne, świat się zmienia, wymagania biznesowe też, dlatego nasze systemy muszą dopasowywać się do tych zmian. Niektóre modyfikacje są małe i nie wpływają zbyt mocno na system. Jednak prędzej czy później nadchodzą potężne zmiany, które potrafią wywrócić nasze dotychczasowe myślenie do góry nogami. Jak więc wdrażać takie zmiany w systemach w bezpieczny sposób, upewniając się, że nasi…

Read More Read More

Warstwa kompatybilności – najłatwiejszy sposób na zapewnienie kompatybilności wstecznej

Warstwa kompatybilności – najłatwiejszy sposób na zapewnienie kompatybilności wstecznej

W artykule Kompatybilność wsteczna – co to oznacza i jak o nią dbać? opowiedzieliśmy już sobie czym jest kompatybilność wsteczna. Z kolei w Rozwój aplikacji bez rewolucji u klientów pokazaliśmy, czym grozi wprowadzanie zmian niekompatybilnych wstecz.Tym razem skupimy się na jednym z wzorców pomocnym w zapewnieniu kompatybilności wstecznej jakim jest warstwa kompatybilności. Metaforycznie Jaki mamy problem? Na początku zastanówmy się jak zapewnić kompatybilność wsteczną na bardziej życiowym przykładzie.Załóżmy że: chcemy wyremontować odcinek drogi ekspresowej, przejeżdża nią ok. 20 000 samochodów…

Read More Read More

Kompatybilność wsteczna – co to oznacza i jak o nią dbać?

Kompatybilność wsteczna – co to oznacza i jak o nią dbać?

Czym jest kompatybilność wsteczna? Kompatybilność wsteczna – najłatwiej wytłumaczyć to, a nawet zobaczyć, na codziennym przykładzie. Pewnie większość z Was kojarzy, że w telefonach jeszcze niedawno standardem były ładowarki ze złączem USB Typu B, jednak od pewnego czasu standardem są już złącza typu C. Jak możecie zauważyć na diagramie – oba te złącza są kompletnie różne. Czyli po prostu wtyczka pasująca do gniazda pierwszego typu, nie będzie pasowała do gniazda drugiego złącza. Wtedy możemy powiedzieć, że te dwa interfejsy (wtyczki)…

Read More Read More

Jak modelować zagrożenia za pomocą STRIDE?

Jak modelować zagrożenia za pomocą STRIDE?

Praktyka modelowania zagrożeń podczas tworzenia oprogramowania wymaga sporego przygotowania i dużej wiedzy ze strony zespołu, który ją przeprowadza. Jeżeli zespoły deweloperskie dopiero zaczynają stosować takie podejście, warto im ułatwić wejście w to zagadnienie. Temu służy właśnie STRIDE. W tym celu przydatne jest obudowanie modelowania zagrożeń w łatwy do zrozumienia i powtarzany proces. Dzięki temu nawet osoby, które na co dzień nie zajmują się bezpieczeństwem, będą w stanie w sprawny sposób brać udział w wymyślaniu kolejnych zagrożeń. Jako przykład załóżmy, że…

Read More Read More

How to make an architecture roadmap plan?

How to make an architecture roadmap plan?

Some time ago in my current company, we faced a challenge of preparing the long term architecture roadmap. Strategic planning is a very important part of architect work. We need to know what our destination is before we start a journey. That’s why all the technical work needs to be aligned with a big picture of the technical organization. It is worth to do this at least once a year to keep all the technical goals clear and updated with…

Read More Read More

Obowiązki architekta IT

Obowiązki architekta IT

Co jakiś czas ktoś zadaje mi pytanie: czym właściwie zajmuje się w pracy? Pomyślałem więc, że wartościowe będzie opisanie tutaj, czym właściwie zajmuje się architekt IT.Często ta rola kojarzona jest z dość zamkniętym kręgiem wszystkowiedzących osób, które za zamkniętymi drzwiami podejmują wszystkie “ważne” decyzje w projekcie. Znam też historie architektów, którzy autorytarnie podejmowali decyzje, które nie zawsze wychodziły na zdrowie zespołowi. Myślę, że pojęcie architekta jest dość pojemne i każdy może o tej funkcji myśleć w inny sposób. Postaram Ci się…

Read More Read More