Czy „Agile” można zastosować do zespołów IT w służbie zdrowia?

26

Czy Agile może być zatrudniony w takich dziedzinach, jak Healthcare IT, gdzie tak duża opieka nad pacjentem zależy od jakości i terminowej dostawy systemów?

Yannis
źródło
Na stronie Dr.Dobbs znajduje się interesujący artykuł na temat doświadczeń GE w zakresie rozwiązań Imaging Solutions z przejściem na metodykę Agile.
Goran Peroš

Odpowiedzi:

21

Tak, zwinny rozwój absolutnie odgrywa rolę w rozwoju IT w służbie zdrowia. Słabo przeprowadzony proces rozwoju nie jest dobrze obsługiwany przez nikogo, ani użytkownika końcowego, ani pacjenta, a na pewno nie zespół programistów. Biorąc pod uwagę niektóre zasady leżące u podstaw manifestu Agile (lista bezwstydnie zgrana z Wikipedii z moim komentarzem):

  • Zadowolenie klienta poprzez szybką dostawę przydatnego oprogramowania . Kiedy nie jest to celem?
  • Witamy zmieniające się wymagania, nawet w późnej fazie rozwoju . Opieka zdrowotna IT integruje się z dziedziną, która choć jest całkowicie zalana technologią, nie jest szczególnie skoncentrowana na IT. Potencjał zaprojektowania systemu do „poprawienia go” od samego początku jest dość niski.
  • Działające oprogramowanie jest dostarczane często (tygodnie zamiast miesięcy) . Jako użytkownik końcowy niektórych z tych rzeczy, Bóg chciałbym to uwielbiać. Szybkie, działające zmiany są nieocenione, a to, co zmienia Healthcare IT z „tego, co musimy zrobić”, w „to, co zmienia sposób, w jaki wykonuję swoją pracę”.
  • Działające oprogramowanie jest główną miarą postępu . Ma to sens w większości aplikacji, więc naprawdę nie ma powodu, aby nie obejmował HIT.
  • Zrównoważony rozwój, w stanie utrzymać stałe tempo . Widzisz to w całej opiece zdrowotnej, od nadzoru infekcji po HIT po placówki. Opieka zdrowotna to nie cykl koniunkturalny, to ciągłe bębnienie.
  • Ścisła, codzienna współpraca między biznesmenami a programistami . Większość HIT nie jest narzędziem programistycznym. To narzędzie stworzone przez programistów. Kontakt z klientem jest i powinien być kluczem. Znacznie łatwiej jest też zaadoptować system, jeśli działa i integruje się z przepływem pracy klienta, zamiast konieczności naprawy, załatania itp.
  • Najlepszą formą komunikacji (kolokacja) jest rozmowa twarzą w twarz . Z mojego interakcji z lekarzy, to sposób łatwiej dostać rzeczy zrobić osobiście, najlepiej z klocków papieru, niż jakikolwiek inny sposób.
  • Projekty budowane są wokół zmotywowanych osób, którym należy ufać . To coś sprawi, że twoje życie będzie lepsze - więc tak, powinno zostać przyjęte;)
  • Ciągła dbałość o doskonałość techniczną i dobry design . To znowu jedna z tych rzeczy „każdy powinien to zrobić, więc oczywiście powinieneś”. Zastanów się jednak nad złożonością systemów HIT i niezliczonymi sposobami ich wykorzystania w dzień, w dzień. Tandetny system nie zamierza tego wyciąć.
  • Prostota . Powinien działać po wyjęciu z pudełka. Powinien działać dobrze przez cały czas i tak, jak powinien. Ludzie są idiotami. Pracownicy służby zdrowia to ludzie. Dlatego ... znasz resztę. Prostota pomaga.
  • Zespoły samoorganizujące się . To może być trochę więcej dla HIT. Szczerze mówiąc, nie jestem wystarczająco pewny siebie, aby powiedzieć w ten czy inny sposób, czy samoorganizacja w tym otoczeniu jest dobra, czy nie.
  • Regularne dostosowanie do zmieniających się okoliczności . HIT jest aktywną, rozwijającą się branżą ze złożonymi, zmieniającymi się obciążeniami regulacyjnymi. Możliwość adaptacji wydaje się być dobrym pomysłem.
Fomite
źródło
Jeśli czekasz do końca projektu na dostarczenie „dowolnego” oprogramowania, nie sądzę, aby twój cel był bardzo szybki. Tylko mając luźną definicję, możesz zastosować ją do wszystkich.
JeffO
4
„Zadowolenie klienta poprzez szybką dostawę przydatnego oprogramowania.”: Szybka dostawa? Kiedy produkujesz oprogramowanie o kluczowym znaczeniu, takie jak np. Oprogramowanie do biopsji, bardziej zależy Ci na poprawności niż na szybkim dostarczaniu. I nie możesz się doczekać, aż opinia klienta skoryguje pewne problemy, takie jak: „Hej, pobraliśmy kilka biopsji z niewłaściwej pozycji ciała, klient nie jest zadowolony, chodźmy naprawić to podczas następnego sprintu”.
Giorgio
3
@Giorgio Nikt nie powiedział, że oprogramowanie nie powinno być tak poprawne, jak wymaga tego jego domena. „Zwrotna dostawa” części zwinnej ma dotyczyć przyrostowego dostarczania funkcji, a nie przyrostowego naprawiania błędów. Jeśli oprogramowanie wykonuje więcej niż tylko raporty z biopsji, to czy klient musi poczekać, aż każda funkcja zostanie wdrożona, zanim będzie mógł sprawdzić, czy funkcja biopsji rzeczywiście robi to, czego chce? Oczywiście, gdy poprawność jest priorytetem, musisz być bardziej rygorystyczny w kwestii rozdzielania problemów i testowania regresji.
Doval
15

Dyskusje na temat korzystania z oprogramowania Agile Medical Device Software w środowisku regulowanym przez FDA już od jakiegoś czasu są związane z tym pytaniem. Oto kilka powodów, dla których:

  1. Zalety i wady Waterfall vs. Iterative są zasadniczo takie same i należy je wziąć pod uwagę przy każdym projekcie informatycznym dotyczącym zdrowia.
  2. Systemy jakości wymagane przez FDA (patrz Ogólne zasady walidacji oprogramowania; Ostateczne wytyczne dla przemysłu i personelu FDA ) dotyczące wykorzystywanego oprogramowania urządzeń medycznych to złoty standard branżowy. Należy zauważyć, że przepisy te nie narzucają żadnej konkretnej metodologii rozwoju. W każdym razie jakość oprogramowania IT dla zdrowia znacznie by się poprawiła, gdyby wszyscy przestrzegali tych najlepszych praktyk.
  3. Większość oprogramowania IT firmy Heath nie działa obecnie zgodnie z tymi normami regulacyjnymi FDA. Ponieważ bariery dla interoperacyjności urządzeń medycznych nadal spadają, w szczególności dla platform mobilnych, prawdopodobnie się to zmieni - patrz FDA Adresy Mobile Medical Apps .
  4. Ponadto, jeśli tworzysz komercyjne oprogramowanie IT dla zdrowia, musisz zadać sobie pytanie, czy tworzysz system danych urządzeń medycznych (MDDS): Czy mój produkt to MDDS?
Bob Nadler
źródło
6

Krótka odpowiedź brzmi „Tak”. Dłuższą, ale dokładniejszą odpowiedzią jest „jeśli weźmiesz to na poważnie”.

Należy pamiętać o kilku tematach, które chciałbym podzielić na obawy związane z (a) bezpieczeństwem pacjentów i jakością produktu oraz (b) regulacjami branżowymi.

Jeśli chodzi o bezpieczeństwo i jakość, pamiętaj, że tworzenie bezpiecznego oprogramowania jest trudne. Kilku dobrych programistów z pewną wiedzą na temat domen może wydobyć niezwykle przydatne oprogramowanie, które jest dość bezpieczne. Jeśli są one częścią wdrożenia w lokalnych warunkach klinicznych i mogą stale reagować i dostosowywać się do zdarzeń podczas wdrażania i użytkowania oprogramowania, oprogramowanie może zapewnić wartość, uratować lub poprawić życie, a tylko kilka obrażeń lub zgonów związanych jest z błędami użytkowania lub błędy oprogramowania. Ale oprogramowanie będzie wymagało, aby programiści byli tam przez cały czas, odpowiadając, rozwijając oprogramowanie wraz z jego ewolucją. Nie jest to proces skalowalny, a gdy programiści umierają lub się nudzą, system może bardzo szybko stać się bardzo niebezpieczny. Aby poprawić te wyniki i stworzyć bezpieczne oprogramowanie, istnieją ważne kroki procesu programowania, które należy podjąć podczas opracowywania oprogramowania. Dobre wprowadzenie „po wyjęciu z pudełka” można znaleźć w międzynarodowej normie dotyczącej rozwoju oprogramowania urządzeń medycznych, ISO / IEC 62304. Główną koncepcją jest zarządzanie ryzykiem bezpieczeństwa na wszystkich etapach - podczas analizy przypadku użycia i opracowania historii, wymagania wyjaśnienie, projekt systemu i architektury, wdrożenie, testy jednostkowe i integracyjne. Zwinność nie sprawi, że żadna z tych prac nie zniknie lub nie będzie trudniejsza, ale koncentrując się na tworzeniu wartości i eliminowaniu pracy (takiej jak niepotrzebne funkcje lub nadmierne cykle testów / napraw weryfikacyjnych), która nie tworzy wartości, zwinne opracowywanie może pozwalają zespołowi na włączenie tej pracy do rozwoju, dzięki czemu powstaje bezpieczniejsze oprogramowanie opracowane w tym samym czasie. Iteracyjne praktyki rozwojowe powszechnie stosowane przez zwinne zespoły są bardzo dobrze dostosowane do wykonania prac związanych z zarządzaniem ryzykiem bezpieczeństwa, ewoluując przez cały czas trwania projektu, a nie później. Po uruchomieniu oprogramowania informacje zwrotne od użytkowników i wszelkie zdarzenia potencjalnie prowadzące do obrażeń należy rozpatrywać indywidualnie i łącznie, aby zapewnić bezpieczeństwo użytkowania oprogramowania. Zwinny może pomóc tutaj, jeśli zapewnia szybki, bezpieczny proces wprowadzania zmian bez niszczenia innych części systemu - co z kolei wymaga jeszcze dobrej architektury i dobrze zrozumiałych interakcji projektowych, które powstały podczas opracowywania oprogramowania. ewoluował przez cały czas trwania projektu, a nie był refleksją. Po uruchomieniu oprogramowania informacje zwrotne od użytkowników i wszelkie zdarzenia potencjalnie prowadzące do obrażeń należy rozpatrywać indywidualnie i łącznie, aby zapewnić bezpieczeństwo użytkowania oprogramowania. Zwinny może pomóc tutaj, jeśli zapewnia szybki, bezpieczny proces wprowadzania zmian bez niszczenia innych części systemu - co z kolei wymaga jeszcze dobrej architektury i dobrze zrozumiałych interakcji projektowych, które powstały podczas opracowywania oprogramowania. ewoluował przez cały czas trwania projektu, a nie był refleksją. Po uruchomieniu oprogramowania informacje zwrotne od użytkowników i wszelkie zdarzenia potencjalnie prowadzące do obrażeń należy rozpatrywać indywidualnie i łącznie, aby zapewnić bezpieczeństwo użytkowania oprogramowania. Zwinny może pomóc tutaj, jeśli zapewnia szybki, bezpieczny proces wprowadzania zmian bez niszczenia innych części systemu - co z kolei wymaga jeszcze dobrej architektury i dobrze zrozumiałych interakcji projektowych, które powstały podczas opracowywania oprogramowania.

Drugi problem dotyczy przepisów. W idealnym świecie przepisy bezpieczeństwa miałyby zastosowanie do wszystkich produktów, które mogłyby być wystarczająco niebezpieczne, a sprzedawca byłby w stanie zastosować się do nich, wykonując kilka prostych czynności, gdy zaczną przekraczać linię. W praktyce globalne regulacje są złożone i szybko zmieniają się w tej branży, co oznacza, że ​​pewnego dnia możesz opracować małą aplikację na iPhone'a, która wyświetla niektóre dane medyczne, a następnego oczekuje się zgodności ze standardami ISO i FDA w zakresie „zarządzania jakością” system ”lub SZJ. Może to być przerażające dla firm, które nie miały formalnego SZJ w przeszłości. A zwinność może to zaostrzyć, ponieważ możesz zacząć od koncepcji produktu, a poprzez ewolucyjny rozwój nieświadomie wejść w regulowane zamierzone zastosowanie (takie jak wyświetlanie danych diagnostycznych dla użytkownika). Jest październik 2011 r .; radzę każdej firmie rozważającej wprowadzenie na rynek produktu, który ma w nazwie nazwy „zdrowie”, „medycyna”, „opieka zdrowotna”, że powinien mieć plan na wypadek, gdy wytwarzany przez nich produkt zostanie objęty regulacją przez jednego lub więcej organów regulujących wyroby medyczne na całym świecie. Tutaj również zwinny może pomóc, ponieważ zwinne praktyki generalnie (lub z łatwością mogłyby wytworzyć) produkty zgodne z wymogami, aby zadowolić klientów regulacyjnych zarówno w przypadku przedłożenia odprawy przed rynkiem (jak FDA 510k), certyfikacji (jak ISO 13485), jak i operacji po wprowadzeniu do obrotu. Opracowywanie pierwszego testu pasuje bezpośrednio do oprogramowania medycznego. Ciągła integracja, zautomatyzowane testy jednostkowe i metadane sprintu SCRUM mogą dostarczyć kompletnych obiektywnych dowodów na to, że zarządzanie ryzykiem i odpowiednia weryfikacja są dokonywane nie tylko jako refleksja, ale także w procesie rozwoju. W większości przypadków uważam, że zwinny produkuje więcej artefaktów niż „wodospad”, być może nie w tej samej formie. Ale przekształcenie wyjść w coś satysfakcjonującego dla regulatorów jest stosunkowo małym problemem do rozwiązania.

Podsumowując ... tak, Virginia, istnieje sprawne narzędzie do opracowywania oprogramowania IT (i innych urządzeń medycznych). Jak wszystko zwinne, proces wymaga wsparcia, wsparcia biznesowego i odwagi.


źródło
Dobry przegląd Dave, ale muszę zakwestionować twój komentarz „stosunkowo mały problem do rozwiązania”. Zwinne produkuje całkiem dobre artefakty weryfikacyjne, niezależnie od tego, czy jest to TDD, czy BDD. Istnieją jednak znaczne luki, które należy wypełnić. Analiza ryzyka, dokumentacja i przeglądy projektu, identyfikowalność wymagań i walidacja są nadal niezbędnymi komponentami regulacyjnymi FDA. Z mojego doświadczenia, prawidłowe wykonywanie tych zadań zawsze pochłania znaczne zasoby.
Bob Nadler
Dlatego mówię „względnie” - jak w mniejszym (zdecydowanie) niż próbie narzucenia przepływu procesu kaskadowego w celu opracowania urządzenia do tego samego zamierzonego zastosowania, które osiągnie ten sam poziom jakości. Tworzenie bezpiecznego oprogramowania wymaga takich działań, jak zarządzanie ryzykiem, niezależnie od metodologii wykonywania zwinnego lub niestabilnego.
4

Tak, jedną z przesłanek sprawnego rozwoju jest zaangażowanie klienta. Ma to kluczowe znaczenie w systemach i procesach informatycznych opieki zdrowotnej. Działy IT w służbie zdrowia podejmą lepsze decyzje, jeśli w to zaangażowany będzie przedstawiciel klienta i udzielą informacji na temat wpływu decyzji na opiekę nad pacjentem.


źródło
1
Ta odpowiedź i kilka innych sugeruje, że istnieje jeden „klient” systemu informatycznego dla zdrowia. Ale to oczywiście nie jest prawda. Pacjent, dostawca i płatnik to przynajmniej klienci.
ftrotter,
Przez klienta rozumiem osobę niebędącą IT, która wchodzi w interakcje z systemem jako użytkownik. Klient tutaj oznacza każdego, kto korzysta z systemu stworzonego przez dział IT.
4

Myślę, że jest to możliwe, ale branża potrzebuje ogromnej zmiany paradygmatu. Jestem na drugim roku jako programista opieki zdrowotnej, a zaufanie i samoorganizacja nigdzie nie są widoczne. Opieka zdrowotna bardzo skorzystałaby na formalnym przyjęciu zwinności, ponieważ i tak jest to głównie chaos, z iteracyjnym rozwojem zwanym „thrash” i późnymi zmianami wymagań, ponieważ, cóż, duży projekt z góry i tak nie działa.


źródło
2

Rozumiem twoje pytanie. Dobrym przykładem rozwoju zwinnego jest budowanie strony internetowej dla kogoś. Zwykle klient nie wie dokładnie, czego chce, więc istnieje duża interakcja z klientem.

Opieka zdrowotna IT może wydawać się bardzo predefiniowaną dziedziną informatyki; przy ścisłych standardach (DICOM, HL7) wydaje się, że istnieje tylko jeden sposób na ich wdrożenie, ale jest też wiele preferencji i decyzji.

Moim zdaniem, bez względu na to, jaki produkt stworzysz, nie możesz ustalić WSZYSTKIEGO wymagań z wyprzedzeniem, więc zwinna metoda tworzenia oprogramowania działa bardzo dobrze.

Timo Willemsen
źródło
2

Jak wspomniano, odpowiedź brzmi: tak.

Przy stosowaniu Agile do obszarów regulowanych lub obszarów wysokiego ryzyka należy zdefiniować „Gotowe” przy każdej iteracji, aby uwzględnić zgodność z przepisami i inne strategie ograniczania ryzyka. Na przykład może to wymagać dokumentacji jakości, śledzenia wymagań, audytu bezpieczeństwa i innych działań wykonywanych przy każdej iteracji.

Na przykład istnieje dobra sztuka i praktyka w zakresie stosowania podejść zwinnych w środowiskach regulowanych przez FDA.


źródło
2

Krótka odpowiedź: tak. Istnieje dobry blog na temat Agile w środowiskach o wysokiej pewności, który zawiera kilka wskazówek.

Istnieją jednak pewne kompromisy, które należy wprowadzić. Rozważ Manifest Agile :

Osoby i interakcje dotyczące procesów i narzędzi

Działające oprogramowanie w obszernej dokumentacji

Współpraca z klientami w zakresie negocjacji umów

Reagowanie na zmianę po wykonaniu planu

Organy regulacyjne cenią lewą stronę tak samo, jak zwinne zespoły, ale wymagają większego nacisku na prawą stronę niż typowy zwinny zespół. Na przykład FDA wymaga weryfikacji procesów i narzędzi, prosi o dość kompleksową dokumentację projektową i testową i zdecydowanie wymaga sporo planowania.

Z drugiej strony wiele sprawnych zasad bardzo dobrze wpasowuje się w świat opieki zdrowotnej, w tym:

  • Programowanie TDD i par - popraw jakość
  • Ścisłe pętle opinii klientów - wczesna weryfikacja jest świetna
  • Planowanie iteracyjne - organy regulacyjne zajmują się planowaniem

źródło
1

Niektóre dyscypliny mają już zwinny charakter. Na przykład pielęgniarstwo polega na cyklach „ocena-ocena-planowanie-interwencja”, które zależą od wielu iteracji diagnozy / rokowania w celu stopniowego osiągnięcia ostatecznych wyników.

Jednak fatalnym połączeniem byłoby próba zasugerowania, że ​​usługi opieki zdrowotnej świadczone w taki sposób są specjalnie dostosowane do zasadniczo zwięzłego zastosowania opracowywania oprogramowania Agile w kierunku narzędzia programowego lub systemu do użycia w ramach świadczenia usług.


źródło
+1 za porównanie tworzenia zwinnego oprogramowania z opieką. Brawo!
0

AAMI aktywnie pracuje nad Raportem Informacji Technicznej zatytułowanym:
AAMI TIR SW1, Wytyczne dotyczące stosowania zwinnych praktyk w rozwoju oprogramowania urządzeń medycznych.

Słyszałem, że może zostać opublikowany w 2012 roku.

Omówiono dostosowanie zasad Agile Manifesto (patrz odpowiedź EpiGrads) do wymagań prawnych, typowych procesów i innych praktycznych produktów związanych z oprogramowaniem urządzeń medycznych.

komar
źródło