Vzájemná a průběžná spolupráce všech zainteresovaných stran v rámci softwarového projektu, od uživatelů, zadavatelů, vývojářů až po administrátory je jedním z nejdůležitějších faktorů úspěšné realizace.
Snad už jsou dávno pryč doby, kdy analytici po konzultaci s koncovými uživateli předali programátorům úkoly, ti se pak zamkli do komory a za kratší či delší dobu dodali několikakilogramový stoh dokumentace a zdrojové kódy. Testeři si je nainstalovali, podle původního zadání produkt otestovali a vše předali administrátorům do provozu. Bohužel v průběhu tohoto procesu se často stačily změnit požadavky uživatelů i jejich prostředí, programátoři, kteří psali aplikaci, již ve firmě nepracují, administrátoři neotestovali na současné infrastruktuře a nebyli schopni replikovat provozní chyby. Výsledkem byl neúspěšný projekt, nebo výrazné překročení rozpočtu a času.
Jednotným jmenovatelem neúspěchu je neschopnost nebo neochota všech zúčastněných průběžně spolupracovat a předávat si co nejrychleji zpětnou vazbu, aby připomínky, změny a potřebné úpravy mohly být co nejdříve realizovány nebo alespoň naplánovány.
Moderní pojetí tvorby softwarových aplikací klade důraz na týmovou spolupráci v reálném čase po dobu celého životního cyklu softwarové aplikace a zapojení mnoha různých typů činností a také uživatelů do jednoho projektu.
Od běžného koncového uživatele, vznášejícího požadavek na novou funkčnost nebo její úpravu, přes projektové manažery, architekty, vývojáře, testery až po administrátory, kteří nasazují, spravují a monitorují softwarové aplikace, jak na straně dodavatele aplikace tak i odběratele.
Většinou se již také nejedná o jednorázové předání projektu, protože se počítá s průběžným vylepšováním a nasazováním nových verzí, oprav a úprav.
Microsoft Visual Studio obsahuje celou řadu nástrojů a infrastruktury pro podporu takové spolupráce. Společným prvkem je Microsoft Team Foundation Server, který zastřešuje v rámci jednotného centrálního repository všechny vstupy. Jsou v něm relačně provázány veškeré informace od zadání, přes návrh, vývoj, sestavování, testování, až po nasazení do produkce a sběr zpětné vazby. Tím je zajištěna jinde nedosažitelná rychlost reakce na změny, opravy a přání zákazníků a zároveň dokonalé trasování všech změn a jejich důsledků. Nezáleží na tom, zda používáte některou z formálních metodik vedení projektu, jako CMMI, či agilní metodiky typu SCRUM.
Týmová spolupráce, vhodné nástroje a metodika jsou však jen jednou stranou mince. Tím, jak rostou požadavky na kvalitu softwaru a rychlost implementace změn či nových verzí, potřebujete serverovou infrastrukturu nejen pro běh aplikace, ale i pro vývoj a zejména automatizaci nasazování a testování před ostrým provozem. Často je vyžadován souběžný provoz několika oddělených prostředí, která zajišťují kvalitní, bezpečný a nepřetržitý provoz produkčních aplikací. Tato prostředí musí být dostupná dlouhodobě a k tomu je potřeba i rozumné licenční pokrytí.
V případě nástrojů a infrastruktury společnosti Microsoft tuto problematiku řeší Team Foundation Server a licence MSDN pro vývojáře, testery a administrátory, i koncové uživatele a další účastníky procesu tvorby a provozování softwarových aplikací.
DevOps a Microsoft Visual Studio Deployment Server
Pojem a koncept DevOps (Development and Operations) se také týká aktivní spolupráce mezi vývojovými a provozními týmy i technologiemi, které tyto týmy používají. Na jedné straně se moderními agilními postupy vývojářů zvyšuje počet verzí obsahujících opravy a úpravy softwaru. Na straně druhé jsou administrátoři vázáni tradičními zavedenými praktikami ITL, které vše dělají precizně, ale většinou ne moc agilně. Nové formy DevOps postupů a technologií na pomezí obou skupin usnadňují a zlepšují komunikaci a umožňují rychleji nasazovat nový software s menším počtem chyb a lépe i dříve reagovat na připomínky uživatelů.
Jednou z klíčových činností na rozhraní mezi vývojovým/testovacím/provozním týmem je release management – způsoby jak průběžně, cíleně a kontrolovaně nasazovat nové verze produktů a komponent pro vývoj, testování a provoz.
Microsoft Visual Studio Deployment Server je řešení pro .NET týmy, které slouží k plynulému nasazování. Pomáhá automatizovat proces nasazení a spravovat více prostředí. Poskytuje také vysokou úroveň spolupráce během celého procesu vydávání a má spoustu analytických a reportovacích funkcí. Původně ho uvedla na trh v roce 2009 společnost InCycle Software pod názvem InRelease, Microsoft ho odkoupil v létě 2013.
Teď patří komponenty pro správu nasazování do Visual Studio v edicích Test Professional, Premium a Ultimate. Klient se bude ve verzích 2013 dodávat jako samostatná aplikace, ale bude přibalen a instalován spolu s celou sadou nástrojů. Všechno, co je potřeba k zapojení do procesu, bude zahrnuto do Team Foundation Server CAL. Serverové komponenty jsou součástí Team Foundation Serveru 2013. Deployment Agent (u cílových serverů, atd.), potřebný pro každý uzel, na který nasazujete, potřebuje samostatnou licenci. V dočasné nabídce bude součástí licence Ultimate.
Podtrženo a sečteno, nové funkce Visual Studio 2013 a Team Foundation Server 2013 představují významnou pomoc při plynulém nasazování vyvíjených aplikací. Týmům umožní vydávat nové verze častěji a uživatelé budou rychleji získávat lepší software. Zadavatelé budou mít lepší přehled o stavu produktu a jeho vývojovém cyklu. A manažeři si budou jisti, že průběh procesu vyhovuje definovaným pravidlům a normám.