Strona Glowna



Software House

IT Business Consulting Group nabyła nowe kompetencje. Od teraz możemy świadczyć usługi typu Software House.

Czym jest Software House? Chcielibyśmy przybliżyć naszym Klientom opis tej usługi.

Typy Software House

Określenie Software House odnosi się do możliwości stworzenia przez przedsiębiorstwo działalności głównie polegającej na tworzeniu oprogramowania czyli programów komputerowych. 

Rodzaje Software House:

  • in-house - dostarczenie oprogramowania do celów wewnętrznych (dla różnych departamentów w obrębie jednego dużego przedsiębiorstwa)
  • contractual (kontraktowe) - w tym przypadku celem działania Software House jest dostarczenie pewnego szczególnie określonego oprogramowania z zewnątrz przedsiębiorstwa (outsourcing oprogramowania)
  • product development (rozwój produktu) – sytuacja, kiedy wytwarza się i sprzedaje gotowe do użycia,  „pudełkowe” oprogramowanie

Wspólne role Software House

Organizacja Software House jest bardzo wyspecjalizowanym rodzajem umiejętności zarządzania, gdzie zespół doświadczonych osób może przemienić organizacyjny problem w unikatowe korzyści.  Na przykład, posiadanie podzespołów rozmieszczonych w różnych strefach czasowych może zezwolić na 24-godzinny dzień roboczy spółki, jeżeli zespoły, systemy i procedury są organizacyjnie dobrze ukształtowane.

Dobrym przykładem jest kwestia strefy czasowej w zespole: 8-godzinna różnica w pracy zespołu, która może ustalać błędy w oprogramowaniu znalezione przez testerów.

Profesjonalne Software House składa się zazwyczaj z co najmniej trzech dedykowanych podzespołów:
  • analitycy biznesowi, którzy określają potrzeby biznesowe na rynku
  • projektanci oprogramowania / programiści, którzy tworzą specyfikację techniczną projektu i napisanie kodu oprogramowania
  • testerzy oprogramowania, którzy są odpowiedzialni za cały proces zarządzania jakością wytwarzanego oprogramowania

Przy większej zatrudnionej liczbie specjalistów, w Software House dość często znajdują się również:

  • techwriterzy, których zadaniem jest napisanie całej dokumentacji, takiej jak przewodniki użytkownika czy instrukcje obsługi
  • specjaliści ds. releasów, którzy są odpowiedzialni za kontrolę procesu budowy całego produktu i wersji oprogramowania
  • graficy, którzy są odpowiedzialni np. za projekty graficznego interfejsu użytkownika
  • inżynierowie utrzymania, którzy są dostępni pod dwiema, trzema lub więcej liniami wsparcia
  • konsultanci odpowiedzialni za dokonywanie rozwiązań operacyjnych, zwłaszcza w konieczności szczegółowej wiedzy specjalistycznej. Przykłady mogą obejmować: budowę wielowymiarowych kostek w oprogramowaniu business intelligence software, integrację z istniejącymi rozwiązaniami, wdrożenie scenariuszy biznesowych w Business Process Management Software.

Struktura Software House

Kierownictwo Software House jest zazwyczaj określone przez osobę na stanowisku Kierownika ds. Rozwoju (Head of Development), oraz sprawozdania zainteresowanych stron.

Kierownik ds. Rozwoju prowadzi podzespoły programistów bezpośrednio lub za pośrednictwem podległych mu kierowników/liderów zespołów, w zależności od wielkości organizacji. Zazwyczaj zespoły zawierające maksymalnie 10 osób są najbardziej operacyjne. W większych organizacjach, ogólnie, znajdują się dwa modele hierarchii:

1.   

Wszystkie zespoły są w pełni niezależne i działają osobno przy poszczególnych projektach. Struktura jest dość prosta i wszyscy pracownicy składają sprawozdania do jednej osoby, co jest sytuacją przejrzystą i jasną. Jednak ta sytuacja może nie być dobrym rozwiązaniem w zakresie wymiany wiedzy i optymalnego wykorzystania zasobów ludzkich.

2.

W tym modelu istnieją dedykowani kierownicy / liderzy zespołów dla każdej specjalizacji, " wynajmujący" swoich ludzi do konkretnych projektów prowadzonych przez Product/Project Managerów, którzy formalnie lub nieformalnie kupują i płacą za ich czas. Prowadzi to do sytuacji, w której każdy pracownik posiada dwóch szefów – Product/Project Manager i specjalny tzw. menedżer " zasobów" . Z jednej strony, optymalizuje się wykorzystanie zasobów ludzkich, a z drugiej strony może to prowadzić do konfliktów, w których jeden z menedżerów ma pierwszeństwo w strukturze.

Istnieje również szereg wariantów tych struktur, a szereg organizacji posiada strukturę „rozpowszechniania oraz podziału” w obrębie różnych wydziałów i jednostek.

Cykl życiowy (Life Cycle) produktu w Software House

Cykl życia produktu zazwyczaj składa się z co najmniej trzech etapów:

  1. projektowanie – zarówno planów biznesowych, jak i specyfikacji technicznej
  2. programowanie (coding) – sam rozwój oprogramowania
  3. testy – zarządzanie jakością wytwarzanego oprogramowania

Każdy z etapów w idealnych warunkach powinien zabierać 30 % całkowitego czasu, pozostałe 10% czasu są przeznaczone do tzw. „rezerwy”.

Na każdym etapie różne grupy odgrywają różne role, jednak każdy rodzaj roli musi być zaaganżowany do całego procesu rozwoju:

  • Analitycy, po zakończeniu specyfikacji biznesowej, zarządzają zmieniającymi się sytuacjami, aby zminimalizować możliwość zmian w czasie. Analitycy wspierają także zarówno programistów jak i testerów w trakcie całego procesu rozwoju – ma to zapewnić, że końcowy produkt spełni określone początkowe wymagania biznesowe. Proces działania analityków biznesowych najlepiej oddaje sytuacja odgrywanej przez nich kluczowej roli w trakcie ostatecznego dostarczenia rozwiązania/oprogramowania do Klienta, ponieważ są oni najbardziej predysponowani do zapewnienia najlepszej warstwy biznesowej.
  • Programiści wykonują specyfikację techniczną w fazie projektowej projektu (dlatego są oni nazywani programistami/projektantami), a podczas testowania produktu poprawiają błędy.
  • Testerzy tworzą scenariusze testowe w fazie projektowej, a także oceniają je w trakcie etapu programowania/codingu

Systemy i procedury

Dobrze zarządzane Software House’y posiadają w różnoraki sposób wdrażane i działające wewnętrznie dla wszystkich podzespołów systemy oraz procedury. Należą do nich:

Analitycy biznesowi

  • Modelowanie i zarządzanie narzędziami, takimi jak Sparx Enterprise Architect czy IBM Rational Rose

Programiści

  • Systemy kontroli wersji oraz procedury wersjonowania oprogramowania
  • Narzędzia do analizy kodu oraz standardy kodowania, zatwierdzone automatycznie bądź ręcznie
  • Wdrażanie mechanizmów

Testerzy

  • Systemy śledzenia błędów
  • Narzędzia automatyzacji testów
  • Narzędzia testów obciążeniowych oraz testów wydajności

Product/Project Managerowie

  • Systemy oraz procedury Enterprise Project Management (EPM)
  • Systemy oraz procedury Product Portfolio Management (PPM)
  • Systemy oraz procedury Zarządzania zmianami (Change Management)

Istnieją również takie procedury jak Application Lifecycle Management (ALM), które mieszczą w sobie niektóre z wyżej wymienionych funkcji w jednym wspólnym pakiecie oraz są stosowane przez grupy użytkowników.

Audyt efektywności Software House

Powszechnie uznane Software House’y mają zwykle jakiś sposób pomiaru własnej skuteczności. Jest to zazwyczaj robione poprzez zdefiniowanie zestawu kluczowych wskaźników wydajności (KPI), takich jak:

  • Średnia liczba błędów wykonanych przez deweloperów na jednostkę czasu lub linii kodu źródłowego
  • Liczba błędów znalezionych przez testera w fazie testów
  • Średnia liczba faz testów, aż do wyniku zera błędów
  • Średni czas fazy testów
  • Szacowany czas zadania w stosunku do rzeczywistego czasu realizacji zadania (tzw. dokładność planowania)
  • Liczba korekt do wartości wyjściowych

Niektóre firmy Software House koncentrują się na osiągnięciu optymalnego poziomu  Capability Maturity Model (Dojrzałość Wydajności Modelu), gdzie „optymalne” nie musi oznaczać „największe”. Istnieją również inne systemy, takie jak chociażby szczególne normy ISO. Każda firma obecnie wytwarza własny styl, który można określić pomiędzy całkowitą technokracją (gdzie wszystko jest zdefiniowane przez ilość wykonanej pracy) do całkowitej anarchii (gdzie nie ma żadnych ilości wykonanej pracy).


Zobacz też jak proces Software House jest realizowany w itBCG

Możesz również sprawdzić spis naszych dotychczasowych wdrożeń z zakresu Software House




All rights reserved. Copyright © 2007 by itBCG.
Czas generacji: 0.073426961898804 s.

itBCG IT Business Consutling Group Sp. z o.o. E-biznes E-faktura E-dokument elektroniczne dokumenty Sourcing Praca Outsorcing Oferty Pracy Mapa strony itBCG Kontakt do itBCG Aktualności itBCG Oferty pracy Usługi doradcze Consulting