Improvements of Capgemini’s Internal Staffing Process...

85
Improvements of Capgemini’s Internal Staffing Process through Implementation and Evaluation of the “DreamTeam” Android Mobile Application KATARINA LARSSON Master of Science Thesis Stockholm, Sweden 2011

Transcript of Improvements of Capgemini’s Internal Staffing Process...

Page 1: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

Improvements of Capgemini’s Internal

Staffing Process through Implementation and Evaluation of the “DreamTeam”

Android Mobile Application

K A T A R I N A L A R S S O N

Master of Science Thesis Stockholm, Sweden 2011

Page 2: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

Improvements of Capgemini’s Internal Staffing Process through Implementation

and Evaluation of the “DreamTeam” Android Mobile Application

K A T A R I N A L A R S S O N

Master’s Thesis in Computer Science (30 ECTS credits) at the School of Computer Science and Engineering Royal Institute of Technology year 2011 Supervisor at CSC was Anders Lansner Examiner was Jens Lagergren TRITA-CSC-E 2011:039 ISRN-KTH/CSC/E--11/039--SE ISSN-1653-5715 Royal Institute of Technology School of Computer Science and Communication KTH CSC SE-100 44 Stockholm, Sweden URL: www.kth.se/csc

Page 3: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

Abstract

Title: Improvements of Capgemini’s internal staffing process through implementation and evaluation of the

“DreamTeam” Android mobile application.

This Master’s Thesis covers two main areas. The first one is an identification of how a mobile

application called DreamTeam shall be implemented and designed for Android to improve the

internal staffing process within Capgemini. DreamTeam is a pilot application developed for iPhone

and its purpose is to ease and make staffing of projects more effective. The main purpose of the

DreamTeam application is to allow users to assemble a team of consultants for an assignment, a bid,

or another purpose. This report describes the implementation of the Android version of the existing

iPhone DreamTeam application.

The second part is a usability evaluation and an analysis of how the Android version of DreamTeam

application is valuable for Capgemini and how it can be improved and suited for the organizations

needs. The report includes the theoretical basis and relevant use cases to grasp the underlying

infrastructure, implementation and evaluation of the Android DreamTeam application. The usability

evaluation was performed through field studies with a web-based questionnaire and the outcomes are

presented with quantitative- and qualitative results. Possible developments of DreamTeam are

presented and based on interviews with Capgemini employees.

The conclusions made are that the idea and implementation of DreamTeam is promising and its

functionality can improve the staffing of projects and reduce duplication of work, but the current

formation is still too static and need some improvements to reach its full potential.

Page 4: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

Sammanfattning

Titel på svenska: Förbättring av Capgeminis interna bemanningsprocess genom utveckling och utvärdering av

den mobila Androidapplikationen ”DreamTeam”.

Denna rapport undersöker två huvudområden. Det första innefattar att undersöka hur en mobil

Androidapplikation vid namn ”DreamTeam” ska designas och utvecklas för att förbättra den interna

bemanningsprocessen på Capgemini. DreamTeam är en pilotapplikation utvecklad för iPhone och

dess syfte är att underlätta och effektivisera bemanningen av projekt. Genom applikationens hjälp ska

användaren ha möjlighet att söka efter konsulter med specifika kompetenser och tillsätta dessa i

aktuella uppdrag. Denna rapport beskriver implementationen av Android versionen av DreamTeam.

Det andra området innefattar en användbarhetsutvärdering och analys av nyttan med applikationen

för Capgemini samt hur den kan förbättras och anpassas till organisationens mål. Rapporten

innefattar relevanta användarfall och den teoretiska grund som erfordras för att förstå den

underliggande infrastrukturen, implementationen och utvärderingen av DreamTeam.

Användbarhetsutvärderingen utfördes i form av en fältstudie med ett online-baserat webbformulär

och resultaten är presenterade både kvantitativt och kvalitativt. Möjlig framtida utveckling av

DreamTeam presenteras och baseras på intervjuer med Capgeminianställda.

Slutsatserna kan sammanfattas med att initiativet och utvecklingen av DreamTeam är i framkant

gällande mobila effektiviseringsverktyg för företag och dess funktionalitet kan förbättra den interna

bemanningsprocessen och minska arbetsbördan för berörda parter inom företaget. Dock är den

nuvarande implementationen för statisk, både gällande teknik och process, och behöver utvecklas och

förbättras för att nå sin fulla potential.

Page 5: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

Acknowledgements

This Master’s Thesis is part of a project managed within a part of Capgemini Sverige AB called Service

Industries and examined at the School of Computer Science and Communication (SCS) at the Royal

Institute of Technology (KTH).

First of all I want to thank all the project members in the Accelerator project and other employees at

Capgemini that have provided me with valuable knowledge, input, and feedback during the process

with this Master’s Thesis. A special thanks to the project leader and my supervisor at Capgemini,

Christian Karlsson.

I also want to thank my supervisor at KTH, Professor Anders Lansner, which has provided me with

important feedback and input regarding the report and evaluations parts.

Stockholm 2011-02-11

Katarina Larsson

Page 6: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing
Page 7: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

Table of Content

1. Introduction .............................................................................................................................................. 1

1.1 Background................................................................................................................................................. 2

1.2 Problem ........................................................................................................................................................ 2

1.3 Purpose ........................................................................................................................................................ 3

2. Theory ......................................................................................................................................................... 4

2.1 Client-Server-Model .............................................................................................................................................. 4

2.2 Cloud based applications .................................................................................................................................... 4

2.2.1 Cloud based delivery models .................................................................................................................... 6

2.2.2 Benefits and Concerns ................................................................................................................................. 7

Benefits: ................................................................................................................................................ 7

Concerns: .............................................................................................................................................. 7

2.3 Representational State Transfer (REST) applications ............................................................................ 8

2.3.1 HyperText Transfer Protocol (HTTP) ................................................................................................... 9

2.4 Smartphone programming ............................................................................................................................. 11

2.4.1 Smartphone definition ............................................................................................................................. 11

2.4.2 Challenges of smartphone programming ......................................................................................... 12

2.5 Native Mobile Applications vs. Mobile Web Applications .................................................................. 13

2.5.1 Native Smartphone Applications ......................................................................................................... 13

2.5.2 Mobile Web Applications ........................................................................................................................ 13

2.6 Android ................................................................................................................................................................... 15

2.6.1 Dalvik and the Java Virtual Machine ................................................................................................... 16

2.6.2 XML based layout ....................................................................................................................................... 17

2.6.3 Guidelines ...................................................................................................................................................... 17

2.6.4 Android API levels...................................................................................................................................... 19

2.7 Human Computer Interaction Evaluation Techniques ....................................................................... 21

2.7.1 Usability testing .......................................................................................................................................... 21

2.7.2 Field studies .................................................................................................................................................. 21

2.7.3 Analytical evaluation ................................................................................................................................ 22

Walkthroughs: ................................................................................................................................. 22

Heuristic evaluation: ..................................................................................................................... 22

2.7.4 Planning the evaluation – The DECIDE Framework .................................................................... 23

Page 8: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

2.7.5 Data gathering techniques ...................................................................................................................... 23

2.7.6 Analyzing Data ............................................................................................................................................. 24

3. Method ..................................................................................................................................................... 26

4. Architecture ........................................................................................................................................... 27

4.1 Mobile Service ...................................................................................................................................................... 28

4.1.1 Mobile Service Methods: ......................................................................................................................... 29

4.2 Data model ............................................................................................................................................................. 30

5. Requirements and Use Cases .......................................................................................................... 31

5.1 Users ......................................................................................................................................................................... 31

5.2 Requirements ....................................................................................................................................................... 31

5.2.1 Team ................................................................................................................................................................ 31

5.2.2 Search .............................................................................................................................................................. 32

5.2.3 Favorites ........................................................................................................................................................ 33

5.2.4 Info .................................................................................................................................................................. 33

5.3 Use Cases ................................................................................................................................................................ 34

5.3.1 Team ............................................................................................................................................................... 34

5.3.2 Search .............................................................................................................................................................. 35

5.3.3 Favorites ........................................................................................................................................................ 36

5.3.4 Info ................................................................................................................................................................... 36

6. Implementation .................................................................................................................................... 37

6.1 Activities ................................................................................................................................................................. 37

6.1.1 Main Activities ............................................................................................................................................. 37

6.2 Android specific hardware.............................................................................................................................. 39

6.3 Android specific design implementation .................................................................................................. 39

6.4 Menus and Navigation ...................................................................................................................................... 39

6.5 Navigation in DreamTeam Activities .......................................................................................................... 40

6.5.1 Search .............................................................................................................................................................. 40

6.5.2 Team ................................................................................................................................................................ 41

6.5.3 Favorites ........................................................................................................................................................ 42

6.5.4 Info ................................................................................................................................................................... 42

6. 6 Communications ................................................................................................................................................ 43

6.7 Threads ................................................................................................................................................................... 43

6.8 Database ................................................................................................................................................................. 43

6.9 Security ................................................................................................................................................................... 44

6.10 Environment ...................................................................................................................................................... 44

Page 9: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

7. DreamTeam walk-through ............................................................................................................... 45

7.1 Start screen ............................................................................................................................................................ 45

7.2 Main Menu ............................................................................................................................................................. 45

7.3 Add Team ............................................................................................................................................................... 46

7.4 Add Team Members ........................................................................................................................................... 46

7.5 Search ...................................................................................................................................................................... 47

7.6 Long Press .............................................................................................................................................................. 47

7.7 Person View .......................................................................................................................................................... 48

7.8 Add from Person View ...................................................................................................................................... 48

7.9 Remove.................................................................................................................................................................... 49

7.10 Indicators............................................................................................................................................................. 49

8. Tests .......................................................................................................................................................... 50

8.1 Expert Testing ...................................................................................................................................................... 50

8.2 Monkey .................................................................................................................................................................... 51

9. Usability Testing- and Evaluation ................................................................................................. 52

9.1 Performing the test ............................................................................................................................................ 54

10. Usability Evaluation Results ...................................................................................................... 56

10.1 Quantitative results ......................................................................................................................................... 56

10. 1.1 Android Experience distribution ..................................................................................................... 57

10.1.2 Navigation ................................................................................................................................................... 58

10.2 Qualitative Results ........................................................................................................................................... 60

Installation ........................................................................................................................................ 60

UI........................................................................................................................................................... 60

Response time ................................................................................................................................. 60

Navigation ......................................................................................................................................... 60

11. Possible development of DreamTeam ................................................................................... 61

11.1 Sales ....................................................................................................................................................................... 61

11.2 Staffing .................................................................................................................................................................. 62

11.3 Conclusion ........................................................................................................................................................... 62

12. Discussion ......................................................................................................................................... 63

12.1 DreamTeam Usability ..................................................................................................................................... 63

12.2 DreamTeam Process ....................................................................................................................................... 64

12.3 Conclusion ........................................................................................................................................................... 66

Page 10: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

13. References ......................................................................................................................................... 67

APPENDIX: A .................................................................................................................................................. 71

Usability Evaluation of Android version of DreamTeam (performed in Swedish) ......................... 71

Outline

This report is divided in 13 chapters and one Appendix. The Chicago Manual of Style, author – date, is

used for all references. A complete bibliography is listed in the end of the report after chapter 13 and

before the appendix. Concepts are marked with superscript and are explained in the footer at the

current page.

Page 11: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

1

1. Introduction

“Mobile devices have fulfilled the true aim of Internet by offering full connectivity anytime

anywhere. The trend of going wireless goes beyond the walls of homes, university buildings, or

hotels and reaches the open spaces of nature or the mobile spaces of trains and buses. The

freedom of movements is used to speak everywhere without the need to log in a local wireless

network, and to extend it to other Internet services such as Web surfing, email checking,

reading news, listen to online radios, or even watching video streaming and television.”

(Oliveira, Rodrigues och Vaidya 2010)

According to Gartner, smartphone1 sales grew 96 percent from the third quarter last year (2009), and

smartphones accounted for 19.3 percent of overall mobile phone sales in the third quarter of 2010

(Tudor och Pettey 2010).

Because different types of mobile devices, especially smartphones, increase in popularity the need and

importance of suitable mobile- and web applications increase. These new developments have been

recognized in the enterprise too. As recently as a year ago, many enterprises could not have imagined

they would rely on smartphones to improve employee productivity.

Capgemini is one of the world’s largest suppliers of IT-services, management consulting and

outsourcing (Capgemini u.d.) that now adopts to the new trend. This Master’s thesis is part of a

project managed within a part of Capgemini Sverige AB called Service Industries. The project is

named The Accelerator and its focus is to rationalize and improve internal processes mainly

concerning staffing, work scheduling, resume search and time reporting realized through mobile

applications for iPhone and Android. The Accelerator project is divided in different stages and

includes five applications:

- DreamTeam

- FreeForce

- Tasks

- Educator

- DashBoard

1 Smartphone: see section 2.4.1 (page 12)

Page 12: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

2

The first stage includes the development and implementation of DreamTeam and this Master’s thesis

covers the Android implementation of DreamTeam. The other applications are out of scope and will

not be covered in this report.

1.1 Background

DreamTeam is a pilot application developed for iPhone and its purpose is to ease and make staffing of

projects more effective. The main purpose of the DreamTeam application is to allow users to assemble

a team of consultants for an assignment, a bid, or another purpose. One possible scenario is when a

senior consultant gets a request from a client about the possibility to perform and staff a future project.

Today the consultant has to bring this question to a staffing meeting that is held every week. With the

new application it will be possible to overview all Capgemini consultants immediately in the mobile

phone. The iPhone application is a pilot application with limited functionality. The main

functionalities of DreamTeam are:

- Search for consultants resume.

- Search for consultants through core skills as e.g. “Java”, “Oracle” etc.

- Manage and create teams of consultants.

- See consultant’s availability.

- Save and view favorite consultants in a favorite list.

1.2 Problem

The scope of the thesis is divided in two parts, development and evaluation.

Development: In the first part an Android version of the iPhone DreamTeam application described

above will be developed. This includes establishing Android specific requirements and developing the

application for Android on the basis of “The developers guide for Android” (Android Developers

u.d.). It also includes taking appropriate decisions about the user interface regarding usability and

design that has to comply with to the “User Interface guidelines for Android” (Android Developers

u.d.). All requirements are described in a system requirements specification and this will serve as a

base in the work with the application. A good understanding of Android, client-server model, cloud

Page 13: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

3

computing, and REST applications are needed and security aspects for mobile development for the

enterprise also have to be evaluated and considered.

Evaluation: When the application is finished it will be evaluated both regarding usability and its

advantages for the company. Suitable human computer interaction (HCI) models will be used for the

usability part and the second part will be evaluated through interviews and research. Research will be

performed both externally and within Capgemini.

1.3 Purpose

This master thesis has two main objevtives. The first one is to identify how mobile Android

applications shall be designed to improve the internal staffing process within Capgemini. The second

one is to evaluate the usability of the application and to investigate if and how the DreamTeam

application is valuable for Capgemini and how it can be improved and suited for the organisations

needs.

Page 14: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

4

2. Theory

This chapter establishes the theoretical basis to grasp the implementation and evaluation of the

Android DreamTeam application. This starts with an introduction to Client-Server-Model, and REST-

and Cloud applications to comprehend the upcoming chapter 4 about the underlying infrastructure

and its components that the mobile Android DreamTeam application will be a part of.

Subsequently follows an introduction to smartphone programming, the mobile operation system

Android, and relevant human computer interaction techniques and models.

2.1 Client-Server-Model

The term client-server refers to a popular model for computer networking that utilizes client and

server devices each designed for specific purposes. In a client-server system, two separate applications

are involved. The first application runs on the server and protects and provides access to the data

located on the server. The second application is the client and it runs typically on the user’s

workstation or mobile device. The client sends requests to the server and gets appropriate results from

the server depending on the formulation of the request. One server generally supports numerous

clients, and multiple servers can be networked together in a pool to handle the increased processing

load as the number of clients grows. The client-server model can be used on the Internet as well as

local area networks (LANs). Examples of client-server systems on the Internet include e.g. Web

browsers and Web servers. (Hentzen 2007)

2.2 Cloud based applications

Cloud computing is considered by many to be the next great wave in the IT industry and is currently

one of its major buzzwords. Gartner predicts that cloud computing will surge to 150 billion US dollars

by 2010 (Gregg 2010).

Historically “the cloud” is a metaphor for Internet and is often represented by a cloud in network

diagrams shown in the figure 1 on the next page. The cloud is often referred to as something that is

“someone else’s concern” and the expression explains the basic idea of the cloud-computing concept.

In essence, cloud computing is when shared resources, software, and information resides at a location

Page 15: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

5

other than your computer and are provided to computers, smartphones and other devices on demand

over the Internet. (Elsenpeter, Velte and Velte 2010); (Antonopoulos och Gillam 2010)

The billing model for cloud computing is typically based on a “pay as you go” structure where

organisations need to pay only as much for the computing infrastructure as they use.

The programs included in Google Apps2, such as Gmail and Google Docs, are examples of cloud

applications. They provide common business applications online that are accessed from a Web

browser. The software comes from the Web servers, and the data may be stored on the servers as well.

The figure below shows how a cloud provider hosts applications. (Elsenpeter, Velte and Velte 2010)

(Antonopoulos och Gillam 2010)2

2 Google Apps: is a service from Google providing independently customizable versions of several Google products under a custom domain name. It features several Web applications with similar functionality to traditional office suites, including: Gmail, Google Groups, Google Calendar, Talk, Docs and Sites. (Wikipedia: Google Apps u.d.)

FIGURE 2: EXAMPLE OF HOW A CLOUD PROVIDER HOSTS APPLICATION

(ELSENPETER, VELTE AND VELTE 2010)

FIGURE 1: NETWORK DIAGRAM

(ELSENPETER, VELTE AND VELTE 2010)

Page 16: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

6

2.2.1 Cloud based delivery models

There are three cloud-based delivery models:

Software as a service (Saas): The consumer uses an application but does not control the operating

system, hardware or network infrastructure. These applications are steered over the network and

users do not need to have the application housed locally on their server or client. Saas is sometimes

referred to as “software on demand”.

Platform as a service (PaaS): The user hosts an environment for their application. The users control

the application but do not control the operating system, hardware or network infrastructure used.

Infrastructure as a Service (IaaS): The user accesses fundamental computing resources such as CPU33,

memory, middleware and storage. The consumer controls the resources but not the cloud

infrastructure beneath them. The picture below shows the three components of a cloud-computing

solution. (Elsenpeter, Velte and Velte 2010) (Antonopoulos och Gillam 2010)

3 CPU: Is a acronym for Central Processing Unit and is the portion of a computer system that carries out the instructions of a computer program, and is the primary element carrying out the computer's functions. (Wikipedia: CPU u.d.)

FIGURE 3: COMPONENTS OF A CLOUD-COMPUTING SOLUTION (ELSENPETER, VELTE AND VELTE 2010)

Page 17: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

7

2.2.2 Benefits and Concerns

As with several things in IT, there are pros and cons and cloud computing is not an exemption. Some

benefits and concerns are listed below:

Benefits:

- Cloud computing promises to cut operational and capital costs and let IT- departments focus

on strategic projects instead of the maintenance of data centres etc. Another company hosts

applications and also pay the costs of servers and service of these.

- Applications can be accessed from everywhere which gives increased mobility. Users can

perform their job from home, work, or at client locations.

- Ability to free-up IT workers who have been occupied performing server updates, installing

patches, or providing application support etc. (Gregg 2010) (Elsenpeter, Velte and Velte 2010)

(Antonopoulos och Gillam 2010)

Concerns:

- If network connection problem occur cloud applications are unreachable. This affects several

people and implies extended costs for the company due to inefficiency. The same scenario

arise if the application site trying to be accessed having problems.

- Many companies are uncomfortable with the idea of storing their data and applications on

system infrastructures and services they do not control. Even if the data exists in the cloud it

actually has to reside at a physical location. Companies lose control over their data, the cloud

provider should agree in writing to provide the level of security required. Anyone considering

using the cloud needs to look at who is managing their data and what types of controls are

applied to these individuals.

- The connection between different applications is more complicated, e.g. if you want to move a

file from one application to another.

- The cloud provider is responsible of the level of security required and to handle possible

security risks. Cloud based services are an attractive target to hackers, what happen if a

security incident occurs and what support will the provider supply? (Gregg 2010)

Page 18: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

8

2.3 Representational State Transfer (REST) applications

One of the key technologies that make the web so powerful today is web services. Web services allow

systems to communicate with each other using messages. Extensible Markup Language (XML) is often

used to format these messages. It is messages in text format understood of almost all systems and they

are used when communicating between applications that run on different machines. Though XML is

the most popular it is not the only message format available in the programmable web. There are a

large number of other formats offered, e.g. HTML, JSON and RSS. HTML is an abbreviation for

HyperText Markup Language and is used to markup tags to describe web pages (Wikipedia:HTML

u.d.) and RSS stands for Really Simple Syndication and is a family of web feed formats used to publish

frequently updated contents such as news feed from a web page (Samisa 2008). JSON stands for

JavaScript Object Notation and is a wide accepted format with an appealing form that is a lightweight

text-based open standard designed for human-readable data interchange. It is derived from the

JavaScript4 programming language for representing simple data structures and associative arrays,

called objects. Despite its relationship to JavaScript, it is language-independent, with parsers5 available

for virtually every programming language. (Wikipedia:JSON u.d.) Representational State Transfer or

REST has over time become the preferred technology for web services used in web applications

(Samisa 2008). REST is a software architecture style that can be followed while designing software

systems and is an ideal design to adapt for web services based software applications. REST was first

described by Roy Fielding in his PhD dissertation (Fielding 2000).

One of the key principles behind REST web services is to access resources via Uniform Resource

Indicator (URI). An URI is a unique identifier that is built up by a string of characters used to identify

a resource on the Internet; it is made of a name and a structured address indicating where to find this

resource (Wikipedia:URI u.d.). One example of how URIs are used in web services are when an URI is

typed in the address bar of a web browser and a XML document is received as response. That is

actually a web service in action. (Samisa 2008) An example of an URI could look like:

http://sv.wikipedia.org/wiki/Representational_State_Transfer.

Often, REST architectural style is referred to as the architectural style of the Web and most of today’s

web applications demonstrate. But REST is not a standard; it is just an architectural style. Despite this,

REST rely heavily on many other standards such as: HTTP, URI, XML, JON and HTML. It is has its

heart in the concept of resources (URIs) with which web services can be built. (Samisa 2008)

Conforming to the REST constraints is referred to as being “RESTful” (Wikipedia:REST u.d.).

4 JavaScript: A scripting language used in web content development, primarily to create functions that can be embedded in or included from HTML documents and that interact with the DOM (Document Object Model). 5 Parsers: In computing, a parser is one of the components in an interpreter or compiler, which checks for correct syntax and builds a data structure (often some kind of parse tree, abstract syntax tree or other hierarchical structure) implicit in the input tokens. (Wikipedia:Parsing u.d.)

Page 19: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

9

2.3.1 HyperText Transfer Protocol (HTTP)

HyperText Transfer Protocol (HTTP) is a protocol6 for distributed, collaborative, hypermedia

information systems, led to the establishment of the World Wide Web (WWW) together with URIs,

HTML, and the first browsers. Programmable Web uses HTTP as the transportation medium and,

most of the time, XML as the message format. In other words, programmable Web could be

considered as XML over HTTP. (Samisa 2008)

The REST client-server architectural style is designed to use a stateless communication protocol,

typically HTTP. It functions as a request-response protocol in the client-server computing model. In

HTTP, a web browser, for example, acts as a client, while an application running on a computer

hosting a web site functions as a server. The client submits an HTTP request message to the server.

The server, which stores content, or provides resources, such as HTML files and images, or generates

such content as required, or performs other functions on behalf of the client, returns a response

message to the client. A response contains completion status information about the request and may

contain any content requested by the client in its message body. (Wikipedia:HTTP u.d.)

A client sends a request to a server, expecting an answer. The message exchanges are made of an

envelope and a body, also called a document or representation.

The Web consists of well-identified resources linked together and accessed through simple HTTP

requests. The main types of requests standardized in HTTP are GET, POST, PUT, and DELETE. These

are also called verbs, or methods. HTTP defines four other methods that are less frequently used:

HEAD, TRACE, OPTIONS, and CONNECT. (Goncalves 2010) The four most common used are

described on the next page:

6 A communications protocol is a formal description of digital message formats and the rules for exchanging those messages in or

between computing systems and in telecommunications. Protocols may include signaling, authentication and error detection and correction capabilities. A protocol describes the syntax, semantics, and synchronization of communication and may be implemented in hardware or software, or both (Wikipedia:Protocol u.d.).

FIGURE 4: HTTP REQUEST AND RESPONSE (GONCALVES 2010)

Page 20: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

10

GET: Retrieves a resource identified by a URI.

POST: Sends a resource to the server and updates the resource in the location identified by the URI.

PUT: Sends a resource to the server, to be stored in the location identified by the URI.

DELETE: Deletes a resource identified by a URI. (Samisa 2008)

Page 21: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

11

2.4 Smartphone programming

It is three years since Apple Inc brought the smartphone to a mass consumer market, but smartphones

have been around in one form or another since 1993. The difference between then and now is that

early smartphones were primarily used as enterprise devices and were prohibitively expensive for

most consumers. Today it is different and several phone manufactures and operating system (OS)

developers competing for market shares. The chart below shows smartphone sales by operating

system during the third quarter of 2010. (PCWorld: Brief history of smartphones 2010)

2.4.1 Smartphone definition

There is no standard definition of the term smartphone across the industry. According to Wikipedia

smartphones (Tudor och Pettey 2010) can be described as:

“A smartphone is a mobile phone that offers more advanced computing ability and connectivity

than a contemporary basic feature phone. Smartphones and feature phones may be thought of as

handheld computers integrated within a mobile telephone, but while most feature phones are able

to run applications based on platforms a smartphone allows the user to install and run more

FIGURE 5: SHARE OF 2010 Q3 SMARTPHONE SALES TO END USERS BY OPERATING

SYSTEM, ACCORDING TO GARTNER (GARTNER 2010) (WIKIPEDIA:SMARTPHONES U.D.)

Page 22: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

12

advanced applications based on a specific platform. Smartphones run complete operating system

software providing a platform for application developers. Handheld devices lag behind their

desktop counterparts in memory and speed by eight to ten years.” (Wikipedia:Smartphones u.d.)

Now is an exciting time for mobile developers. Mobile phones have never been more popular, and

powerful smartphones are now a popular choice for consumers. Stylish and versatile phones packing

hardware features like GPS, accelerometers, and touch screens, combined with fixed-rate, reasonably

priced data plans provide an enticing platform upon which to create innovative mobile applications.

(Meier 2010)

2.4.2 Challenges of smartphone programming

Developing programs for a phone is a different experience than developing desktop applications, web

sites, or back-end server processes. The tools look different, the frameworks behave differently, and

there are more limitations on what you can do with your programs (Murphy 2010). Below some

programming challenges are mentioned:

- Screens are small.

- Keyboards are small. On some smartphones physical keyboards do not exists.

- CPU speed and memory are limited compared with what are available on desktops and

servers.

- Devices are limited to the OS the manufactures have selected. (Murphy 2010)

Page 23: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

13

2.5 Native Mobile Applications vs. Mobile Web Applications

When talking of applications for mobile devices mainly two different techniques are considered: native

mobile applications and mobile web application. They differ from each other in e.g. development

techniques and online/offline usage. The following two sections describe the different approaches.

2.5.1 Native Smartphone Applications

A native application is software that needs to be downloaded and installed on a device. It is the native

applications users download from the Apple App Store7 or Android Market8. Native apps are

designed for specific platforms e.g. Android or iPhone’s iOS9 and can consequently take advantage of

the built in hardware and software of the mobile device like the gyroscope, camera etc. Thus, an

Android application cannot be used on e.g. an iPhone.

2.5.2 Mobile Web Applications

A mobile web application is more or less like a regular webpage but it is optimized for viewing on

mobile device web browsers. The benefit with this is that no approval from an application store is

required and it can be used on every platform. The main tools for web application development of this

kind are HTML510 and CSS311. The major setbacks are that older or less capable browsers on older

devices do not have support for these tools. (Oliveira, Rodrigues och Vaidya 2010). See comparison

table between native- and mobile web applications on the next page (Oliveira, Rodrigues och Vaidya

2010).

7 App Store: The Apple App Store is a service for iOS devices (iPhone, iPod Touch and iPad) offered by Apple Inc. which allows users to browse and download applications that were developed with the iOS SDK and published through Apple. (Wikipedia:App Store u.d.) 8 Android Market: Android Market is an online software store developed by Google for Android devices. An application program called "Market" is preinstalled on most Android devices and allows users to browse and download apps published by third-party developers, hosted on Android Market. (Wikipedia:Android market u.d.) 9 iOS: iOS (known as iPhone OS prior to June 2010) is Apple's mobile operating system. Originally developed for the iPhone, it has since been extended to support other Apple devices such as the iPod Touch, iPad and Apple TV. (Wikipedia: iOS(Apple) u.d.) 10 HTML5: is the next major revision of the HTML standard, currently under development. (Wikipedia:HTML5 u.d.) 11 CSS3: Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation semantics (the look and formatting) of a document written in a markup language. CSS3 stands for CSS level 3 and is the next generation CSS. (Wikipedia:CSS u.d.)

Page 24: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

14

Web Apps Native Apps

Technology HTML, CSS, JavaScript Cocoa, Objective-C, Android

Deployment Web Server App Store, Android Market

Installation & Updates Not required, just hit refresh Needs to be downloaded or

deployed by developer

Offline usage No Yes

Initializing Open bookmark or insert URI Click the application icon

Database No Yes

User Experience Very good but it depends on the

web browser, hardware and age

of the device.

Very good as they are developed

for specific devices.

TABLE 1: COMPARISON BETWEEN NATIVE- AND MOBILE WEB APPLICATIONS.

Page 25: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

15

2.6 Android

Android is an open mobile phone platform that was developed by Google and, later, by the Open

Handset Alliance. Google defines Android as a "software stack" for mobile phones. The Android

platform promised openness, affordability, open source code, and a high-end development

framework.

It is made up of the operating system; the platform on which everything runs, the middleware; the

programming that allows applications to talk to a network and to one another, and the applications;

the actual programs that the phones will run. In short, the Android software stack is all the software

that will make an Android phone an Android phone.

Android is based on the Linux operating system. All of its applications will be written using the Java

programming language and includes a set of core libraries that provides most of the functionality

available in the core libraries of Java. Android relies on Linux version 2.6 for core system services such

as security, memory management, process management, network stack, and driver model. The kernel

also acts as an abstraction layer between the hardware and the rest of the software stack.

Google says Android will ship with a set of core applications including email client, SMS program,

calendar, maps, browser, contacts, and more (Android Developers u.d.).

FIGURE 7: OFFICIAL ANDROID LOGO (ANDROID

DEVELOPERS U.D.)

FIGURE 6: HIGH-LEVEL VIEW OF THE

ANDROID SOFTWARE STACK

Page 26: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

16

Anyone can download an Android software development kit (SDK) from Google and write an

application for Android. (About.com u.d.); (Android Developers u.d.) By providing an open

development platform, Android offers developers the ability to build extremely rich and innovative

applications. Developers are free to take advantage of the device hardware, access location

information, run background services, set alarms, add notifications to the status bar, etc.

Developers have full access to the same framework Application Programming Interfaces (API)12 used

by the core applications. The application architecture is designed to simplify the reuse of components;

any application can publish its capabilities and any other application may then make use of those

capabilities. This same mechanism allows components to be replaced by the user. (Android

Developers u.d.) All necessary resources for Android development can be found at the official

Android developer site: http://developer.android.com/dalvik

2.6.1 Dalvik and the Java Virtual Machine

A Java Virtual Machine (JVM) is an application that translates platform-independent Java bytecode

into computer-specific machine code, or which interprets that bytecode during runtime. A bytecode is

a set of characters generated by a Java compiler as an output of compiling a Java program. The

conversion of bytecode into machine code for the specific computer makes it easy to run a Java

application regardless of the computer's operating system and hardware configuration. (Bakshi,

Khanna och Mishra 2003)

As part of Android, Google has spent a lot of time thinking about optimizing designs for low-powered

handheld devices. The performance requirements on handsets are severe as a result, requiring handset

designers to optimize everything. The packages in Android are full-featured and extensive. According

to Google, these system libraries might use as much as 10 to 20MB, even with their optimized JVM.

These issues led Google to revisit the standard JVM implementation. (Hashimi, MacLean och

Komatineni 2010). Dalvik is the name of the virtual machine (VM) in Google's Android operating

system. Like the rest of Android, it is open-source software. It was originally written by Dan

Bornstein, who named it after the fishing village of Dalvik in Iceland. Android applications are

converted into the compact Dalvik Executable (.dex) format, which is designed especially for Android

to run on embedded system, suitable for systems that are constrained in terms of memory and

processor speed. The .dex files can be downloaded onto the mobile handsets and run.

12 Application Programming Interface (API): is a particular set of rules and specifications that a software program can follow to access and make use of the services and resources provided by another particular software program that implements that API. It serves as an interface between different software programs and facilitates their interaction, similar to the way the user interface facilitates interaction between humans and computers. (Wikipedia:API u.d.)

Page 27: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

17

2.6.2 XML based layout

In Android it is possible to create a user interface (UI) purely through Java code but a more common

approach is to use a so called XML-based layout file. When using XML-based layout the view for a

screen is loaded from an XML-file (these files are called layout resources). A layout resource is an

essential key resource used in Android UI programming (Hashimi, MacLean och Komatineni 2010).

The advantage to declaring the UI in XML is that it enables better separation of the presentation of the

application from the code that controls its behaviour. The UI descriptions are external to the

application code, which means that it can be modified or adapted without having to modify source

code. For example, XML layouts can be created for different screen orientations, different device

screen sizes, and different languages. Additionally, declaring the layout in XML makes it easier to

visualize the structure of the UI and it is easier to debug13 problems (Android Developers u.d.).

2.6.3 Guidelines

The Android UI team has developed guidelines for the interaction and the visual design of Android

applications. There are also some best practices regarding Android compability, supporting multiple

screens, designing for performance, designing for responsivness, and designing for seamlessness. A

more exhaustive review of the best practices can be found at the official android developer pages (next

page):

User Interface guidelines:

http://developer.android.com/guide/practices/ui_guidelines/index.html

Compatibility:

http://developer.android.com/guide/practices/compatibility.html

Supporting Multiple Screens:

http://developer.android.com/guide/practices/screens_support.html

13 Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. (Wikipedia: Debugging u.d.)

Page 28: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

18

Designing for Performance:

http://developer.android.com/guide/practices/design/performance.html

Designing for responsiveness:

http://developer.android.com/guide/practices/design/responsiveness.html

Designing for Seamlessness:

http://developer.android.com/guide/practices/design/seamlessness.html

Page 29: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

19

2.6.4 Android API levels

When developing application on Android, it is useful to understand the platform's general approach

to API change management (Android Developers u.d.). It is important to understand the API Level

identifier and the role it plays in ensuring application's compatibility with devices on which it may be

installed. API Level is an integer value that uniquely identifies the framework API revision offered by

a version of the Android platform. (Android Developers u.d.)

TABLE 2: SOURCE:ANDROIDDEVELOPERS:HTTP://DEVELOPER.ANDROID.COM/GUIDE/APPENDIX/API-

LEVELS.HTML AND WIKIPEDIA: HTTP://EN.WIKIPEDIA.ORG/WIKI/ANDROID_(OPERATING_SYSTEM)

Platform Version API Level Name Deployed

Android 4.0 11 Ice Cream (mid 2011)

Android 3.0 10 Honeycomb (early 2011)

Android 2.3 9 Gingerbread Dec 2010

Android 2.2 8 Froyo

Android 2.1 7 Eclair Jan 2010

Android 2.0.1 6 Eclair Dec 2009

Android 2.0 5 Eclair Nov 2009

Android 1.6 4 Donut Oct 2009

Android 1.5 3 Cupcake May 2009

Android 1.1 2 - Feb 2009

Android 1.0 1 - Sep 2009

Page 30: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

20

The following pie chart and table is based on the number of Android devices that have accessed

Android Market within a 14-day period ending on the data collection date noted below (Android

Developers u.d.).

TABLE 3: TABLE OF DATA COLLECTED DURING TWO WEEKS ENDING ON JANUARY 4, 2011. (ANDROID

DEVELOPERS U.D.)

Platform API Level Distribution

Android 1.5 3 4,7 %

Android 1.6 4 7,9%

Android 2.1 7 35,2%

Android 2.2 8 51,8%

Android 2.3 9 0,4%

FIGUR 8: PIE CHART OF DATA COLLECTED DURING TWO WEEKS ENDING ON JANUARY 4, 2011. (ANDROID

DEVELOPERS U.D.)

Page 31: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

21

2.7 Human Computer Interaction Evaluation Techniques

Evaluation of a product includes not only why evaluation is important but also what aspects to

evaluate, where evaluation should take place, and when to evaluate. This is called “The why, what,

where and when of evaluation” and describes generally what factors to be considered when

evaluating a product.

There are three different main evaluations approaches. Each of these is based on a distinct set of

values and assumptions as to how evaluation should be done. The three approaches are usability

testing, field-testing and analytical evaluation. Each of the three approaches has several methods

associated with it. The methods used in evaluation are: observing users, asking users, asking experts,

user testing, inspections and modelling users’ performance. Some approaches use the same methods.

The different approaches are described in brief in the following sections, however, these different

approaches are often combined to get a broad understanding of the efficacy of a design (Preece,

Rogers och Sharp 2007).

2.7.1 Usability testing

Usability testing involves measuring typical users performance on tasks. The defining characteristics

of usability testing are that the evaluator controls the test environment and the format of the testing.

Users are sometimes watched and videotaped while performing tasks. Tests are generally performed

in controlled lab environments where users are isolated from their everyday life, e.g. phones are

switched off and there is no possibility of checking email. Commonly users perform tasks where the

evaluator noting the number and kinds of errors that the users make and recording the time that it

takes them to complete the task. User satisfaction questionnaires and interviews are also used to elicit

user opinions (Preece, Rogers och Sharp 2007).

2.7.2 Field studies

Unlike usability testing field tests are done in a natural environment with the aim of understanding

what users do naturally and how a product is used in that context. The basic techniques for field-

studies are data gathering through interview, observation and sometimes through questionnaires

(Preece, Rogers och Sharp 2007).

Page 32: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

22

2.7.3 Analytical evaluation

In analytical evaluation two methods are considered; inspections and theoretically based models. The

first one includes heuristic evaluation and walkthroughs and the latter are used to predict user

performance. The two different types of inspections are described in more detail below. (Preece,

Rogers och Sharp 2007)

Walkthroughs:

An expert evaluates by walking through scenarios with prototypes of the application and users do not

need to be present. One type of walkthrough is cognitive Walkthrough. In Cognitive walkthroughs a

user problem is simulated and walked through in five different steps:

- The characteristics of a typical user are identified. A prototype is made and relevant tasks are

produced to perform the evaluation.

- A designer and one more expert come together to perform the walkthrough.

- The evaluators walkthrough the tasks and try to answer three questions; Will users know

what to do? Will they see how to do it? Will they understand from feedback whether the

action was correct or not?

- An error record is compiled including e.g. critical information about what caused the

problems and design issues.

- The design is revised to fix the problems presented. (Preece, Rogers och Sharp 2007)

Heuristic evaluation:

Heuristics evaluation is a usability inspections technique in which experts evaluates a product from

different guidelines. These guidelines are called heuristics and were originally developed by Jakob

Nielsen for screen-based products and can be used in any stage of the design process. It is important

to remember that experts and not users perform this kind of evaluation. (Preece, Rogers och Sharp

2007)

Page 33: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

23

2.7.4 Planning the evaluation – The DECIDE Framework

While planning what type of evaluation techniques and models to be used in a project a framework

can be helpful. The DECIDE framework provides a checklist to plan evaluations. It has the following

six items (all items equally important):

Determine the goals: Identifying the high-level goals of the evaluation is the first step in planning an

evaluation.

Explore the questions: In order to make goals operational appropriate questions must be well

formulated. Consider that the answers will be used in the analyze part.

Choose the evaluation approach and methods: Depending on the goals and questions formulated in

earlier stages the evaluation approach is chosen. Often a combination of methods and approaches are

used.

Identify the practical issues: It is important to identify the practical issues before starting the

evaluation. A rule of thumb is to start with a pilot study with a small amount of users before

performing the study on several participants. Practical issues can be related to users, facilities,

equipment, and schedule and budget constraints.

Decide how to deal with the ethical issues: All data gathering requires consideration of ethical issues.

For example people privacy information should be protected. Depending on the type of evaluation

different levels of caution must be applied.

Evaluate, analyze, interpret, and present the data: As mentioned in the “Explore the question” part

these items are closely related to each other. Decisions must be made about what data is needed to

answer the questions since this is the source of the analyze part. How data will be analyzed and

presented must also be concidered. (Preece, Rogers och Sharp 2007)

2.7.5 Data gathering techniques

Choosing which data gathering techniques to use depends on a variety of factors e.g. to the focus of

the study, the participants involved, the product to be examined and the resources available. There is

no right technique but it is important to take all the mentioned factors into account and the chosen

technique must be compatible with the evaluation goal. It is common to combine different techniques

in order to get a wide basic data. This strategy is called triangulation and provides different

perspectives and evidence of findings across techniques. The most commonly used techniques for

data gathering are described below:

Page 34: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

24

Data recording: The most common forms of data recording include taking notes, audio recording,

taking photographs, and video recording. For video- and audio recording it is valuable to have the

opportunity to observe the material several times when analyzing data. One concern is that

participants may feel uncomfortable while being recorded. Regarding taking notes sometimes it is

hard to listen and observe at the same time.

Interviews: An interview is conducted in real time, which makes it easier to assist with answers to

questions. Samples and additional products can be showed and evaluated and it is easy to control the

rate of survey completion. Some concerns can be that it is sometimes hard to find people to participate

in the interview. Participants might feel uncomfortable by answering questions they consider too

private and interviews can be relatively inefficient and time consuming compared to e.g.

questionnaires.

Questionnaires: Questionnaires is a quick and effective method. It is possible to hand out the

questionnaire to several people at the same time and a questionnaire-based survey does not have to be

conducted in real-time and can be completed anywhere anytime. Sensitive issues can be discussed

more easily. Some concerns worth mention is that the answers are static and can give rise to

misunderstandings. People must be motivated to answer and it is easy to ignore a questionnaire. If the

answers are unclear it is not possible to get it clarified.

Observation: Observation can take place in different settings, both in controlled environments and in

the field. The technique relies on the observers’ ability to gather data about actual behaviour. Some

concerns to mention is e.g. that the participant can act differently when watched. (Preece, Rogers och

Sharp 2007)

2.7.6 Analyzing Data

Quantitative data is data that is in the form of numbers, or that can easily be translated into numbers.

For example, a thing that is easily measured as the number of minutes it takes to perform a task or the

age of a participant. Qualitative data is hard to measure and is hard to express in numerical terms.

Examples of that are the comments fields on questionnaires.

To analyze data gathered from questions, two different answers are possible: answers from open

question or answers from closed questions. There are two definitions that are used to describe closed

questions. A common definition is that a closed question can be answered with either a single word or

a short phrase. A more limiting definition is that closed question can be answered with either 'yes' or

'no'. Examples of closed questions are “Are you happy?” or “How old are you?” An open question is

likely to receive a long answer. Although any question can receive a long answer, open questions

Page 35: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

25

deliberately seek longer answers, and are the opposite of closed questions. Examples of open

questions are “Why did you do that?” or “How do you keep focused?” Closed questions are likely to

be analyzed quantitatively and open questions qualitatively. (Preece, Rogers och Sharp 2007)

Page 36: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

26

3. Method

The Android version of DreamTeam to be implemented will

serve as one of the possible clients in a client-server model.

The client will communicate with the server through the

cloud with REST’s GET- and POST techniques over HTTP

where URIs represent different states in the system.

DreamTeam for Android will be implemented as a cloud

based native mobile application and function as a “platform

as a service” (PaaS) product. The figure to the right shows a

high level overview of the architecture, next chapter (4:

Architecture) covers the architecture in full.

The software implementation part follows Capgemini

standards and methologies used in the Accelerator project.

Evaluation techniques are compiled by means of the

DECIDE framework described in the theory part 2.7.2 and

has resulted in the conclusion to use the human computer

interaction techniques; field studies and web-based

questionnaires for the usability evaluation part.

Testing will be performed in two phases, expert testing and

monkey testing14. These two will be combined with unit

tests during the whole process.

The current situation at Capgemini regarding staffing, sales,

managing, and what DreamTeam can contribute to

Capgemini is based on interviews with the project sponsor

and employees in relevant positions at the staffing division and

account management.

14 See chapter 8.2.

FIGURE 9: HIGH LEVEL OVERVIEW OF

ARCHITECTURE

Page 37: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

27

4. Architecture

This chapter explains the underlying architecture that the Android DreamTeam application will

communicate with. It is built on well-known technologies and standards to ease the modularization of

the system as well as link the modules. It is focused mainly on open standards, as this will help the

system evolve to meet new demands. The main goal when the architecture was developed was to

create a platform for future extension while at the same time be as simple as possible with regards to

development, run, and maintenance. The architecture is designed to make use of the functionality in

the standard products as far as possible. (Forsberg 2010). Below a

high level model describes the architecture:

User: User of the system will be Capgemini employees.

Clients: The system will support three different types of clients,

iPhone, Android and a web interface.

Facade: The facade communicates with the clients through strings

and JSON. The client sends a String and gets a JSON as response.

Service: The Service communicates with the Facade through strings

and a Data Object (DO). The Facade sends a String and gets a DO as

response.

Model: The Model communicates with the Service through a Request

and a Database Object (DBO). The Service sends a Request and gets a

DBO as response.

Back end and external systems: The system should make use of the

functionality in existing internal backend systems such as e.g. the

internal Capgemini systems “Skills DB” and “Retain”. The Skills DB

contains all consultants’ skills and CVs and the Retain system contain

all information about availability and occupation level. The two

systems are connected and share some data.

Security: Due to the sensitive and valuable information that exists in the

systems the question about if- and how to deal with connections to

external applications such as DreamTeam have been declined temporarily. Therefore, in the first

iteration, the goal is to create a stand-alone server implementation that supports the mobile

application in terms of functionality and information.

FIGUR10: HIGH LEVEL MODEL OF THE

UNDERLYING DREAMTEAM ARCHITECTURE

Page 38: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

28

4.1 Mobile Service

The Mobile Service provides the back-end functionality for the application and takes care of the

storage and logic that DreamTeam depend on. It builds on a class: DreamTeamResource, and the class is

responsible for handling requests from clients. The client sends a request to the REST service, and the

service sends a respond back to the client. The request is a URI and the response is a string

representation of one or several JSON object(s) of the requested object/action. If any error happens

during the transaction, an error message is returned. The error message has the following syntax:

{error: message}. The client-server model is displayed in the figure below:

FIGURE 11: CLIENT-SERVER MODEL

Page 39: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

29

4.1.1 Mobile Service Methods:

The methods in the DreamTeamResource class that are used for the Android version of DreamTeam

are described below. The methods are named with the following convention:

“MethodName (input parameters): Method description”

AddDevice(deviceID, userID): Adds a new device into the database, connected to a specific user.

AddFavorite(userID, personID): Adds a person as a favorite to a user.

AddOrUpdateUser(userID, name, deviceID): Adds or updates a user to the database.

AddTeam(userID, name): Add a team to the database for the specific user.

AddTeamMember(personID, teamID): Adds a person to a team.

AddUser(name): Adds a new user to the database.

DeleteUsers(userID): Delete users.

GetFavorites(userID): Get favorites (persons) for a specific user.

GetTeam(teamID): Get a team with a specific database id.

GetTeamMembers(teamID): Get all team members from a specific team.

GetTeams(userID): Get teams for a specific user (owner/creator).

IsFavorite(userID, personID): Check if a person is a favorite for a user.

RemoveFavorite(userID, personID): Removes a person as a favorite from a user.

RemoveTeam(teamID): Deletes a team from the database.

RemoveTeamMember(personID, teamID): Removes a person from a team.

SearchPersons(criteria): Search the database after persons with corresponding tags.

UpdateTeam(teamID, name): Updates a team's name, for the specific team with the teamID.

Page 40: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

30

4.2 Data model

The data model shows an overview of the data that the system handles:

FIGURE 12: OVERVIEW OF THE DATA THAT THE SYSTEM HANDLES

As shown in the data model above, each user is activated in the system by adding a device, and then

the user is identified by the device, effectively doing an automated authentication. Each user has a

number of favorites and teams that include a number of people. (Forsberg 2010)

Page 41: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

31

5. Requirements and Use Cases

The requirements and use cases for the iPhone version of DreamTeam are described in a Capgemini

project document “Software Requirements Specification”. For the Android version the requirements

and use cases derive from that document but have been modified to fit in an Android specific

environment.

5.1 Users

The future users of the Android version of DreamTeam will be employees at Capgemini that use an

Android phone as corporate phone in their daily work. Users are expected to be experienced, which

implies a extensive understanding of how to use the device e.g. knowledge of how to navigate

Android specific menus- and hardware.

5.2 Requirements

The requirements are collected in groups; each group has a matching activity in the application UI and

this structure is explained further in the next chapter (6. Implementation). Each requirement group

are named with “R” followed by its corresponding number. Some requirements are equal but exist in

different parts of the application and are therefore mentioned several times.

5.2.1 Team

R01. Teams: Allow the user to add, remove, and view teams.

R01.1 Add Team

R01.2 Remove Team

R01.3 View and scroll Team list

Page 42: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

32

R02. Team members: Allow the user to view team as well as, add- and remove team members.

R02.1 View and scroll Team member list

R02.2 Add Team member

R02.3 Remove Team member

R03. View Consultant: Allow the user to view details about a person.

R03.1 View person resume

R03.2 Add to Team

R03.3 Add to Favorites

5.2.2 Search

R04. Search Person: Allow the user to search for a person to view, add to a team, or favorite list.

R04.1 Search for a person by competence

R04.2 Search for a person by name

R05. Search Result List: Allow the user to view search results

R05.1 View and scroll result list

R05.2 Add person to Team

R05.3 Add person to Favorites

Page 43: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

33

5.2.3 Favorites

R06. View Favorites: Allow the user to view favorite persons.

R06.1 View and scroll Favorite list

R06.2 Add Favorites

R06.3 Remove Favorite

5.2.4 Info

R07. View Info: Allow the user to view info about the application.

R07.1 View Info

Page 44: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

34

5.3 Use Cases

All use cases have a matching activity in the application UI and this structure is explained further in

the next chapter (6. Implementation). Each use case is named with “UC” followed by its

corresponding number.

5.3.1 Team

UC01. Manage Teams: Allow the user to view, add, edit team name, and remove teams.

Pre: User at any dialog with the main menu visible

1. User select "Teams"

2. System show a list of teams

3. User can scroll the list of teams, and select a team in the list to view its details (see UC02.

Manage Team)

4. User select "Add Team"

5. A dialog box appears

6. User enter team name and confirm by selecting "Add" button

7. System add team

8. User long press a team name

9. An “Edit Team” menu appears

10. User select “Remove Team”

11. System remove team

12. User long press a team in the list

13. An edit menu appear

14. System show keyboard and allow editing of the team name

15. User select "Ok" and system updates the new team name

16. User select a team in the list (see UC02. Manage Team)

UC02. Manage Team: Allow the user to view team as well as view, add, and remove team members.

Pre: User selected or added a new team (see UC01. Manage Teams)

1. System show a list of team members

2. User can see the team's name as well as scroll the list of its members, and select a member in

the list to view details (see UC04. View Person)

3. User long press a person in the list

4. An edit Team Member menu appear

5. User select “Remove Team Member”

6. System removes team member from team

7. User select “Add Team Member” from main menu and System allows searching for new team

members (see UC03. Search Person)

Page 45: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

35

UC03. View Person: Allow the user to view details about a person.

Pre: User selected to see details about a person (see UC02. Manage Team, UC05. Search

Person, and UC06. View Favorites)

1. System show name, title, availability, tags, and a text description of a person

2. User select to add person to favorites or team (button with a plus sign)

3. System show confirmation that person was added to team or favorites

4. User select phone button

5. A “Choose number to call” dialog box appears

6. User chooses number and the phones call activity is started

7. User selects email button

8. A “Complete action using” dialog box appears

9. User selects preferred email program (e.g. gmail or other) and email activity is started

5.3.2 Search

UC04. Search Person: Allow the user to search for a person to add to a team.

Pre: User selected to add a new team member (see UC02. Manage Team) or pressed the Search

button in the main menu or user selected to add a new favorite.

1. System shows search box and keyboard.

2. User enters tags or name to search for and press “Go” or the magnifier symbol to perform the

search.

3. System show persons with matching tags and/or names in list

4. User select a person in the list of persons, see UC04. View Person

5. User long press a person in the list, see UC05. View search results

UC05. View Search Results: Allow the user to view search results

Pre: User has performed a search (UC03. Search Person)

1. System shows a search result list

2. User long press a person in the list

3. An “Add Consultant to”- menu appears

4. User adds person to Favorites or a Team

5. System shows confirmation that person was added and return to search result list (step 1).

6. User select a person in the list of persons

7. System shows details about a person, see UC04. View Person

Page 46: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

36

5.3.3 Favorites

UC06. View Favorites: Allow the user to view and add favorite persons.

Pre: User at any dialog with the main menu visible

1. User select "Favorites"

2. System shows a list of favorite persons

3. User long press a person

4. A “Edit favorite” dialog box appears

5. User choose ”Remove Favorite”

6. System removes person from favorites

7. User select “Add Favorite” from the main menu

8. The Search action starts, see UC03. Search Person

5.3.4 Info

UC07. View Info: Allow the user to view info about the app.

Pre: User at any dialog with the tab bar visible

1. User select "Info"

2. System show info about the app

Page 47: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

37

6. Implementation

The initial implementation phase included making decision about design and the general

implementation idea. An important part when developing for Android is to handle threads in an

appropriate way. This was considered as well as security, UI-design issues, and Android specific

matters.

6.1 Activities

The basic unit of an Android application is an “Activity”. An Activity displays the user interface of an

application, which may contain widgets like buttons, labels, text boxes, etc. Typically XML files are

used to define the UI. During runtime, the XML UI loads in the onCreate() event handler in the

Activity class. During compilation time, each element in the XML file is compiled into its equivalent

Android UI class, with attributes represented by methods. The Android system then creates the UI of

the Activity when it is loaded. While it is always easier and recommended to build UIs using a XML

file, there are times where the UI needs to be bulit dynamically during runtime (for example, when

writing games). Hence, it is also possible to create the UI entirely using code. (Android Developers

u.d.) In DreamTeam the XML and logic are separated as much as possible.

An Activity contains “Views” and “ViewGroups.” A View is a widget that has an appearance on

screen. One or more Views can be grouped together into a ViewGroup. A ViewGroup (which by itself

is a special type of View) provides the layout in which you can order the appearance and sequence of

views. Examples of ViewGroups are e.g. LinearLayout, and FrameLayout. In DreamTeam different

ViewGroups are used and combined in the UI to achieve the desired result (Android Developers u.d.).

6.1.1 Main Activities

Both the UI and the general implementation build upon four main activities. All main functionalities

start in these activities and the use cases and requirement groups described earlier corresponds to

these four activities:

- Team: This activity displays all teams in a list.

- Favorite: This activity displays all favorites in a list.

Page 48: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

38

- Search: This activity handles person search.

- Info: This activity displays information about the application.

The dialog model for the application is shown in the figure below:

FIGURE 13: DIALOG MODEL DREAMTEAM

Page 49: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

39

6.2 Android specific hardware

When designing for Android there are features that distinguishes Android devices from other devices

that has to be considered, e.g. buttons tied to the hardware. Typically an Android device has the

following buttons as a default setup:

- Back button: Navigate from the current activity to the previous activity.

- Main menu button: Shows the main menu that belongs to the current application running.

- Home button: Navigates from the current activity running to home screen

- Search button: Activates a search activity within the current application running.

In DreamTeam all these buttons have an active functionality within the application and future

DreamTeam users are expected to interact with the application through these.

6.3 Android specific design implementation

When navigating in lists an action called “long press” is used to interact with a specific list item. When

performing a “long press” a list item is pressed for 1-2 seconds until a menu appears with menu-item-

specific options. For a beginner this interaction is not obvious but since the contemplated DreamTeam

user is expected to be relatively experienced, and therefore expects to interact with their devices

unimpeded, long press will be used as a part of the implementation.

6.4 Menus and Navigation

Menus are an important part of applications that provide a familiar interface for the user to access

application functions and settings. Android offers an easy programming interface to provide

application menus in applications. Android provides three types of application menus:

- Option menu: The primary menu for an Activity, which appears when the user presses the

device MENU key.

- Context menu: A floating list of menu items that appears when the user performs a long-press

on a View

Page 50: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

40

- Submenu: A floating list of menu items that the user opens by pressing a menu item in the

Options Menu or a context menu. A submenu item cannot support a nested submenu.

(Android Developers u.d.)

DreamTeam implements Option menu and Context menu. The option menu holds the main menu and

the context menu are used for all long press actions in lists.

Each activity can be reach from a main menu at all times in the application lifecycle. When starting the

application the main menu has four options, namely the same options as the main activities

mentioned above. When navigating through the application the main menu changes to suit the

current activity. The activity specific menu option is always placed at the top right corner of the

menu.

As mentioned, all actions on list items are made with long press, which is a recommended way of

interacting with lists according to Android developers. (Android Developers u.d.)

6.5 Navigation in DreamTeam Activities

This section describes examples of how essential requirements are implemented in each main activity.

6.5.1 Search

The search option is reached in three different ways.

- When adding a team from the Team Member List views.

- When pressing the “Search” option in the main menu.

- When pressing the hardware Search button.

The search results are displayed in a search result list and users interact with each item via long press.

Depending how the search activity is reached the list activated by long press looks different. If

entering from a current team only two options are visible: “Add to Team” and “Add to Favorites”. If

entering from any of the two other options all teams are visible in the list.

Page 51: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

41

6.5.2 Team

Add team

To add a team the user press the “Add Team” option in the main menu and enter a desired team

name in a dialog box that appear.

Add team member

There are three different ways of adding a team member to a team:

- From the “Add Team Member” option in the main menu in the team-member-list activity.

This option starts the search activity and consultants are added via long press in the search

result list. Only the “Add to Favorite” and “Add to Team” options are available. If entering

from pure search alternatives all teams are available in the list.

- Via the “Add” button in the Person View. Depending on how the view was reached the

button shows different options. If entered from a current team only the “Add to Favorite”

option is available. If entered from pure search alternatives all teams are available in the list.

Delete team

A team is deleted by performing long press on a team in the team list and choose “Remove Team”.

Delete team member

A team member is deleted from a team by performing long press on a team member in the Team

Member List And choosing “Remove Team Member”.

Page 52: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

42

6.5.3 Favorites

Favorites can be added in three different ways:

- Via the main menu option “Add Favorites” in the Favorite activity. This option starts the

search activity and consultants are added via long press in the search result list.

- Via the “Add” button in the Person View and chose “Favorites”.

6.5.4 Info

The info view is reached by pressing the “Info” option in the main menu.

Page 53: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

43

6. 6 Communications

The Android DreamTeam application communicates with a database through URI:s and JSON-strings.

The request is a URI and the response is a string representation of one or several JSON object(s) of the

requested object/action. If any error happens during the transaction an error message is returned.

Whenever data is needed it is fetched from the database, the applications stores or caches no data on

the actual device. Consequently, when data is updated this data is received directly from the database.

6.7 Threads

When an application is launched, the system creates a thread called "main" for the application. The

main thread, also called the UI thread, is very important because it is in charge of dispatching the

events to the appropriate widgets, including drawing events. It is also the thread where your

application interacts with running components of the Android UI toolkit.

This single-thread model can yield poor performance unless the application is implemented properly.

Specifically, if everything is happening in a single thread, performing long operations such as network

access or database queries on the UI thread will block the whole user interface. No event can be

dispatched while the long operation is in progress. From the user's perspective, the application

appears hung. Even worse, if the UI thread is blocked for more than a few seconds (about 5 seconds

currently) the user is presented with the infamous "application not responding" (ANR) dialog.

To sum up, it is vital to the responsiveness of the application's UI to keep the UI thread unblocked.

(Android Developers u.d.) If there are long operations to perform they should always be done in extra

threads. With this in mind, DreamTeam create one new thread for every action that communicates

with the database.

6.8 Database

The initial thought was to connect DreamTeam with two external systems; the internal Capgemini

systems “Skills DB” and “Retain”. The Skills DB contains all consultants’ skills and CVs and the Retain

system contains all information about availability and occupation level. The two systems are

connected and share some data.

Page 54: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

44

Due to the sensitive and valuable information that exists in the systems the question about if- and how

to deal with connections to external applications such as DreamTeam have been declined temporarily.

To solve the problem a pilot database was developed (Chapter 4: Architecture). The database contains

approximately 100 consultants and information about name, title, phone, email, availability,

summary, and tags (competence key words). To make data dynamic a web client is under

development where users can update all their personal information to (outside the scope of this

master thesis). Since the web client is currently developed most of the data remain static. The

availability data is imported from a excel sheet fetched and updated from the retain system every

Friday.

6.9 Security

Every mobile phone has a unique identifier, an IMEI number, received by entering *#06# into the

keypad on most phones. This identifier is used as a unique device identifier in the database and to use

DreamTeam the device ID needs to be registered in the database. Users can have more than one device

and all combinations of users with specific devices have another identifier in the database called “id”.

Since no data is stored on the device the risk of losing valuable corporate information decreases. If a

device is lost or stolen it is enough to remove that device IMEI number from the database to obtain

security and prevent unauthorized people to gain access to confidential corporate information.

6.10 Environment

The Android SDK provides the tools and APIs necessary to begin developing applications on the

Android platform using the Java programming language. Android and Eclipse provide The Android

Development Tools (ADT) plugin for Eclipse which was used in the DreamTeam code

implementation. This adds powerful extensions to the Eclipse integrated development environment

and allows creating and debugging Android applications easier and faster. It also includes Android

Virtual Device (AVD), a device configuration for the built in emulator that model real world devices.

The emulator was used to a great extent during the implementation phase and was replaced by a real

device, a Google Nexus One mobile, in the final implementation stage.

Page 55: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

45

7. DreamTeam walk-through

This chapter includes a walk-through of the final DreamTeam application. Teams are created in

beforehand to express a realistic look of the application.

7.1 Start screen

This view is shown as start screen of the application when no buttons are

pressed.

7.2 Main Menu

This view shows the start screen when the hardware MENU button is

pressed and the main menu is active. The menu shows four options, three

main activities and one activity specific option: Add Team. The activity

specific menu option is always placed at the top right corner of the menu.

Page 56: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

46

7.3 Add Team

The first view shows the dialog box

that appears when the “Add Team”

button is pressed on the main menu

(see previous view: Main menu). The

second view shows the updated team

list.

7.4 Add Team Members

The first view shows the newly added

team that is empty when the main menu

button is pressed. The second view

shows the search screen that appears

after the “Add Team Member” button is

pressed.

Page 57: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

47

7.5 Search

The first view shows when text is

inserted in the search bar. The

second view shows the search

result for the tag “telecom”, 28 hits.

7.6 Long Press

The first view shows the context

menu that appears when

performing long press on a list item

in the search result list. The second

view shows the updated team

member list view when a person is

added to the team.

Page 58: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

48

7.7 Person View

This view shows the consultants’ personal details, including name, title,

availability, summary, and tags. The two buttons in middle of the

screen enables the options to call or email the consultant. The button in

the top right corner is described next.

7.8 Add from Person View

This view shows the context menu that appears when pressing the add

button on the person view screen (see previous view: Person View).

Depending on from where the Person View is reached, different

options appear in the menu. If the person is already in a team only the

“Favorites” option appear. Otherwise, as seen in the picture, all teams

appear as options in the list.

Page 59: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

49

7.9 Remove

The first view shows the dialog that

appears when long pressing a team

member in the team member list. The

second view shows the same scenario

but when long pressing a team in the

team list.

7.10 Indicators

These views show some of the indicators used.

Page 60: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

50

8. Tests

The testing part was divided in two stages, expert- and Monkey testing. In addition to this unit tests

were performed throughout the whole implementation phase. During the expert testing the

application was tested by experienced mobile application developers and testers, and during the latter

testing part the application was subject to extensive monkey testing.

8.1 Expert Testing

During the expert testing phase, three experienced mobile application developers and one mobile

application tester from Capgemini tested the application. The tests were performed with focus on

finding bugs and errors and to detect all kinds of possible issues with the Android version of

DreamTeam. The expert testing was performed during the implementation phase combined with the

unit tests and, more exhaustive, immediately after. This setup was essential for the final result.

One important tool used during this phase was a “logcat”- tool application from Android Market

called “aLogCat”. The logcat is provided by the Android logging system and is a mechanism for

collecting and viewing system debug output. Logs from various applications and portions of the

system are collected in a series of circular buffers, which then can be viewed and filtered by the logcat

command. The tag of a log message is a short string indicating the system component from which the

message originates (Android Developers u.d.). The “aLogCat” application enables the logcat on the

device and error logs for specific bugs could be identified immediately and reported via email.

Some examples of errors and bugs that were identified in the expert testing phase and fixed before the

usability evaluation part:

- Problems regarding frequently switching between disabled- and enabled network connection.

- Problems regarding horizontal and vertical state.

- Problems regarding incorrect thread handling.

- Inconsequent menu structure.

- Problems regarding unhandled Exceptions.

Page 61: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

51

8.2 Monkey

The Monkey is a program that can be run on the emulator or device and generate pseudo-random

streams of user events such as clicks, touches, or gestures, as well as a number of system-level events.

Monkey can be used to stress-test applications, in a random yet repeatable manner. The Android

version of DreamTeam was launched with 1000 - 10000 pseudo-random events to force the application

to crash.

Page 62: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

52

9. Usability Testing- and Evaluation

To plan what type of evaluation techniques and models to be used for the usability evaluation the

DECIDE framework described in the theory part was used. The checklist of six items presented in the

theory was used to define appropriate evaluation techniques for the Android version of DreamTeam

and is applied below:

Determine the goals: The high-level goals of the usability evaluation are to identify possible usability

issues and gather valuable feedback from users regarding how they understand the application.

Explore the questions: In order to make goals operational the main part of the questions must be

formulated as open questions so users give detailed answers instead of e.g. yes or no answers. In this

context it is important to limit the amount of questions, otherwise it is possible that users do not

answer them detailed enough due to lack of interest. Closed questions will be used to identify user

profiles, Android knowledge and to rate the usability. Open questions will be used for more detailed

comments about the usability impression.

Choose the evaluation approach and methods: Since the participants will be spread across the company at

different locations and have various time frames it is preferable to select a flexible evaluation

technique regarding time and location. According to this, field studies including a web-based

questionnaire are suitable. The application will be handed out to a test group of experienced Android

users within Capgemini. The evaluation will be explained further in the next section (8.1: Performing

the Test). To ease the development and guarantee easy access to the questionnaire Google

documents15 will be used. This tool enables a web-based questionnaire to be created and accessed

from arbitrary web browsers. Besides that it gathers the answers and organise them in a perspicuous

spreadsheet.

Identify the practical issues: One major constraint is that all participants must have their own testing

device since, so far, there are no existing testing phones available through the company. As

mentioned, it is important that participants use Android phones in their daily work since the

application is to be used by experienced users. Regarding the questionnaire there will be no practical

issues with equipment since all participants have a Capgemini corporate computer. The questionnaire

will be tested by two persons before it is handed out to the whole group. One practical issue worth

mentioning is that even if participants contribute voluntarily it is always a risk that some people

would not complete the questionnaire due to lack of time or other unexpected factors.

15 Google Documents: Google Docs is free, Web-based word processor, spreadsheet, presentation, form, and data storage service offered by Google (Wikipedia: Google Docs u.d.).

Page 63: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

53

Decide how to deal with the ethical issues: The evaluation does not contain any critical information such

as people privacy information or sensitive data, consequently the level of caution will be relatively

low.

Evaluate, analyze, interpret, and present the data: The question part and the analyze part are closely

related to each other. The information gathered from the questionnaire will be analyzed and

presented and will serve as a source for the discussion part. The results of the final application will be

presented as a walkthrough with screen shots. The usability evaluation will be presented with

quantitative- and qualitative data.

Page 64: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

54

9.1 Performing the test

The application was sent to a test group containing 18 persons and 19 devices.

All participants in the test group had two similar attributes; they owned an Android mobile phone and

they contributed voluntarily. These two attributes where essential when forming the user group.

Android mobile owners: Since the final DreamTeam application will be used by employees in their

daily work it is likely that the target group are relatively experienced Android mobile phone users.

Therefore it was essential that the people in the user group had a phone that they used regularly.

Voluntary contribution: When choosing profile of the participants it was important that they were

motivated to perform the task completely. Several Android phones owners were asked to participate

but only those who volunteered ended up in the final test group.

It was important to test on a wide range of devices and Android versions. This was well covered with

the devices in the user group. Phones and Android versions used in the usability testing phase are

described in the table below:

Manufacturer Phone model Android version Distribution

HTC Google Nexus One 2.2 3

HTC Hero 2.0 + 2.1 4

HTC Desire 2.2 5

HTC Tattoo 1.6 2

Sony Ericsson X10 2.1 2

Sony Ericsson X10 mini pro 2.1 2

Samsung Galaxy S 2.2 1

Total: 3 Total: 7 Total: 4 Total: 19

TABLE 4: RECORD OF TEST DEVICES

Page 65: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

55

The participants were told to imagine using DreamTeam in their daily work and evaluate it according

to that in the web-based questionnaire. The questionnaire is available (in Swedish) in Appendix A.

Users were asked to test the application by performing some specific tasks described below:

- Add 3 teams

- Add consultants to these teams

- Search for consultants by competence

- Search for consultants by name

- Add consultants to your favorites

To capture remaining bugs and errors the test group were told to report all types of issues that might

occur, not only regarding usability defects, and if finding errors report them back. As an extra

supplement interested users had the opportunity to use aLogCat as reporting tool but this was

optional since it requires extended knowledge about Android development that is not expected from

the average user.

Page 66: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

56

10. Usability Evaluation Results

Of the 19 people who announced their interest to contribute 15 participated and finished the

evaluation entirely. The next sections display the result in two different groups, quantitative- and

qualitative results.

10.1 Quantitative results

The quantitative results are based on the closed questions in the survey. The closed questions were

used mainly to identify the equipment and users. In spite of some decrease of participant in the group

the wide range of test devices remained intact. The table below shows the resulting device- and

Android version distribution.

Manufacturer Phone model Android version Distribution

HTC Google Nexus One 2.2 2 (3)

HTC Hero 2.0 + 2.1 4 (4)

HTC Desire 2.2 3 (5)

HTC Tattoo 1.6 2 (2)

Sony Ericsson X10i 2.1 1 (2)

Sony Ericsson X10 mini pro 2.1 2 (2)

Samsung Galaxy S 2.2 1 (1)

Total: 3 Total: 7 Total: 4 Total: 15 (19)

TABLE 5: RESULTING DEVICE- AND ANDROID VERSION DISTRIBUTION

Page 67: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

57

10. 1.1 Android Experience distribution

Of 15 participants, one was not a daily user. When investigating the answers closer this participant

turned out to be the one that tested DreamTeam on two devices. The participant was a daily user of

one of the two devices. The pie chart below show the result:

FIGURE 14: DAILY ANDROID USERS VS. NOT DAILY ANDROID USERS

Of 15 participants 13 considered themselves as experienced users.

FIGURE 15: EXPERIENCED ANDROID USERS DISTRIBUTION

7%

93%

Not daily user

Daily user

0

2

4

6

8

10

12

14

5 (Experienced)

4 3 2 1 (Beginner)

Page 68: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

58

10.1.2 Navigation

This section displays answers on question regarding the navigation in the application. Participants

were told to perform different actions (mentioned in the previous section (8.1. Performing the Test))

and the following diagrams reflect the participants usability expression regarding these actions. The

captions explain the actions performed.

FIGURE 16: ATT TEAM

FIGURE 17: REMOVE TEAM

8

6

1

0

0

0 2 4 6 8 10

Excellent (5)

4

3

2

(Poor) 1

Add Team

7

1

5

1

1

0 2 4 6 8

Excellent (5)

4

3

2

(Poor) 1

Remove Team

Page 69: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

59

FIGURE 18: ADD/SEARCH TEAM MEMBER

FIGURE 19: REMOVE TEAM MEMBER

FIGURE 20: VIEW PERSON

3

6

4

2

0

0 1 2 3 4 5 6 7

Excellent (5)

4

3

2

(Poor) 1

Add/Search Team Member

5

6

2

1

1

0 1 2 3 4 5 6 7

Excellent (5)

4

3

2

(Poor) 1

Remove Team Member

10

3

2

0

0

0 2 4 6 8 10 12

Excellent (5)

4

3

2

(Poor) 1

View Person

Page 70: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

60

10.2 Qualitative Results

The qualitative results are based on the open questions in the survey. The participants were told to

add their thoughts in comment fields about how things where perceived. This part of the survey

generated several concrete ideas and valuable input. A summary of the gathered information are

presented below and potential appropriate actions will be describes in the discussion chapter (Chapter

12: Discussion).

Installation

All participants except one found it easy to install the application and had no problems during the

installation process. After further investigation it turned out that the participant that encountered the

problem had technical problems with the phone.

UI

The overall impression of the UI was mostly positive while some participants thought it was a bit too

stiff and static and could have had more features. By contrast the participants that were positive

thought the UI was clean and simple and gave a stylistically pure impression and claimed that the

absence of features was an advantage.

Response time

Two participants thought that the response time was a bit slow but did not describe this as a critical

issue. Several participants mentioned they were bothered by the fact that it is not possible to navigate

back while an indication is active, e.g. when performing a search and results are fetched form the

database it is not possible to interact and users have to wait until the task is finished.

Navigation

Some of the participant found it hard to navigate back to the list of team members. The only way back

is the physical back button and sometimes deep down in the navigation flow and the way back to the

current team is many clicks away. This could be solved with a more visible button to navigate directly

to the current team.

No participants made any comments about the long press functionality but a few mentioned that they

found it hard to find the options for deleting a team or team member. Even if most people understood

how to delete teams or team members several desired improvements on this part. As with deleting,

some participants desired improvement when adding a team. Numerous participants fancied the

placement of the “Add to” button in the header and suggested a similar layout for the “Add Team”

functionality.

Page 71: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

61

11. Possible development of DreamTeam

By interviewing key persons from the sales- and staffing division about how they would like to use

DreamTeam in their everyday work this sections includes suggestions about how DreamTeam can be

improved and tailored to different roles within Capgemini.

The thoughts and ideas expressed in this chapter are based on interviews with the Capgemini

employees: Johan Ribbeklint, Account Management, and Anna Modigh, Staffing.

11.1 Sales

Johan thinks that the account management could make use of DreamTeam as a complement to

existing tools e.g. the Skills DB. A possible scenario could be when employees transport to and from

clients and need a quick tool to perform searches and then email relevant CV’s to speed up the work

process when arriving to the office. Mainly Johan would use DreamTeam as a tool in the sales dialog

with the client. This, he say, will likely increase confidence towards clients and demonstrate

Capgemini’s effectiveness in a liable way. While account management always communicates with

staffing when trying to find suitable consultants for new and existing projects the DreamTeam

application would decrease the workload for staffing.

To be a complete and widely used product Johan mentions these features to be included:

- It is essential that all consultants at Capgemini Sweden are searchable in the application and

that all data is accessible, otherwise current tools will be used instead.

- Enable ability to search for tags combined with availability and a time frame, e.g. “Architect”

+ “1th February” – 5th February” + “10%”.

- Be able to generate and email a complete CV in pdf-format (or similar) and also be able to

email CV’s related to a whole Team.

- Search for competences and generate a printable list of the people with these competences.

Page 72: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

62

11.2 Staffing

Anna thinks that DreamTeam could be used both as a tool “on-the-go” and a complement tool at the

office to speed up staffing employees’ daily work. The account management could make use of the

application if they are unable to contact staffing and are located at the client site with short of time and

no available internet connection for their laptops. She emphasize the importance to include as many

features as possible from existing systems into the application.

To be a complete and widely used product Anna mentions a number of key features to be included:

- Contain a basic reflection of Skills DB and Retain data. Including all skills and all text from the

CVs. It is important to enable “free text search” as they currently use this in the Skills DB.

- Search for tags combined with availability and a time frame or just a “from” date, e.g.

“Architect” + “from 1th February” + “10%”.

- Search for consultants in different units e.g. for all Sweden’s Capgemini consultants or just for

consultants related to Service Industries or to the Stockholm office.

- It must be clear in the search results what unit the consultant belongs to.

11.3 Conclusion

The set of possible features listed above implies that staffing and the account management have

similar requirements. If DreamTeam gets the permission to communicate with Skills DB and Retain a

basic reflection could be implemented. Some of the other features mentioned are already implemented

in one of the other Accelerator applications called “FreeForce”. If integrating some of the features from

FreeForce into DreamTeam and add the reflection from Skills DB and Retain and add the possibility to

print and email CVs, DreamTeam would suit both staffing and the account management.

Page 73: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

63

12. Discussion

The discussion is divided in two sections; the first one suggests possible usability improvements for

the Android version of DreamTeam with origin from the usability evaluation and the second part

discusses the overall implementation of DreamTeam and the processes around it.

12.1 DreamTeam Usability

The usability evaluation assembled a valuable overview about the users’ impression regarding

functionality and usability design. Most of the suggestions were related to pure usability issues and

are easily fixed while two issues relate to technical implementation changes. Firstly, several

participants mentioned they were bothered by the inability to interact with the application when

indicators were active. This is a limitation and will be put on the list of suggested adjustments.

Secondly, some participants experienced the application to be slow when the internet connection was

poor. This is because all information is fetched from the database in real-time. To adjust this the whole

procedure has to be modified and reworked. One option is to cache data on the device and make

updates to the database at specific times. This would e.g. shorten the response time when pressing the

back button or updating views.

With its origin in the usability evaluation some changes are suggested for the Android version of

DreamTeam. Several of the issues and suggested improvements gathered from the evaluation were

already discussed during the implementation phase but some suggestions were valuable insights.

After consideration the following improvements were established as possible improvement:

- Improve response time by rework the procedure of if-and-how to handle data on the device.

- Improve the design of email and phone buttons in the Person view to pertain a more “active”

look.

- Improve the behaviour of the indicators and make it possible to interact even when indicators

are active

- Add a warning before deleting a team to reduce the risk of deleting a team by mistake.

- When a new team is created, move the active view to the created team’s member list.

Page 74: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

64

- Improve the visibility of how to add- and delete a team or a team member.

- Improve the look of the “Add-to” list in the person view to a more consequent look with all

teams displayed regardless of how the view was reached. If reached from a current team, this

team will be highlighted.

- Change how to add a favorite from a list option to a button with a star symbol.

- Add information to the list items in the team member list that now only includes the name of

the consultant. Suggested additional information can be availability and title.

12.2 DreamTeam Process

The thoughts expressed in this section have its origin in the writer’s reflections during the projects and

an interview with Jonas Winqvist that is the main sponsor of the project at Capgemini.

DreamTeam, together with the other applications in Accelerator, is indeed a step forward for

Capgemini concerning mobile applications. It is important and valuable for a large IT company to be

one of the main players on the market delivering mobile enterprise applications.

The idea and implementation of DreamTeam are promising and its functionality can improve the

staffing of projects and reduce duplication of work, but the current formation is still too static and

need some improvements to reach its full potential. The Android- and iPhone implementations of

DreamTeam need some technical and usability improvements to meet the desired requirements but

these are small fixes that are relatively easily made. A more essential concern is the processes around

DreamTeam and the data in the underlying systems. Below are three things mentioned that need

consideration:

No connection to the Capgemini internal systems; skills DB and Retain:

Since connections with the internal Capgemini systems are rejected due to security reasons for the

moment all new data must be inserted in the new system that is still under construction. Even if the

new tool was finished it takes time to implement a new work flow process for this. Consultants at

Capgemini are used to update their CV in the Skills DB and the new system implies double workload.

Due to this, data remain static in the system. See figure 21 for an illustration:

Page 75: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

65

Make use of information from DreamTeam:

To get the most out of DreamTeam several components must work. One of the components is to make

use of the information DreamTeam generates. The figure below illustrates the desired work flow:

FIGUR 21: DREAMTEAM DATABASE CONNECTIONS

FIGURE 22: DESIRED DREAMTEAM WORKFLOW

Page 76: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

66

Consultants insert their CV and skills in the system. Users of the application, such as a account

manager or management, make tag searches in the application. The tags searched are saved and later

used when staffing compile statistics of most popular searches each month. The statistics are then

used to recognize trends, e.g. 100 searches for “Java” indicates that there is a call for this particular

skill. Management communicates this to their consultants and asks them to emphasize this in their

CV’s if they hold the skill and if not they can educate suitable consultants with the new skill.

Consultants update their CV’s with the required skills and the circle is closed.

In the current version search-tags are not saved and no statistics can be generated and thereby no

trends can be identified. There exist no repetitive process between managers/staffing and consultants

to coordinate that they have an accurate view of the consultant’s skills and CV.

Add and remove users

One issue that must be handled is how to communicate when to add or remove consultants from the

system. Since there is no functioning work flow processes in the origination for DreamTeam and no

connections to internal systems the Accelerator developed database does not get informed when

consultants quit or are recruited. To obtain a stable system this must be improved.

Updated retain data

The update and import of retain data that is fetched repeatedly from the internal Retain system every

Friday must work properly. It has been problems with the update and test users of the system have

mentioned this as a problem. To make users trust the system it is important that data is updated and

correct.

12.3 Conclusion

In conclusion, DreamTeam is part of a really exciting project with great prospects that still has some

components that need improvement, mainly regarding surrounding work methods but also

technically. It would be valuable for the Accelerator project and Capgemini to accelerate the project

and utilise its full potential within the foreseeable future. The enterprise smartphone application

industry is growing rapidly and the Accelerator framework is an innovative concept that Capgemini

can use to help clients to implement a new and more effective way to work and cooperate.

Page 77: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

67

13. References

About.com. http://cellphones.about.com/od/glossary/g/define_android.htm (accessed

November 11, 2010).

Android Developers. http://developer.android.com (accessed November 11, 2010).

Antonopoulos, Nick, and Lee Gillam. Cloud Computing: Principles, Systems and

Applications. Springer, 2010.

Bakshi, Meenu, Sachin Khanna, and Rani Mishra. Working with Java Virtual Machine.

SkillSoft Press, 2003.

Bertini, Enrico, Silvia Gabrielli, and Stephen Kimani. “Appropriating and Assessing

Heuristics for Mobile Computing.” AVI ’06, 23–26 May 2006: 119-126.

Billi, Marco, et al. “A unified methodology for the evaluation of accessibility and usability

of mobile applications.” Univ Access Inf Soc, September 2010: 337–356.

Capgemini. Capgemini Official Website. www.capgemini.com (accessed December 5,

2010).

DeBeasi, Paul. Best practices for enterprise mobile device and smartphone security.

http://searchmobilecomputing.techtarget.com/tip/Best-practices-for-enterprise-

mobile-device-and-smartphone-security (accessed December 28, 2010).

Distefano, Alessandro, Antonio Grillo, Alessandro Lentini, and Giuseppe F. Italiano.

“SecureMyDroid: Enforcing Security in the Moble Device Lifecycle.” CSIIRW '10

Proceedings of the Sixth Annual Workshop on Cyber Security and Information Intelligence

Research, 2010.

Elsenpeter, Robert, Anthony T. Velte, and Toby J. Velte. Cloud Computing: A Practical

Approach. McGraw-Hill/Osborne, 2010.

Fielding, Roy. Architectural Styles and the Design of Network-based Software

Architectures. Dissertation, Irvine: University of California, Irvine, 2000.

Forsberg, Christian. Software Architecture Document. Software Architecture Document,

Capgemini, 2010, 12.

Gartner. March 2010. http://www.gartner.com/it/page.jsp?id=1421013 (accessed

November 11, 2010).

Page 78: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

68

Goncalves, Antonio. Beginning Java EE 6 with Glassfish 3: From Novice to Professional,

Second Edition. Apress, 2010.

Gregg, Michael. Security Concerns for Cloud Computing. Global Knowledge Training LLC,

2010, 7.

Hashimi, Sayed Y., Dave MacLean, and Satya Komatineni. Pro Android 2. Aspress, 2010.

Hentzen, Whil. MySQL Client-Server Application with Visual FoxPro. Hentzenwerke

Publishing, 2007.

Learn REST: A Tutorial. February 2008. http://rest.elkstein.org/2008/02/rest-

architecture-components.html (accessed November 10, 2010).

Meier, Reto. Professional Android 2 Application Development. Wrox Press, 2010.

Murphy, Mark. Beginning Android 2. Aspress, 2010.

Nielsen, Jakob, and L Robert Mack. Heuristic Evaluation: Usability Inspection Methods.

New York: John Wiley & Sons Ltd., 1994.

Norman, A. Donald. The Design of everyday things (2002 edition). New York: Basic Books,

2002.

Oliveira, Marco, Joel J.P.C. Rodrigues, and Binod Vaidya. “New Trends on

UbiquitousMobileMultimedia Applications.” EURASIP Journal onWireless

Communications and Networking, 1 July 2010: 11.

PCWorld: Brief history of smartphones. 18 June 2010.

http://www.pcworld.com/article/199243/a_brief_history_of_smartphones.html

(accessed November 11, 2010).

Preece, Jenny, Yvonne Rogers, and Helen Sharp. Interaction Design; Beyond human-

computer interaction, 2nd Edition. John Wiley & Sons Ltd, 2007.

Samisa, Abeysinghe. RESTful PHP Web Services: Learn the Basic Architectural Concepts

and Steps Through Examples of Consuming and Creating RESTful Web Services in PHP.

Packt Publishing, 2008.

Scofield, Ben. Practical REST on Rails 2 Projects. Apress, 2008.

Tudor, Ben, and Christy Pettey. Gartner Says Worldwide Mobile Phone Sales Grew 35

Percent in Third Quarter 2010; Smartphone Sales Increased 96 Percent. 10 November

2010. http://www.gartner.com/it/page.jsp?id=1466313 (accessed December 28, 2010).

Wikipedia: CPU. http://en.wikipedia.org/wiki/Central_processing_unit (accessed

January 20, 2011).

Page 79: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

69

Wikipedia: Debugging. http://en.wikipedia.org/wiki/Debugging (accessed January 20,

2011).

Wikipedia: Google Apps. http://en.wikipedia.org/wiki/Google_Apps (accessed January

20, 2011).

Wikipedia: Google Docs. http://en.wikipedia.org/wiki/Google_Docs (accessed January

30, 2011).

Wikipedia: iOS(Apple). http://en.wikipedia.org/wiki/IOS_%28Apple%29 (accessed

January 20, 2011).

Wikipedia:Android market. http://en.wikipedia.org/wiki/Android_Market (accessed

January 20, 2011).

Wikipedia:API. http://en.wikipedia.org/wiki/Application_programming_interface

(accessed November 12, 2010).

Wikipedia:API. http://en.wikipedia.org/wiki/Application_programming_interface

(accessed January 20, 2011).

Wikipedia:App Store. http://en.wikipedia.org/wiki/App_Store (accessed January 20,

2011).

Wikipedia:Communications protocol.

http://en.wikipedia.org/wiki/Protocol_%28computing%29 (accessed November 11,

2010).

Wikipedia:CSS. http://en.wikipedia.org/wiki/Cascading_Style_Sheets (accessed January

20, 2011).

Wikipedia:HTML. http://en.wikipedia.org/wiki/HTML (accessed November 10, 2010).

Wikipedia:HTML5. http://sv.wikipedia.org/wiki/HTML5 (accessed January 20, 2011).

Wikipedia:HTTP. http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol (accessed

November 11, 2010).

Wikipedia:JSON. http://en.wikipedia.org/wiki/JSON (accessed January 20, 2011).

Wikipedia:JVM. http://en.wikipedia.org/wiki/Java_Virtual_Machine.

Wikipedia:Parsing. http://en.wikipedia.org/wiki/Parsing#Parser (accessed January 20,

2011).

Wikipedia:Protocol. http://en.wikipedia.org/wiki/Communications_protocol (accessed

February 14, 2011).

Page 80: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

70

Wikipedia:REST. http://en.wikipedia.org/wiki/Representational_State_Transfer

(accessed November 10, 2010).

Wikipedia:Smartphones. http://en.wikipedia.org/wiki/Smartphones (accessed

November 11, 2010).

Wikipedia:URI. http://en.wikipedia.org/wiki/Uniform_Resource_Identifier (accessed

November 10, 2010).

Page 81: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

71

APPENDIX: A

Usability Evaluation of Android version of DreamTeam

(performed in Swedish)

Svara på frågorna nedan efter du testat appen.Fyll gärna i fritextfälten där du har

möjlighet att beskriver mer utförligt hur du uppfattade användarupplevelsen.

* Required

Ditt namn: *

Vilken typ av telefon har du testat appen på? *

Använder du en Androidtelefon dagligen? *

Ja

Nej

Other:

Fyll i på skalan nedan hur pass erfaren Androidanvändare du är: *

1 2 3 4 5

Page 82: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

72

Oerfaren (aldrig

använt Android innan) Erfaren (Använt en Androidtelefon

dagligen i över 2 månader)

Hur installerade du appen på din telefon? *

Hur upplevde du installationen av appen på din telefon? Beskriv om det var lätt eller om

du upplevde det som krångligt. *

Hur upplevde du navigeringen i appen? * 1 är sämst, 5 är bäst

1 2 3 4 5

Lägga till Team

Ta bort Team

Lägga till / söka

konsult

Ta bort konsult

Se

Page 83: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

73

1 2 3 4 5

konsultinfomation

Lägg gärna till en kommentar angeånde hur du uppfattade navigeringen:

Fick du appen att krascha? Vad gjorde du då? *

Vad är ditt helhetsintryck av appen: *

Page 84: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

74

Nämn gärna några förbättringspunkter:

Tänk att du ska använda appen i ditt arbete dagligen, är det någon funktion du saknar?

TACK FÖR DIN MEDVERKAN! Eventuella övriga kommentarer kan lämnas nedan:

Submit

Page 85: Improvements of Capgemini’s Internal Staffing Process ...kiosk.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rap... · Title: Improvements of Capgemini’s internal staffing

TRITA-CSC-E 2011:039 ISRN-KTH/CSC/E--11/039-SE

ISSN-1653-5715

www.kth.se