Stageopdrachten 2012/2013
Stageopdrachten Inleiding Onderzoeksgebieden Agile en Dynamics CRM Analyze en scoping testprocessen bij Dynamics CRM Geautomatiseerd testen van Dynamics CRM oplossingen Maintainable test automation Unit testing best practices voor SharePoint ontwikkeling Windows 8 en Windows Phone 8: multi-platform targeting Windows Phone, iPhone and Android code interoperability
2
© 2012 Avanade. All Rights Reserved
Inleiding Zie jij je stage als meer dan een verplicht onderdeel van je studie en wil je de ideale basis leggen voor een serieuze stap in je carrière? Dan ben je bij ons aan het juiste adres! Avanade heeft verschillende stageopdrachten ontwikkeld voor ambitieuze studenten met een passie en talent voor Microsoft-technologie. Ook staan wij altijd open voor goede ideeën en initiatieven voor opdrachten. Avanade Nederland telt ruim 300 medewerkers en wereldwijd 16.000 professionals in 26 landen. Deze wereldwijde community vormt een ideale bron van informatie voor je onderzoek. Tijdens je stage heb je daarnaast toegang tot onze internationaal ontwikkelde processen en methodes voor Microsoft .NET. Avanade biedt ook de mogelijkheid om tijdens de stage Microsoft certificeringen te behalen.
Over Avanade Avanade biedt zakelijke technologiediensten die inzicht, innovatie en expertise van Microsoft-technologieën met elkaar verbinden. Hiermee helpt de organisatie klanten om de gewenste resultaten te behalen. Avanade’s diensten en oplossingen verbeteren performance, productiviteit en verkoop bij organisaties in iedere markt. De organisatie biedt Microsoft-expertise via een wereldwijd netwerk van consultants. Daarnaast heeft Avanade de juiste mix van onshore, offshore en nearshore vaardigheden, zodat het bedrijf de juiste resultaten sneller, tegen lagere kosten en met minder risico kan aanbieden. Avanade is in 2000 opgericht door Accenture en Microsoft Corporation. Daarnaast is Accenture voor het merendeel eigenaar van Avanade. Voor meer informatie kijk op: www.avanade.nl.
Afstuderen bij Avanade Als afstudeerder bij Avanade krijg je twee begeleiders, een technische begeleider en een procesbegeleider. Daarnaast bieden wij een stagevergoeding van € 500,- voor een bachelor student en € 600,- voor een master student. Onze afstudeerders krijgen van ons een laptop en hebben de mogelijkheid om deels vanuit huis te werken.
Contact Heb je interesse in een stageopdracht en wil je kennismaken met Avanade? Stuur dan een e-mail met je CV naar
[email protected]. Wanneer je vragen of opmerkingen hebt, neem dan contact met ons op via 036 – 547 5107.
Duygu Ciftci
Nicole Holla
3
© 2012 Avanade. All Rights Reserved
Onderzoeksgebieden Binnen Avanade hebben we een aantal primaire onderzoeksgebieden onderkend. Dit zijn gebieden waarbinnen momenteel veel nieuwe ontwikkelingen gaande zijn of waarbij wij veel ruimte zien om toegevoegde waarde aan onze klanten te kunnen bieden. Naast de concrete stageopdrachten die je in deze lijst vindt, is het ook mogelijk om uit deze onderzoeksgebieden zelf een opdracht samen te stellen. Uiteraard zijn we graag bereid je hierbij te helpen.
Advanced software engineering Het onderzoeksgebied advanced software engineering omvat een aantal brede onderwerpen die voor Avanade zeer relevant zijn: (automated) testing, distributed computing, enterprise application integration (EAI), design patterns & practices, maar ook application lifecycle management (ALM), security en architectuur.
Business Intelligence BI is gericht op het verzamelen en analyseren van informatie over klanten, beslissingsprocessen, concurrentie, markttoestand en algemene economische, technologische en culturele trends, teneinde beslissingsondersteunende informatie (intelligence) te verkrijgen. Het onderzoeksgebied BI heeft zowel een technologische invalshoek als een businessperspectief. Kernstappen zijn verzamelen, omvormen, analyseren en presenteren van informatie. In de Microsoft wereld heb je voor BI met name te maken met de SQL Server productlijn.
Cloud computing Cloud computing is in feite nog nieuw, maar is nu al niet meer weg te denken uit het IT landschap. Microsoft heeft de afgelopen jaren uitgebreid geïnvesteerd in cloud computing, met als resultaat een brede portfolio van cloud producten: naast een aantal serverproducten die door Microsoft naar de cloud gebracht zijn, biedt Microsoft het Windows Azure platform. Windows Azure biedt alle bouwstenen – computing, storage, integration, security en nog veel meer – om robuuste en schaalbare toepassingen in de cloud te realiseren.
Collaboration Collaboration (samenwerking) is hot: digitaal samenwerken met collega’s, delen van documenten en andere vormen van content, laagdrempelig inregelen van eenvoudige bedrijfsprocessen, snel en gemakkelijk publiceren van gecreëerde content zijn allemaal voorbeelden van functionaliteit die hiervoor nodig is. Met SharePoint heeft Microsoft al bijna 10 jaar een product in haar portfolio wat hier volledig op toegespitst is. De nieuwe versie biedt als nooit tevoren een rijke gebruikerservaring, een robuuste ontwikkelomgeving en alle schaalbaarheidsaspecten die voor een enterprise platform nodig zijn.
Microsoft Dynamics CRM Microsoft Dynamics CRM (Customer Relationship Management) is een relatiemanagementsysteem dat faciliteert in het managen en uitvoeren van verschillende type klantinteracties. Door een flexibel onderliggend datamodel is het systeem eenvoudig aanpasbaar en vormt het een stevige basis voor de ontwikkeling van bedrijfsapplicaties. Klantcontact bepaalt het succes van een bedrijf. Als je een goed en duidelijk beeld hebt van je klanten, kun je de sales, service en het klantvertrouwen vergroten. CRM kent een geïntegreerde benadering, waarin elke interactie met de klant door de hele organisatie heen wordt verbeterd. Microsoft Dynamics CRM 2011 is beschikbaar als online dienst en kan als zodanig worden beschouwd als een software as a service (SaaS) applicatie.
4
© 2012 Avanade. All Rights Reserved
Mobility Windows Phone 7 en Xbox zijn inmiddels twee jaar op de markt en vormden de introductie van de nieuwe Microsoft-filosofie voor user experience. Deze filosofie, eerder bekend als 'Metro' en inmiddels 'Modern UI' gedoopt, behelst een set designprincipes met focus op content, typografie, whitespace en weinig 'chrome'. Met de komst van Windows 8 en Windows Phone 8 betreden we een nieuw tijdperk waarbij we hetzelfde platform en dezelfde design principes hebben op alle Microsoft-platformen van telefoons naar televisies tot tablets, laptops en personal computers. Windows 8 en Windows Phone 8 zijn het antwoord van Microsoft om aan alsmaar toenemende verwachtingen van consumenten en professionele gebruikers te voldoen op het gebied van connectiviteit, location awareness en games. Met Windows 8 gaat Microsoft de directe confrontatie aan met de iPad en Android tablets. Bij Avanade focussen we op het nieuwe Windows 8 en Windows Phone 8 platform met features zoals push notifications, augmented reality, cloud services, GPS en geografische informatie systemen (GIS), accelerometers, stembesturing en gebruikersinteractie via WinRT.
5
© 2012 Avanade. All Rights Reserved
Agile en Dynamics CRM Omschrijving
Microsoft Dynamics CRM
In de afgelopen 10 jaar is Agile uitgegroeid van een commodity naar een “buzzing” concept. Snelle veranderende markten dwingen organisaties tot oplossingen die hen in staat stellen sneller te reageren op veranderingen; wanneer je niet probeert Agile te zijn, raak je achter op de concurrentie. Bekende methodes als eXtreme Programming en Scrum waren initieel bedoeld voor kleinere projecten, door het groeiende aantal succesverhalen rond Agile projecten zijn ook grotere organisaties geïnteresseerd geraakt in de belofte van een verkorte “time-to-market”.
Microsoft Dynamics CRM (Customer Relationship Management) is een relatiemanagementsysteem dat faciliteert in het managen en uitvoeren van verschillende type klantinteracties. Door een flexibel onderliggend datamodel is het systeem eenvoudig aanpasbaar en vormt het een stevige basis voor de ontwikkeling van bedrijfsapplicaties. Klantcontact bepaalt het succes van een bedrijf. Als je een goed en duidelijk beeld hebt van je klanten, kun je de sales, service en het klantvertrouwen vergroten. CRM kent een geïntegreerde benadering, waarin elke interactie met de klant door de hele organisatie heen wordt verbeterd. Microsoft Dynamics CRM 2011 is beschikbaar als online dienst en kan als zodanig worden beschouwd als een software as a service (SaaS) applicatie.
Agile methodes benadrukken lichtgewicht softwareontwikkeling: “the art of maximizing the amount of work not done.” Pijlers onder het Agile gedachtegoed zijn: ‘mensen en hun onderlinge interacties zijn belangrijker dan processen en tools, werkende software is belangrijker dan uitgebreide documentatie, samenwerking met de klant is belangrijker dan contractonderhandelingen, open staan voor verandering is belangrijker dan het volgen van een vooropgezet plan.’ Op het eerste gezicht conflicteren deze overtuigingen met de eisen aan een gemiddeld enterprise project, waaraan een groot aantal mensen werkt, documentatie een vereiste is voor kennisdeling en –behoud, de klant niet een aanwijsbaar persoon is maar een verzameling van afdelingen met tegenstrijdige belangen en waar voorspelbaarheid onmisbaar is voor de besluitvorming binnen het hogere management van de organisatie. Avanade zoekt gedreven afstudeerders die hun technische kennis combineren met een sterk analytisch vermogen om ons te helpen meer bekend te worden met de wereld van Agile. In jouw onderzoek richt jij je op het vergaren van kennis over het toepassen van Agile methodieken bij grote projecten. Denk hierbij aan vraagstukken als: hoe passen we Agile toe bij fixed-price projecten? Hoe bepalen we de business-value binnen ons project? Is Agile wel geschikt voor projecten rondom pakketsoftware (bijv. Microsoft Dynamics CRM of Global Software Development)? Je kunt het ook bekijken vanuit een meer technische context zoals: welke tools kunnen de communicatie verbeteren tussen teams, ontwikkelaars en hun klanten? Dit is een selectie uit een onuitputtelijke lijst van interessante onderwerpen waar we meer over willen weten, je bent dan ook vrij om zelf een interessant onderwerp voor te stellen. Gebruikte technieken Heb jij affiniteit met Microsoft, heeft de filosofie achter Agile jouw interesse en deins je er niet voor terug om bij grote organisaties aan de slag te gaan? Dan is een stage bij Avanade de uitgelezen mogelijkheid om je technische kennis te verbreden en jezelf uit te dagen om tot een werkelijke bijdrage aan de maatschappij te komen met jouw scriptie.
6
© 2012 Avanade. All Rights Reserved
Analyze en scoping testprocessen bij Dynamics CRM Omschrijving
Microsoft Dynamics CRM
Avanade implementeert bij veel van haar klanten Dynamics CRM oplossingen. Bij ieder van deze implementaties wordt de complexiteit van de oplossing groter. Met deze groter wordende complexiteit zijn betere processen rondom het testen van de opgeleverde oplossing noodzakelijk. Door de vervaagde lijn tussen “out of the box” en “custom” in deze oplossingen wordt het ook moeilijker om een volledig testproces op te zetten rond iedere oplevering. Wij zijn op zoek naar een stagiair met een passie voor techniek die een onderzoek wil uitvoeren om het testen van deze oplossingen naar een hoger niveau te brengen. Hieronder valt het uitdenken van testprocessen voor dit soort oplossingen en/of het ontwikkelen van testframeworks. Je kunt bij de opdracht gebruik maken van de allernieuwste technieken.
Microsoft Dynamics CRM (Customer Relationship Management) is een relatiemanagementsysteem dat faciliteert in het managen en uitvoeren van verschillende type klantinteracties. Door een flexibel onderliggend datamodel is het systeem eenvoudig aanpasbaar en vormt het een stevige basis voor de ontwikkeling van bedrijfsapplicaties. Klantcontact bepaalt het succes van een bedrijf. Als je een goed en duidelijk beeld hebt van je klanten, kun je de sales, service en het klantvertrouwen vergroten. CRM kent een geïntegreerde benadering, waarin elke interactie met de klant door de hele organisatie heen wordt verbeterd. Microsoft Dynamics CRM 2011 is beschikbaar als online dienst en kan als zodanig worden beschouwd als een software as a service (SaaS) applicatie.
Ben jij instaat om met jouw passie voor techniek een stevig testfamework op te stellen om hiermee Avanade en haar klanten verder te helpen? Dan zijn wij op zoek naar jou! Gebruikte technieken Binnen Avanade zijn wereldwijd initiatieven gelanceerd voor het testen. Tevens zijn er al veel tools en test frameworks beschikbaar. Binnen deze opdracht duik je diep onder de motorkap van Dynamics CRM 2011 met .NET, Mocking/Testing frameworks en tools (Pex and Moles, NUnit, RhinoMocks, Specflow, etcetera) en Visual Studio 2010/11. .
7
© 2012 Avanade. All Rights Reserved
Geautomatiseerd testen van Dynamics CRM oplossingen Omschrijving
Microsoft Dynamics CRM
Avanade implementeert bij veel van haar klanten Dynamics CRM oplossingen. Bij ieder van deze implementaties lijkt de complexiteit van de oplossing groter te worden. Hierdoor ontstaat de noodzaak voor betere processen rondom het testen van opgeleverde oplossing; het gestructureerd en geautomatiseerd testen van deze oplossingen wordt steeds belangrijker.
Microsoft Dynamics CRM (Customer Relationship Management) is een relatiemanagementsysteem dat faciliteert in het managen en uitvoeren van verschillende type klantinteracties. Door een flexibel onderliggend datamodel is het systeem eenvoudig aanpasbaar en vormt het een stevige basis voor de ontwikkeling van bedrijfsapplicaties. Klantcontact bepaalt het succes van een bedrijf. Als je een goed en duidelijk beeld hebt van je klanten, kun je de sales, service en het klantvertrouwen vergroten. CRM kent een geïntegreerde benadering, waarin elke interactie met de klant door de hele organisatie heen wordt verbeterd. Microsoft Dynamics CRM 2011 is beschikbaar als online dienst en kan als zodanig worden beschouwd als een software as a service (SaaS) applicatie.
Binnen deze opdracht ga je aan de slag met het ontwikkelen van automated testframeworks rondom alle aspecten van onze CRM oplossingen. Denk hierbij aan JavaScript, .NET plugins en WWF custom workflows. Hoe kom jij bij ons jouw passie voor testtechnieken demonstreren? Gebruikte technieken Binnen Avanade zijn wereldwijd initiatieven gelanceerd voor het testen. Tevens zijn er al veel tools en test frameworks beschikbaar. Binnen deze opdracht duik je diep onder de motorkap van Dynamics CRM 2011 met .NET, Mocking/Testing frameworks en tools (Pex and Moles, NUnit, RhinoMocks, Specflow, etcetera) en Visual Studio 2010/11.
8
© 2012 Avanade. All Rights Reserved
Maintainable test automation Omschrijving
Advanced software engineering
Test Automation draagt bij aan het sneller kunnen releasen van software. Agile methodologiën hebben test automation nodig om in korte sprints steeds werkende software op te kunnen leveren, zonder steeds meer tijd kwijt te zijn aan testen.
Het onderzoeksgebied advanced software engineering omvat een aantal brede onderwerpen die voor Avanade zeer relevant zijn: (automated) testing, distributed computing, enterprise application integration (EAI), design patterns & practices, maar ook application lifecycle management (ALM), security en architectuur.
De werkelijkheid blijkt weerbarstiger. In Visual Studio 2010 heeft Microsoft functionaliteit toegevoegd waarmee een recording van een test case automatisch kan worden omgezet in een Coded UI test. Deze test moet daarna worden uitgebreid met Assertions en kan indien gewenst worden gekoppeld aan een datasource. Deze gegenereerde tests blijken zeer moeilijk te onderhouden als de layout van de applicatie nog niet helemaal vast staat en als er nog relatief ingrijpende UI aanpassingen gedaan worden. Om te voorkomen dat de test automation in elke sprint opnieuw geschreven moet worden, moet waarschijnlijk zowel door de tester die de Test Automation schrijft als de ontwikkelaar die de UI ontwikkelt, rekening houden met een aantal basis regels. Voor het maken van onderhoudbare en robuste tests is maar weinig guidance beschikbaar. Wel zijn er een aantal 3rd party/open source projecten die alternatieve methoden bevatten om Coded UI tests te genereren. In jouw stage opdracht ga je in aan de slag om in bestaande projecten functionele testen te automatiseren en te onderzoeken waar ontwikkelaars en testers rekening mee moeten houden in de applicatie onder test als de testen. Het doel van de opdracht is om duidelijke richtlijnen op te leveren voor zowel ontwikkelaars als testers zodat zij in staat zijn om het maximale uit de mogelijkheden te halen die Coded UI biedt.
Gebruikte technieken Coded UI tests, Team Foundation Server, Test Automation, SharePoint 2010.
9
© 2012 Avanade. All Rights Reserved
Unit testing best practices voor SharePoint ontwikkeling Omschrijving
Advanced software engineering
Test Automation draagt bij aan het sneller kunnen releasen van software. Agile methodologieën hebben test automation nodig om in korte sprints steeds werkende software op te kunnen leveren, zonder steeds meer tijd kwijt te zijn aan testen.
Het onderzoeksgebied advanced software engineering omvat een aantal brede onderwerpen die voor Avanade zeer relevant zijn: (automated) testing, distributed computing, enterprise application integration (EAI), design patterns & practices, maar ook application lifecycle management (ALM), security en architectuur.
Test Driven Development (TDD) is één van de veel gebruikte technieken binnen Agile om zorg te dragen voor een hoge test coverage en voor een design dat is ontworpen voor testbaarheid. Deze techniek is relatief makkelijk in te zetten voor projecten waarin het ontwikkel team alle afhankelijkheden onder eigen beheer heeft. Binnen SharePoint, CRM en Biztalk projecten blijkt het een heel stuk lastiger te zijn. Binnen TDD wordt mocking veel gebruikt om afhankelijkheden weg te abstraheren. Hierdoor is het mogelijk om een klein stuk code te testen zonder eerst een hele applicatie te deployen en alle test data voor handen te hebben. Ook maakt deze techniek het een stuk makkelijker om speciale fout gevallen en alternatieve paden te testen. Daarnaast zijn er technieken, waaronder Model-View-Presenter, die de code zo organiseren dat het makkelijker wordt om Dependency Injection/Inversion of Control toe te passen. Ook deze technieken dragen bij aan het makkelijker kunnen testen. De problemen waar ontwikkelaars tegenaan lopen wanneer ze van SharePoint gebruik maken, hebben vooral te maken met het feit dat de API's van dit platform nooit zijn opgezet om gebruikt te worden in een IoC container of gemockt te worden. De belangrijkste problemen zijn het ontbreken van interfaces, sealed classes en methoden etc. Er zijn tools beschikbaar, TypeMock Isolator, Microsoft Fakes, Telerik JustMock, die deze beperkingen kunnen omzeilen. Deze tools zijn echter prijzig, werken niet altijd even goed op een Build Server en hebben een negatieve invloed op de tijd die het kost om de tests uit te voeren. Naast het gebruik van deze tools moet het mogelijk zijn om via abstracties en design patterns de software zo op te zetten dat deze toch testbaar wordt.
Collaboration Collaboration (samenwerking) is hot: digitaal samenwerken met collega’s, delen van documenten en andere vormen van content, laagdrempelig inregelen van eenvoudige bedrijfsprocessen, snel en gemakkelijk publiceren van gecreëerde content zijn allemaal voorbeelden van functionaliteit die hiervoor nodig is. Met SharePoint heeft Microsoft al bijna 10 jaar een product in haar portfolio wat hier volledig op toegespitst is. De nieuwe versie biedt als nooit tevoren een rijke gebruikerservaring, een robuuste ontwikkelomgeving en alle schaalbaarheidsaspecten die voor een enterprise platform nodig zijn.
In jouw stage onderzoek je de verschillende tools en technieken en zal je een lopend project waar SharePoint wordt gebruikt gebruiken om de verschillende mogelijkheden te toetsen. De uitkomsten van je onderzoek zal je vervolgens gebruiken om goede guidance op te stellen voor het toepassen van TDD in SharePoint projecten Gebruikte technieken SharePoint 2010, Test Driven Development, Team Foundation Server 2010/2012, Mocking, Test Automation, Visual Studio 2010/2012.
10
© 2012 Avanade. All Rights Reserved
Windows 8 en Windows Phone 8: multi-platform targeting Omschrijving
Mobility
Tijdens deze opdracht doe je onderzoek naar het simultaan ontwikkelen voor Windows 8 en Windows Phone 8. Het doel van het onderzoek is het in kaart brengen van de overeenkomsten, maar vooral verschillen tussen de implementatie van beide platforms, hoe de verschillen kunnen worden overwonnen, welke tools en best-practices daarvoor gebruikt kunnen worden en hoe je ze gebruikt en wat daarvan de impact is op de ontwikkeling voor beide platforms. Het resultaat van de opdracht is een whitepaper met het resultaat van het onderzoek, een Visual Studio template voor multi-platform targeting en een proof-of-concept van een nader te bepalen toepassing.
Windows Phone 7 en Xbox zijn inmiddels twee jaar op de markt en vormden de introductie van de nieuwe Microsoft-filosofie voor user experience. Deze filosofie, eerder bekend als 'Metro' en inmiddels 'Modern UI' gedoopt, behelst een set designprincipes met focus op content, typografie, whitespace en weinig 'chrome'.
Gebruikte technieken Visual Studio 2012, Windows 8, Windows Phone 8 SDK.
Met de komst van Windows 8 en Windows Phone 8 betreden we een nieuw tijdperk waarbij we hetzelfde platform en dezelfde design principes hebben op alle Microsoft-platformen van telefoons naar televisies tot tablets, laptops en personal computers. Windows 8 en Windows Phone 8 zijn het antwoord van Microsoft om aan alsmaar toenemende verwachtingen van consumenten en professionele gebruikers te voldoen op het gebied van connectiviteit, location awareness en games. Met Windows 8 gaat Microsoft de directe confrontatie aan met de iPad en Android tablets. Bij Avanade focussen we op het nieuwe Windows 8 en Windows Phone 8 platform met features zoals push notifications, augmented reality, cloud services, GPS en geografische informatie systemen (GIS), accelerometers, stembesturing en gebruikersinteractie via WinRT.
11
© 2012 Avanade. All Rights Reserved
Windows Phone, iPhone and Android code interoperability Omschrijving
Advanced software engineering
Tijdens deze opdracht doe je onderzoek naar de (on)mogelijkheden om één code base te hebben waarmee je één applicatie hebt voor de 3 belangrijkste mobiele besturingssystemen: Windows Phone, iPhone en Android. Dit is erg interessant omdat bedrijven bijna nooit voor één platform een applicatie wil hebben maar altijd op meerdere besturingssystemen. Het nadeel van deze verschillende platformen is dat er verschillende programmeertalen zijn voor elk platform met ook ieder zijn eigen ontwikkeltools. Hier ligt dus ook de uitdaging. Echter zijn er mogelijkheden om voor een nog onbekend deel generieke code te schrijven in C#.
Het onderzoeksgebied advanced software engineering omvat een aantal brede onderwerpen die voor Avanade zeer relevant zijn: (automated) testing, distributed computing, enterprise application integration (EAI), design patterns & practices, maar ook application lifecycle management (ALM), security en architectuur. Mobility: Windows Phone
Als uitkomst van dit onderzoek verwachten we een uitgebreide uiteenzetting van de mogelijkheden om met zo min mogelijk tijd zo veel mogelijk functionaliteit voor alle 3 de platformen gerealiseerd de krijgen. Dit onderzoek wordt ondersteund met enkele demo projecten om de theorie in de praktijk te kunnen toetsen. Gebruikte technieken Als Microsoft georiënteerd bedrijf zal de focus met name liggen op Windows Phone 7, C# (Mono) en Visual Studio. Daarbij is er kennis nodig van de iPhone en Android en de ontwikkeltools die daarvoor beschikbaar zijn.
12
Telefoons evolueren meer en meer tot krachtige devices met breed uiteenlopende mogelijkheden. Tegelijkertijd moeten ze herontdekt worden teneinde aan de alsmaar toenemende verwachtingen van consumenten en professionele gebruikers te blijven voldoen. Bij Avanade focussen we op het Windows Phone platform met features zoals push notifications, cloud services, GPS en geografische informatie systemen (GIS), accelerometers, stembesturing en gebruikersinteractie via Silverlight.
© 2012 Avanade. All Rights Reserved