Leading an offshore team

From apppm
(Difference between revisions)
Jump to: navigation, search
Line 14: Line 14:
  
  
==Creating, editing and using templates==
+
=='''Challenge'''==
You start a new template in the same way you would [[Wikipedia:Starting an article|start an article page]]. The only difference is that its title must start with <code>Template:</code>.
+
The scope the project was to develop an EDMS system for LZ, customized to fit their specific needs. The main perspective of the article was the challenges faced by the project manager leading an offshore team.
 +
As main contractor ITX had the overall responsibility for the delivery of the final solution. Using a subcontractor IT-sub and offshore resources to customize their standard solution, conditions of successful deliverables was extensive and difficult.
 +
In order to understand LZ’s business needs and usage of the system which was critical for successful solution, ITX had to use Danish developers to make a full analysis, and translate these into a requirement document for the offshore developers. Additionally it was important that the developers from ITX had an understanding of how IT-sub’s EDMS system was built.
 +
As cost saving was a necessity for the project to run, ITX had to use their offshore resources. Thus the real challenge was to incorporate the offshore team into the project. The standard EDMS system was delivered by IT-sub and ITX now had the task to make the customizations with the usage of the offshore team.
 +
A difficult question to be answered is how much cost offshore resources can save the company contra using more expensive onshore resources, without affecting the efficiency of the work delivered. Obstacles to overcome includes such as culture, working processes, language barriers, and being in different time zones all contributes to the fact that this was no easy task.
  
Once you have made the template, for example ''Template:templatename'', you can add <code><nowiki>{{</nowiki>''templatename''<nowiki>}}</nowiki></code> to the pages you want to use it on. Every page using this template uses the same [[boilerplate (text)|boilerplate]] text, each time a user visits it. When the template is updated, all pages containing the template tag are automatically updated.
+
==='''Solution'''===
 +
'''Fundamentals for leading the team online'''
 +
In order to establish a basis for accomplishing the goal of having a Danish client with the usage of offshore resources which was agreed with the client, a structured plan and important fundamentals for leading the team online had to be completed.  
 +
Documentation of the projects deliverables and issues was a key element for tracking. The Issue and Project tracking software JIRA was used by everyone involved. This way of tracking was ideal since both client, subcontractor, and offshore was all connected to JIRA. That included email alerts to relevant persons if comments or other things were assigned related to the specific task or issue.  
 +
The project manager had the responsibility for the offshore team, resulting in translation of task and issues. In order to prepare for this, every task and issues was translated from Danish to English.
 +
The success criteria’s of leading this project was considered and the following points were essential to acknowledge and understand:
  
Alternatively, you can add <code><nowiki>{{</nowiki>subst:''templatename''<nowiki>}}</nowiki></code> to the pages you want to use the boilerplate text on. The system fetches a one-time copy of the template text, and '''[[Wikipedia:Substitution|substitutes]]''' it into the page, in place of the template tag. If anyone edits the template afterwards, pages that used the <code>subst:</code> keyword do '''not update'''. Sometimes that is what you want.
+
'''1.Knowing your team:''' It is not only important to know how to spell the name of a person, but also how you pronounce it. Though it might sound insignificant, but it is certainly important to address people correctly by their name. In projects, I have encouraged team members onshore and offshore to talk off topics and see each other visually through Skype or conference calls, which helped to increase the connection between team members. This helps to attach a face to the person who sends mails and messages or with whom you speak through the phone.
  
If the template you want to edit looks like <code><nowiki>{{foo}}</nowiki></code>, you would go to [[Template:foo]] to edit it. To get there, type "Template:foo" in the search box (see [[Help:Searching|search]]), or make a wikilink like <code><nowiki>[[Template:foo]]</nowiki></code> somewhere, such as in the [[{{ns:4}}:sandbox|sandbox]], and click on it.
+
'''2.Language barriers:''' Working with a team at a remote location implicates that your communication skills have to be solid and precise in order for the offshore team to understand you and vice-versa. It is also important to take into account the level of English working language with offshore team members. In Denmark, at most clients, it is common to have requirements, specifications and functional designs in Danish. In the same context, test scenarios and scripts will be prepared by offshore teams in English and hence review by the business teams need to be planned with people who can read and write English. It is highly recommended to include having a Danish speaking onshore person in your resource planning available to assist with the understanding of the scripts prepared to the business team. This is only to have a liaison in place to explain the right interpretation due to different language bases.
  
Once you are there, just click "edit" or "edit this page" and edit it in the same way you would any other page. You can add anything you would add to a normal page, including text, images and other templates. Please be aware that your edit might affect many pages, so be cautious.
 
  
===Parameters===
+
'''3.Plan pragmatic Onshore-Offshore:''' Project Managers are often captivated in the cost reduction modes and find it easy to use offshore component as the fast way to achieve that. Instead of merely looking at the offshore cost that you would like to achieve in your project to reach a target cost reduction, look at what is practically possible to offshore keeping the constraints of accessibility of the systems, complexity of the business processes, etc.  
Templates can have parameters. Instead of just the template name, like <code><nowiki>{{foo}}</nowiki></code>, a template with parameters will have additional text, separated by [[vertical bar]]s (|), e.g. <code><nowiki>{{foo|July|lc=yes}}</nowiki></code>. Here <code>July</code> is the value of the first unnamed parameter; <code>yes</code> is the value of the named parameter <code>lc</code>. Writing the template page for a template with parameters is more complicated than for a template with no parameters. See [[Help:Template]].
+
Expertise can be necessary to have onshore and having a complete offshore team will eliminate this opportunity.
  
== Template link template==
+
'''4.Managing your deliverables and issues with Document Management:''' Work on a set of guidelines for document management development, test scenarios, test execution and results documentation. Using a document management tool makes the task easier. Keep in mind the issues related to accessibility of these systems from different locations and the effectiveness of them when making a choice. It is important to invest time into a good Configuration Management document for deliverables and issues due to the offshore location of the development team. Prepare and agree on the templates that will be used for the various deliverables.
The [[template:template link|'''template link''' template]] is a simple [[w:Macro (computer science)|macro]] [[m:Help:template|template]] used to display a template name as a link surrounded by braces, thus showing how the template name would be used in code. Its primary use is in instruction and documentation. A short example is that the code:
+
  
::<code><nowiki>{{tl|Example}}</nowiki></code>
 
:generates
 
::{{tl|Example}}
 
  
==FAQ==
+
'''Project method and Communication'''
;How can I find out how to use an existing template? : To see the documentation for the template whose name is "foo", go to "Template:foo".
+
To ensure agile development the scrum method was used. The PM and developing team would have daily scrum meetings. The scrum method allowed the project to be agile and flexible as not all demands was known and improvements and new ideas in the customization phase could be fulfilled. Including this method increased the flexibility and productivity and ensured:
;Can I use a template in more than one project? : No, if you want to use it on two different language Wikipedias, for example, you would need to create it twice.
+
; Are templates case-sensitive? : Yes, except usually the first letter.
+
; Can I add parameters? : Yes, see [[Help:Template]] for instructions.
+
; How many templates can I use in a page? : A lot, but it depends on how they work. (In older versions you could not use the ''same one'' more than 5 times). There is a limit on the number of template expansions allowed during the creation of a page. If the templates you put on the page use other templates when they are expanded, it is possible to exceed the limit. See [[WP:UNNEST]].
+
; I edited the template, so why didn't the page it is used on change? : Wikipedia and your computer both store ''[[Web cache|caches]]''&nbsp;– or saved copies&nbsp;– and don't always show you an updated page. First, try to [[WP:BYPASS|bypass your browser's cache]] by pressing ⌘R or Ctrl and F5. If that fails, you need to [[WP:PURGE|purge]] the page's cache (which can be done several different ways). Perhaps the easiest way to do this is by clicking '''edit''' on the page in which the template appears, and then clicking on '''Save page''' without having changed anything&nbsp;– there is no need to fill in the ''Summary'' field since there will not be any ''history'' of this as a change generated.
+
; Can I move a template to a new name? : Yes, this works in exactly the same way as normal [[Help:Moving a page|page moves]]. When a page called for inclusion is a redirect page, the redirect target is included instead.
+
; Can I use a template within a template? : Yes.
+
;How do I add a new template?: You start a new template in the same way you would start a normal page. The only difference is that its title must start with {{code|Template:}}. Don't forget to document it so that other editors can use it!
+
; Where is the manual for the programming language used to write templates?: The language inside templates is the same language as regular wiki markup, but template writers tend to use the more complex available functions such as #if: statements. See Wikipedia's [[Help:Template]], Wikimedia's [[mw:Help:Template]], and all of the "advanced functioning" help pages listed toward the bottom of [[mw:Help:Template#Links to other help pages]].
+
  
==Examples==
+
'''1.'''Flexible time plans
*[[w:en:Template:stub]]: an often used message (at English Wikipedia).
+
'''2.'''Flexible deadlines
<!-- *[[w:en:Template:europe]]: a navigational template -->
+
'''3.'''Frequent reviews
*[[w:en:Template:Biological classification]]: a template with parameters (at English Wikipedia).
+
'''4.'''Cooperation between development teams
*[[b:en:Template:GeneralChemTOC]]: a horizontal menu bar (at English [[Wikibooks]]).
+
'''5.'''Daily status of tasks and issues
*[[w:en:Template:Underwater work]]: a template as a simple table with a picture (at English Wikipedia).
+
  
== Wikipedia-specific help ==
+
This was a great success due to the fact that the client did not know all of their needs at the start of the project, and the agile project method made it possible to review business needs frequently.
*[[Help:Template]] (more details)
+
Working with an offshore team required high standards for communication and it was critical that communication was handled correctly. Even minor alterations in written language could influence the overall understanding. The project would operate with Skype, which has the capability of sending instant messages, voice and video calls. This made it possible to discuss tasks and issues in real time which was saving hours of emailing. Emails however was an important in order to notify project members when task and issues needed their assistance. Without communicating correctly problems would begin to stack up instead of being resolved. With the help of talking about complex topics, the rate of resolving these was significantly improved.
*[[m:Help:Templates]] (details from [[Wikimedia]])
+
*[[m:Help:Advanced templates]] (advanced details from Wikimedia)
+
*[[Wikipedia:Template namespace]] (the usual [[Wikipedia:Namespace|namespace]] for templates)
+
*[[Wikipedia:Transclusion]] (transcluding templates)
+
*[[Wikipedia:Substitution]] (substituting templates)
+
*[[Wikipedia:Template messages]] (categorised list of links to available templates)
+
  
{{Help navigation}}
+
'''Progression and completion of the project'''
{{Wikipedia technical help|collapsed}}
+
By having the fundamentals as mentioned previous the project would have the right framework to start-up the project.
[[Category:Wikipedia templates| ]]
+
IT-sub was delivering their standard EDMS system with minor modifications, and the onshore team from ITX would now write and document the requirements from the client in order to customize the system. These customizations would then be developed by the offshore team.
 +
In order for the offshore team to understand the client’s requirements and needs, the onshore team would with the help of conference, voice, video calls, hours of walk through and discussions deliver the tasks to the offshore team.
 +
Scrum method was important as this allowed for agile development which was key to complete this project. With daily sparring between onshore and offshore, the project secured that on going tasks was not going in the wrong direction. Problems and issues were likewise discussed on daily basis.
 +
ITX being able to have a direct contact with the offshore team constantly was an important factor in order to manage the project.  JIRA was correspondingly very important as everything was tracked and stored in the system. This allowed the PM to control tasks, issues and control and oversee which project member was responsible for each of them.
 +
The project was a proof that managing complex IT projects between different locations is indeed a demanding and difficult but not an impossible mission. It involves a considerably amount of previous work besides the normal practices involved in project management in general.
 +
 
 +
 
 +
=='''Implications'''==

Revision as of 20:59, 21 September 2015

This article is based on an IT project which was made in a combination of onshore and offshore resources. The main point is how the offshore team was managed online from an onshore location. The complications and practices used to manage this project will be described and explained. The role of managers is changing rapidly and becoming more complex these days. This can be attributed to the diversity of people in relations of culture, language, geography, knowledge and skills. With these realities in mind, leading a team within normal conditions is a challenging task. This will only become more complex and demanding leading teams that are located on the other side of the world. It is arguably a fast paced forward tendency that companies outsource either part or entire productions in order to improve factors such as efficiency and cost among others. You can be a great leader in person which requires a set of skills necessary to motivate and lead your team, but leading a team online is a different task.


Contents

Introduction

The project described in this article is an IT project, implementing an internal Electronic Document Management System (EDMS) for a company in Denmark within the legal industry. Due to anonymity company names will be disguised in this article and cover names will be used. The legal company will be mentioned as Legal-z (LZ), whereas the main solution was delivered by the Danish company referred as ITX. ITX was using a subcontractor named as IT-sub which specializes in EDMS solutions for many types of companies. IT-sub was used as a subcontractor due to their competencies within this area, and the system would have been too extensive for ITX to develop.

The system ordered by LZ required custom modifications to fit their specific needs and work processes, resulting in a comprehensive custom development of the standard system. To save cost ITX partially used on- and offshore resources with a long-term plan using only their offshore developers from Vietnam. The purpose of this article is to describe the challenges and experiences made by leading and offshore team from an onshore location. Furthermore the article will include tools and methods which can improve the rate of success leading a team virtually without meeting the persons face to face. As mentioned the competition is increasing day to day in modern days. Companies seek multiple ways to improve quality, efficiency and cost in order to stay competitive. Looking particularly at the cost, one way is to move resources from onshore to offshore. Labour work in the IT industry is far less expensive outside of Europe without decreasing the quality or skills of the employees.


Challenge

The scope the project was to develop an EDMS system for LZ, customized to fit their specific needs. The main perspective of the article was the challenges faced by the project manager leading an offshore team. As main contractor ITX had the overall responsibility for the delivery of the final solution. Using a subcontractor IT-sub and offshore resources to customize their standard solution, conditions of successful deliverables was extensive and difficult. In order to understand LZ’s business needs and usage of the system which was critical for successful solution, ITX had to use Danish developers to make a full analysis, and translate these into a requirement document for the offshore developers. Additionally it was important that the developers from ITX had an understanding of how IT-sub’s EDMS system was built. As cost saving was a necessity for the project to run, ITX had to use their offshore resources. Thus the real challenge was to incorporate the offshore team into the project. The standard EDMS system was delivered by IT-sub and ITX now had the task to make the customizations with the usage of the offshore team. A difficult question to be answered is how much cost offshore resources can save the company contra using more expensive onshore resources, without affecting the efficiency of the work delivered. Obstacles to overcome includes such as culture, working processes, language barriers, and being in different time zones all contributes to the fact that this was no easy task.

Solution

Fundamentals for leading the team online In order to establish a basis for accomplishing the goal of having a Danish client with the usage of offshore resources which was agreed with the client, a structured plan and important fundamentals for leading the team online had to be completed. Documentation of the projects deliverables and issues was a key element for tracking. The Issue and Project tracking software JIRA was used by everyone involved. This way of tracking was ideal since both client, subcontractor, and offshore was all connected to JIRA. That included email alerts to relevant persons if comments or other things were assigned related to the specific task or issue. The project manager had the responsibility for the offshore team, resulting in translation of task and issues. In order to prepare for this, every task and issues was translated from Danish to English. The success criteria’s of leading this project was considered and the following points were essential to acknowledge and understand:

1.Knowing your team: It is not only important to know how to spell the name of a person, but also how you pronounce it. Though it might sound insignificant, but it is certainly important to address people correctly by their name. In projects, I have encouraged team members onshore and offshore to talk off topics and see each other visually through Skype or conference calls, which helped to increase the connection between team members. This helps to attach a face to the person who sends mails and messages or with whom you speak through the phone.

2.Language barriers: Working with a team at a remote location implicates that your communication skills have to be solid and precise in order for the offshore team to understand you and vice-versa. It is also important to take into account the level of English working language with offshore team members. In Denmark, at most clients, it is common to have requirements, specifications and functional designs in Danish. In the same context, test scenarios and scripts will be prepared by offshore teams in English and hence review by the business teams need to be planned with people who can read and write English. It is highly recommended to include having a Danish speaking onshore person in your resource planning available to assist with the understanding of the scripts prepared to the business team. This is only to have a liaison in place to explain the right interpretation due to different language bases.


3.Plan pragmatic Onshore-Offshore: Project Managers are often captivated in the cost reduction modes and find it easy to use offshore component as the fast way to achieve that. Instead of merely looking at the offshore cost that you would like to achieve in your project to reach a target cost reduction, look at what is practically possible to offshore keeping the constraints of accessibility of the systems, complexity of the business processes, etc. Expertise can be necessary to have onshore and having a complete offshore team will eliminate this opportunity.

4.Managing your deliverables and issues with Document Management: Work on a set of guidelines for document management development, test scenarios, test execution and results documentation. Using a document management tool makes the task easier. Keep in mind the issues related to accessibility of these systems from different locations and the effectiveness of them when making a choice. It is important to invest time into a good Configuration Management document for deliverables and issues due to the offshore location of the development team. Prepare and agree on the templates that will be used for the various deliverables.


Project method and Communication To ensure agile development the scrum method was used. The PM and developing team would have daily scrum meetings. The scrum method allowed the project to be agile and flexible as not all demands was known and improvements and new ideas in the customization phase could be fulfilled. Including this method increased the flexibility and productivity and ensured:

1.Flexible time plans 2.Flexible deadlines 3.Frequent reviews 4.Cooperation between development teams 5.Daily status of tasks and issues

This was a great success due to the fact that the client did not know all of their needs at the start of the project, and the agile project method made it possible to review business needs frequently. Working with an offshore team required high standards for communication and it was critical that communication was handled correctly. Even minor alterations in written language could influence the overall understanding. The project would operate with Skype, which has the capability of sending instant messages, voice and video calls. This made it possible to discuss tasks and issues in real time which was saving hours of emailing. Emails however was an important in order to notify project members when task and issues needed their assistance. Without communicating correctly problems would begin to stack up instead of being resolved. With the help of talking about complex topics, the rate of resolving these was significantly improved.

Progression and completion of the project By having the fundamentals as mentioned previous the project would have the right framework to start-up the project. IT-sub was delivering their standard EDMS system with minor modifications, and the onshore team from ITX would now write and document the requirements from the client in order to customize the system. These customizations would then be developed by the offshore team. In order for the offshore team to understand the client’s requirements and needs, the onshore team would with the help of conference, voice, video calls, hours of walk through and discussions deliver the tasks to the offshore team. Scrum method was important as this allowed for agile development which was key to complete this project. With daily sparring between onshore and offshore, the project secured that on going tasks was not going in the wrong direction. Problems and issues were likewise discussed on daily basis. ITX being able to have a direct contact with the offshore team constantly was an important factor in order to manage the project. JIRA was correspondingly very important as everything was tracked and stored in the system. This allowed the PM to control tasks, issues and control and oversee which project member was responsible for each of them. The project was a proof that managing complex IT projects between different locations is indeed a demanding and difficult but not an impossible mission. It involves a considerably amount of previous work besides the normal practices involved in project management in general.


Implications

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox