Frequently Asked Questions
To ensure project success, it is important to first define a clear vision of the project. Determine if this project will be completed by your internal team, or if you will need to hire an external contractor to attain the skillset needed for your project. If you are unsure of the entirety of the scope, the company you decide to contract to develop your project should be able to assist with brainstorming, which will help you understand the feasibility of your ideas.
It is important to ensure that everyone on your project team - internal and external - have a clear understanding of the project scope. schedule and budget, so everyone is working toward the same goals. Typically, a project kickoff meeting to review these items with the entire team will ensure everyone has the same information. It is important to know who all stakeholders of your project are, and what influence they have over the final product, so you are able to capture their input early in the project, otherwise, you risk hearing their input at the end of the project when a change may cost exponentially more than it would at the beginning of the project.
Good communication with your project team is extremely important to run a successful project. Be sure to have regular discussions with your project team regarding status of the project, any issues that have arose and any roadblocks which may cause a change in schedule or budget. Each project will have different levels of communication needed, but ensure your team holds regular meetings to stay on track.
Understand the items in your environment which may cause a risk of change with your project plan. Prepare for the unexpected with contingency plans. Pay attention to areas of uncertainty, and look for ways to reduce the uncertainty. Risk can come from human factors, technology factors, environmental factors, legal factors, etc., so it is important to consider all stakeholders of the project, and understand the elements which could affect your project's success.
Yes, this practice is common on large projects which cover a wide array of required specialties. For example, your customer may choose you as their vendor because of a past relationship, but their project requires a competency which your group does not contain. This also may occur in projects which the entire project is not completely planned out during the initiation of the project, which could potentially create tasks previously unknown which require specialized competencies that your group does not require, but since the task was unknown at the early stages, the client could not pick a group which possesses those competencies. Another instance which could require outsourcing tasks on your clients project would be when you do not have enough available resources to complete the tasks in the timeframe the client needs them. In this case, you may supplement your own staff through outsourcing some tasks to expedite the progress.
You may want to consult the contract you have with your client prior to outsourcing tasks to ensure they do not have any restrictions against this practice.
Yes, you will want to have someone on your side acting as the Project Manager who will be engaged into the close communication, requirements definition, who will participate in status calls, be available to answer the questions, and review the achieved results.
Also, you will want someone acting as the Project Manager on the supplier's side development center who is familiar with the team, the development processes, who is responsible for project delivery, quality, timeframes and milestones, risks, reporting, negotiations and coordination of the supplier team. This person is responsible for the deliverables of the supplying company, and will hold the entire team responsible for meeting deadlines. It is important to have someone who can have influence over the team members' priorities to ensure they are able to attend to your project appropriately.
It’s recommended to milestones, discuss issues, completed tasks, current plans and plans for the nearest future during status calls to be aware that the project is moving forward within the scope, budget, quality and timeframes. Best practice is to engage in a status call once per week to be aware of project happenings, however, the frequency of these meetings will be determined by the project team, industry and level of complexity of the project. These status calls provide an environment to ensure all parties involved are on the same page in regard to expectations, so it is ideal to include the Project Manager and the individuals carrying out the current and immediate future tasks. Reports, demo, testing results, documentation, source code packages provided by supplier may be helpful to ensure the project is done properly.
Project Methodologies such as Agile have iterative stages of releases which work well for projects which may require feedback to be gathered at each stage to further refine the requirements of the project as a whole.
Additionally, it is recommended that customers perform validation prior to accepting the final project to ensure it has met the criteria of the project scope.
When outsourcing work, there is a number of items you will want to think about ahead of time to ensure you are able to have a meaningful conversation with the potential supplier.
First, you will want to have determined if the project scope is truly define, or if you actually have an idea that you'd like to find a vendor to help you brainstorm ideas on how to solve a particular problem. Identifying this will help dictate your initial discussion with a potential vendor. If you need help shaping your project, you will want to look for a vendor who has expertise in this area. If you have a clearly defined vision and scope of your project, portray that information to the potential vendor. Having a clearly defined scope that is understood by the vendor is the foundation of a successful project, and will help them with estimating and scheduling while preparing their proposal for you.
Next, determine if you need to have your project delivered by a particular date, and communicate this to the potential vendor. Knowing if you have a specific deadline will allow the potential vendor to let you know if they are able to deliver your project when needed. Hiding or leaving out this information can cause the vendor to plan your budget and schedule with their own schedule in mind. The schedule has a direct effect on the budget, because if the needed deadline is closer than ideal, the vendor may have to have employees work overtime, or include more employees on the project than anticipated, which raises the costs.
Additionally, you will want to know what you have available to spend. Many clients do not want to reveal to their contractors the available budget because they believe that will cause the contractor to write their estimate to that number instead of the true amount. However, if the vendor does not understand at least the range you are trying to stay within, it is difficult for them to propose a suitable solution for you. If they do not know your budget, they may propose a top-of-the-line solution which is out of your budget, and you would disregard them as a supplier. Being open and upfront with your vendor can create a conversation allowing them to match a solution within your budget.
If you have a project which was either left incomplete or was completed, but does not suit your needs, your project may need to be rescued, which may need to be done by a new team if you are not confident the original team can complete the work correctly.
Start your project rescue by conducting an interview with sponsors, team members, vendors, stakeholders and identify the unsatisfied needs left by this project. Once you have identified the new team, start by reviewing the project documentation, project plan and specification, and the results of your stakeholder interview. If new requirements have come out of this interview, they will need to be recorded so the new team is aware of the expected changes. You will want to discuss specifically how the current product does not satisfy your needs. It is important to identify the cause of the failure to help ensure the team understands how to fix the problem. Did the team not communicate properly? Were the requirements unclear? Was the team not focused? Did the team not have the competency to complete the tasks?
Asses and re-plan project, pay your attention to objectives, priorities and risks; clarify the mechanism of escalating the issues; determine if right resources are assigned for project and review their roles and responsibilities; determine if the project plan is up to date and critical issues and action items are assigned; define more efficient communications, re-plan existing millstones with a clear goal and feature list to demonstrate; align the teamwork and remove every possible barriers and obstacles.
After reviewing goals and expectation aim to deliver: focus on high priority features, keep the schedule and issues logged, discuss them regularly with a team, escalate critical issues as soon as they triggered, manage changes and risks, track project status and achievements on the regular basis having realistic attitude about goals to deliver desired results.
Talk to the project manager - they should have a good idea of the status of your project at all times. You may get information about the project progress via status calls, progress reports and demos. Best practice is to engage in a status call once per week to be aware of project happenings, however, the frequency of these meetings will be determined by the project team, industry and level of complexity of the project.
Though many companies are already utilizing offshore development, those who have not yet used it can be leery of the success it boasts to bring. Working with a team half of a world away can be very challenging, but it doesn't have to be if you pick the right partner and follow best practices. Below includes a number of best practices that can be used to help make offshore work for your company:
- Clear documentation: Clearly defining the scope and requirements are critical to ensure project success.
- Regular status meetings: Regular meetings with the team help ensure the team is continuously on the same page, as well as helps the customer stay updated on progress. Communicate often and effectively.
- Have a team liaison: Ensure the project manager of the development team is able to effectively communicate with the customer team as well as the development team.
- Set work time overlap: Ensure that your team has some overlap in work time as the customer team. This will help with coordinating meetings and increase communication effectiveness. The time slot does not need to be huge but should exist.
- Discuss security: Ensure the contracted company has clear standards on the security and privacy of your company and your project.
Working with an offshore development team may take getting used to, however, it can be done and it can be done well.
In many cases, a resource is assigned to a project full time to complete their tasks as quickly as possible. But in some cases, a resource may work only on the part of the project or may perform very specific tasks, in which case full-time resource loading is not required.
In the case that a project manager has team members who are not fully loaded by one project, the resource needs to clearly understand the priorities of their tasks.
When prioritizing here are a few tips to help:
- Take the time to estimate how long each task will take to help create the order to be completed.
- Determine due dates, and work on the tasks due soonest.
- Determine the tasks which are most urgent, if they do not get completed on time it will have a negative impact on others and/or the rest of the project.
- If there are many small tasks, and a few large tasks, it may be helpful to complete the small ones first so you know they will get completed, then try to tackle the larger tasks.
- If you do have too many tasks to complete everything on time, determine if some tasks can be delegated.
However, it's very important to build a cross-functional team, according to Agile practice, where one employee can easily substitute the other who may be on vacation, sick or has left the Company. The management of overlapping resources should be planned and tracked on a regular basis; for some shared resources who're working on multiple concurrent projects personal loading plan is required. It is important for Project Managers who have teams with multiple project responsibilities to meet on a regular basis to ensure priorities are clearly defined and agreed upon. If this does not happen, a project manager may reprioritize the team members' tasks for their own benefit, and harming the progress of other projects.
Many organizations avoid switching IT vendors simply to avoid any possible pains of switching to a new vendor, but if the incumbent vendor does not deliver to your satisfaction, it may be well worth your efforts to switch to a new vendor.
Consider the following when switching vendors:
- Review your contract with the incumbent vendor to ensure there is no type of penalty or legal repercussions which may arise.
- Pay attention which problems did you face while working with the previous vendor. Share your concerns with the new vendor.
- Knowledge Transfers need to be done effectively. Make sure your new vendor has everything they need to complete the work you are tasking them with - source files, environment permissions, etc. Discuss the project with the new vendor, and your goals moving forward. If you are switching vendors in the middle of a project, it may be more difficult to retrieve all files and knowledge you may need to supply to the new vendor simply because the incumbent vendor may not feel any motivation to help the new vendor succeed.
Microsoft Project is a very convenient business tool which allows you to track one or many projects on one file, that can help project managers and customers to make planning, assignment, resourcing, budget and project state decisions easily.
Within a Project schedule, you can set a baseline schedule, and track against this with the forecasted schedule, which can change as you progress through the project. This will show you how accurate your baseline is, and help you try to reduce schedule slippage by keeping your baseline top of mind.
Setting Dependencies of tasks within your schedule help to ensure that regardless of how your project start and finish may change, task dependencies must be abided by. Once set, Project will recognize these dependencies and consider them with any changes you make to the schedule.
Types of dependencies can be:
- Finish to Start: Task B can't start until Task A is finished.
- Start to Start: Task B can't start until Task A is started.
- Finish to Finish: Task B can't finish until Task A is finished.
- Start to Finish: Task B can't finish until Task A has Started.
Project also allows for creating What If scenarios, so you can easily modify your criteria to create alternative scenarios. This is especially handy when your client or boss asks for a changed set of dates in an instant.
With all of the information input into Project, it allows you to calculate the costs of your project based on hours and rates per hour, as well as designate the staff resources who are working on those projects. Through filtering, you can see which of your staff is working on a particular day to ensure you do not double-book them for that time period.
Microsoft Project has a great many of features allowing for individuals to utilize it to their own need set, which makes it a great scheduling software to track your projects with.
Yes, it is common practice to outsource activities which either need to be completed on-site or on your own servers. Before bringing a contractor on-site, you should confirm with your company's security department to ensure you are following the correct procedures for having an on-site contractor, as well as ensuring you have the proper NDA (non-disclosure agreements) in place to protect your company from leaked information the contractor learned on-site. The Security department should also be able to help you understand any background checks which may need to be completed prior to a contractor coming on-site at your company.
Keep in mind that if the contractor is traveling a great distance to work on-site at your company, you may be asked to cover the cost of travel (hotel, flights, per diem).
Depending on the work to be completed, an alternative to having a contractor come on-site could include providing them with a laptop from your company with appropriate access to your servers. This option could save you money on travel, if it is an option.
The outsourcing of the whole project or only a part of it depends on a number of different factors.
The common and the most frequent practice is to outsource the entire project development from one supplier. Having only one supplier manage your project creates easier and more efficient communication methods, but also ensure that all parts of the project will work well together i.e. for software, this ensures all developed parts are compatible. In addition, it allows you to create a growing relationship with that supplier.
But in some cases it’s recommended to divide a project into several parts. If your business has a specific domain, like the aerospace industry, than partially outsourcing is requested by customers to increase security of delivery. Alternatively, if your product for development requires more efforts and domain specialists than you can achieve by hiring a single supplier, it may be necessary to divide the work between multiple suppliers. The downfall of having multiple suppliers working on a single project is often the need to synchronize efforts between these suppliers, or one supplier waiting for delivery from the other supplier who is delayed. Often suppliers who are competitors in one area or another find it very difficult to collaborate on a single project for a customer, causing the customer to act at the liaison between them which increases the efforts of that customer. Although it can pose difficulties, hiring multiple vendors for a single project can be done.
There some advantages and disadvantages of software development outsourcing services. The customer will need to use their own judgment based on their project.
Advantages of outsourcing companies are the following:
- In the majority of cases, the cost to outsource is lower than hiring a team to perform your project. Offshore outsourcing tends to be available at less of a cost than domestic outsourcing.
- Outsourcing allows your company to concentrate your time and energy on your core domain activities. This frees up your attention to your customers and their needs.
- Outsourcing allows you to use the resources when you need them, yet also ensures you are not paying for employees when you do not need them.
Disadvantages of outsourcing companies are the following:
- You may need to educate the project team about your industry and customers to ensure they understand exactly what you need.
If you do not do your homework upfront, you may hire a company which is unreliable in keeping your confidentiality. Ensure the proper Non-disclosure agreements are in place before starting any project with an outsourcing company.
Outsourcing creates a dependence on your vendor. Ensure they have the same goals as you do, and they understand any consequence of not or under performing.
Poor communication, language and/or cultural problems may occur. These can occur in both domestic and offshore outsourcing situations - be sure to understand upfront what the communication plans are.
- Watch out for hidden costs. Try to understand how confident the estimated budget is that you are given.
In outsourcing to a contractor, it is most effective to evaluate that contractor just as you would a new employee. You'll want to meet with the customer to 'interview' them and learn how their company works and how they can fulfill your needs. It is ideal to be ready to discuss your project needs at that time so you can determine if their capabilities match your needs. This discussion should include information about your project scope needs as well as your budget and schedule needs. Ensure the contractor can live up to the expectations you have of them. Discussing your project scope with the potential contractor will help you understand if they do have the expertise needed to fulfill your needs. Keep an open mind that your intended ideas may not be the only way to complete your wanted end result, so listen to options that are available.
In determining who you should contract, it is important not to compare solely on price, but rather which contractor can provide the services and quality you are in need of. It is important to have a proper all-around fit with your contractor, which can reduce surprises later on.
After hiring your contractor, it is important to establish expectations with them. This discussion should review communication expectations (frequency and selected avenues), timing expectations, quality expectations, task ownership expectations, process expectations, support expectations and payment term expectations.
Contracting can be done either domestically or offshore. Offshore contracting is a growing trend because often it will bring the highest ROI for the customer due to possible lower cost of labor. If you are new to offshore contracting, it is important to research the company doing the contracting to understand their competencies, business models, time zone coverage, language and education level of the employees, and the strengths of the country their resources are in.
A Dedicated Team model is the practice of having dedicated team members to a project or program for the life of the project/program. These individuals work on this project/program and no other projects until they are formally released from it when the project is completed. This model is used when you need to access to one or more dedicated IT resources (Developers, Quality Engineers, Business Analysts and others) who will work exclusively for you on your project. You may assign any amount of projects or tasks to work on.
Using a Dedicated Team allows you to obtain controlled development process, resources, assignments, risks and results.
Dedicated resources may be used if the customer lacks an IT engineer team within their company, or needs to supplement their staff without permanently hiring into their own company. A Dedicated Team also created efficiencies when used with programs because it reduces the learning curve of engineers if they have already worked on previous projects with that customer.
Alternatively, to use Dedicated Teams, typically the customer must be able to provide a full workload for the extent of the agreement to ensure they will not be utilized for other projects, so this may not be an option for every customer.
Working across time zones can require some getting used to. Below are some tips to help adjust to this method of working to reduce any miscommunications or delays.
- You will want to work with your vendor to understand their work schedules before hiring them to ensure you will be able to work together effectively. According to the best practices, three to four hours a day for collaboration should be suffice to arrange all necessary meetings between you and your vendor.
- When outsourcing to a contractor in a different time zone than yourself, ask what their business hours are, and if they allow for any adjustments to these hours based on client needs. An adjusted schedule will help increase the overlap of business hours for your to interface with your team.
- Organize your day to align with the time zones you are working across. Try to schedule meetings with co-workers within your own time zone around the time you have an overlap with your vendor to ensure you are accessible, if needed.
- Watch your deadlines. Regardless if your vendor is in a time zone ahead of you or behind you, watch your deadlines, and try to create buffers when possible to alleviate any missed deadlines in the instance where additional communication is necessary close to your deadlines.
- Ensure that when scheduling meetings with your vendor of a different time zone, that you speak consistently in terms of one time zone, and state the time zone precisely, as to not mix up meeting times. Take advantage of the many online tools available to help schedule meetings across time zones.
- Document your instructions very clearly. Try to leave no room for miscommunication by stating exactly what you need. This will help reduce questions which may arise, delaying your vendor from working until they are able to speak with you.
Project Management methods can differ whether done with Onshore or Offshore teams.
OnshoreOnshore teams, whether at the same facility as the customer or not, reside in the same country as the customer company.
- Because they are in the same country, the language and time zones are very similar, which create certain efficiencies with communication. When using either an onshore or offshore model, it is important to declare the communication expectations before the project formally begins so it is clear what the team needs to be achieving.
- With onshore teams, the time zones will be similar, creating a larger window to work directly with the team for meetings, reviews, emails, etc.
OffshoreOffshore teams reside outside of the country as the customer, and are often used due to the cost savings they can provide due to differing labor costs and highly skilled labor in other countries.
- Because of the lower labor costs, many offshore teams can achieve a completed project much more quickly than an onshore team because they can use more resources to complete the tasks for the same amount of money.
- Because the time zones the typically much different than the customer's, the window for working with the team is much smaller. To mitigate this, some offshore companies have offices within certain countries they think their customers reside to ensure the customer can work with at least a team project manager during their work time. It is important to ask how team meetings will be coordinated to ensure that if the team needs to meet that there is a plan to make this happen.
- Cultural differences may occur when outsourcing to an offshore company and need to be managed on both sides. Doing this will require much communication and stating needs/assumptions/risks upfront so they can be dealt with.
- As with any team, onshore or offshore, ensure the deadlines and urgency of these deadlines are clear to the team, and that the customer is aware when progress can be seen so they understand what progress is being made.
Every outsourced project will incur the risk of some type, but many customers find further benefit from outsourcing than the risk involved with either onshore or offshore teams.
Communication in projects and project management is critical. The amount of communication and the tactics used to communicate will vary from project to project and from team to team. Depending on the project, you will want to choose the most suitable way of communication: receiving reports from the project manager or from each team member, participating in monthly, weekly or daily calls, communicating via E-mail, messengers, phone calls or through onsite representative.
Have an open and honest discussion with your team during your project kickoff to discuss the expectations around communications to ensure everyone is on the same page. As the 'customer' of the project, it is especially important to state your expectations of the level of communication to ensure you are involved in the process as much as you want to be. If you are not the customer, put yourself in that person's shoes and communicate how you think they want to be communicated with, if it is not stated upfront.
The electronic age has opened up many new avenues of communication, and it is important that you decide as a team what the preferred method of communication is. E-mail, video conferencing, teleconferencing, and instant messaging are all popular forms of communication.
Some examples of software are:
Skype: This tool is great for instant messaging, video conferencing, teleconferencing, and screen sharing.
WebEx: This tool is ideal for screen sharing presentations.
Microsoft Lync: This is another tool used for instant messaging, teleconferencing, video conferencing, and screen sharing.
The electronic age has also made online project management tools more popular. These tools help increase transparency and allow for a collaborative team space for work activities. The top 5 online project management software packages for 2014 according to TopTenReviews.com are:
Clarizen: Clarizen includes everything necessary for efficient, insightful multi-project portfolio management. It includes all modules that project managers use, such as budgeting, scheduling, time tracking, task management, reporting, request management, issue and bug management, and financials.Genius Project: This project management software can help managers and teams manage projects, resources, tasks, requests, time and expense tracking, budgets, documents, requests and issues, invoices and more.
AtTask: AtTask greatly reduces project failure rates by accounting for all of the little things that influence project delays, such as side work, ad-hoc work, overburdened resources and other distractions. By providing complete visibility and advanced collaboration tools, AtTask helps managers see everything happening within a project so that they can make wiser, better-informed planning decisions.
Project Insight: This online project management service provides full mobile access, supports traditional and proprietary methodologies, is Microsoft certified and includes free training. It is compatible with Sage accounting software as well as CRM and ERP solution
Although many project management tools exist today, we have listed a few tools below which are popularly used. These will give you a base list to start your research in determining which tools are best for your needs.
- For instant communication - WebEx, Skype, Google Talk, Microsoft Lync;
- For project and task tracking – Microsoft Project, JIRA, Rally, Redmine;
- For prototyping – Microsoft Visio, Axure RP, OmniGraffle;
- For bug tracking – JIRA, Bugzilla, Trac, Mantis.
When you are choosing an outsourcing company you are choosing a partner with who you will have a project or business, so the same requirements shall be apply to an outsourcing company as for any other partner company.
Look for the following items:
- Experience and Quality of Work
You want to be sure the company has experience in the skill set necessary to complete your project. A company who understands your industry will have a better understanding of some of the unique challenges you are facing, which can produce better results. Talk with the company about previous projects they've completed using the technologies your project requires, as well as projects they've completed in other areas of your industry. Ask to see some of the work produced to get an understanding of the quality of work they can deliver. Challenge them to explain how they ensure quality work is delivered. Likewise, you may want to ensure the company can accommodate any specific methodology or practices your company already uses.
- Company History, Size and Future
Ask about the company's history and their projected future. Do they have a stable history of producing results, or are they a new company looking to get their feet wet? Do they have a steady growth plan or is their future unclear? Do they have enough resources to give your project the attention you need or are they already at capacity with their current customers? Is the company so large that you will become just a number, and not receive enough individual attention?
What does the Communication Plan entail? How involved do they want you in the project? How often will you get status updates?
The methodology used in a given project depends on many factors such as the complexity of the project, the clarity of the project and requirements, the speed of which the project needs to be delivered, and type of contract required with the contractor. If you are unsure of the methodology you should use for your project to achieve your specific results, talk to your contractor, and they should be able to guide you in the right direction.
A critical factor of deciding on the project management methodology to be used is the clarity of the project requirements. If the requirements are clearly defined and set, a traditional method such as Waterfall is a standard choice. On the other hand, if it is expected that throughout the project, the requirements could change due to stakeholder feedback, exploring new technologies, or expected changes in business objectives, an Agile methodology may suit your needs better because it allows the project to easily adapt to changing needs, and helps reduce uncertainty iteration after iteration.
Many project management methodologies exist, each for its own purpose, and each with its own strengths and weaknesses. You may want to try our Project Management Methodology Decision tool as a starting point to understand what methodologies might fit your needs.
If you are the customer, it is important to identify who your project stakeholders are:
Who is affected by the project?
Who has influence over the project or outcome?
Who will use the outcomes of the project?
These stakeholders could be the company's management, suppliers, customers, employees, the community, etc. Knowing who these stakeholders are will help you determine how the project's product will be used. Knowing how the project's outcome will be used will then help you determine some of the requirements of the project. Alternatively, if you do not identify your stakeholders and understand how they will use the product, you may miss creating features which can determine the success or failure of the product.
When working with your vendor, it is important that you include a person who will act as the project manager from your side and communicate high level objectives and deadlines and has the authority to make strategic decisions, as well as someone who acts as the Technical Lead who understands the project objectives and can participate in technical reviews to ensure the product has been created in the manner which was expected. Both the Project Manager and the Technical Lead should be able to provide feedback with their stakeholders in mind.
On the side of your vendor, you can expect the team to consist of the project manager, engineering team, quality team, and possibly designers, business analysts and coordinators.
A Business Analyst is a qualified specialist who investigates your business domain and needs, documents and structures all known requirements and helps probe to understand all true requirements of your project. Often they will act as the mediator between the customer, subject matter experts and the developers to define great collaboration and reduce communication barriers.
A Business Analyst can help define the Business Requirements (what the project must achieve) and the Functional Requirements (what the product must do to fulfill the business requirements) which will help achieve the customer's goals in the most effective manner. In many cases, the Business Analyst will spend time at the customer's site to better understand the equipment they are working with, meet with the team to understand the customers they focus on and their competitors better, and use this information to make the best decisions for the customer. Identifying all necessary requirements properly will reduce or eliminate the need for any rework or project changes later in the project which at that time could cause very costly changes.