Wednesday 29 January 2014

Efficient Requirement Gathering

“Requirements Gathering” is more than just finding out what the client needs today. It means understanding the functional requirements i.e. understanding how the system works “As-Is” and how the “To-be” system should work; clearly understand the requirements to segregate them into smaller, moderate and significant changes. Understanding the non - functional requirements like information the system should contain, expected performance from the system as well as security concerns is equally important to develop a good system. It basically means learning all you can about your customer’s business and daily routine of the business and then suggest ways for improvement.


On the face of it requirements gathering seem to be an easy task which involves talking to the client and noting down the requirements but in reality it requires a lot more than that. The analyst needs to establish a proper communication channel and a foundation of trust and rapport with the stakeholders for getting open and honest inputs because as the popular quotes goes “Half Knowledge is a dangerous thing”. When a new system is created, it must adhere to the needs of several groups of stakeholders, such as end users and senior management hence an ear should be given to the opinions and suggestions from all the stakeholders but what is beneficial and feasible as per the scope of the project is the job of the business analyst to evaluate.

The Skills required for effective requirement gathering are listed below:
  1. Effective listening and communication skills are needed for successful business requirements gathering.
  2. Appear Professional and Unbiased. The stakeholders should take the analyst seriously from business perspective and being unbiased will help the stakeholders to open up to you and be honest as far as requirements and expectations from the new system are considered.
  3. Cross-cultural understanding and open to suggestions
  4. Be analytical, investigative and should be able to separate facts from opinions.
  5. Good convincing and negotiation skills and at times be authoritative.
  6. Good understanding of technical jargons and business terms.

How to effectively gather requirements?

  • Identify and understand high level scope of the project, the different stakeholders involved and the business domain.
  • Involve all the stakeholders from the beginning. If possible conduct one-on-one meetings and then group meetings with the stakeholders to identify if individual requirements and the group requirements are in sync. While conducting meetings plan a clear agenda with adequate comfort breaks - not everyone is used to concentrating hard for long periods. Take notes of key points.
  • Ask stakeholders to identify the key problem areas, the scope for improvement in the current processes and the expectations of the stakeholders from ‘To – Be’ developed system.
  • Analyze the problems and the expectations of the different stakeholders. Build questionnaires / ask questions to specific stakeholders for points which are not clear. Do not presume anything. Take notes of key points.
  • Conduct a Joint Application Development (JAD) session which should typically include a facilitator, end users, developers, observers, mediators and experts. JAD sessions accelerates the requirement gathering process, considers view points of all the users and thus ensures a mutually agreed requirement is noted in the requirement specification document. JAD sessions are also useful during the development to faster the development times and reducing the likelihood of errors that are expensive to correct later on.
  • Ensure requirements are specific, realistic and measurable in terms of technology, time and budget. Showing what all is possible while pointing out which options offer the best return becomes a fine line in the requirements gathering process.
  • A common mistake is basing a solution on complex or cutting edge technology and then discovering that it cannot easily be rolled out to the 'real world' hence clearly identify deliverables and their formats.
  • Write down the requirements in a word file or an excel file or using a requirement gathering tool for capturing requirements doesn’t matter much as long it is readable, available and modifiable as and when needed. While writing down the requirements it has to be ensured it is written keeping in mind the different stakeholders and the development team. Everyone involved in the project should clearly understand the detailed requirements. 
  • Once the requirements document is clearly documented it should be distributed to all the stakeholders and consensus from the stakeholders is very important. At this stage if any of the stakeholders has queries try to resolve them at personal level but if it needed conduct another JAD session so that everyone understand the issue and try to come to a logical conclusion.
  • The requirements can change at any stage of the project. Some requirements will be minor changes and some might be significant but what is really important is to discuss the change in requirement with all the stakeholders. Analyze the impact of the change with respect to time, efforts and overall expected business outcome and once all the stakeholders approve the changes then incorporating the changes in to the requirements document. We humans have a tendency to forget hence it is better to document the changes and publish the updated requirements document to the concerned stakeholders. This will be helpful in future to avoid any blame game.
A requirement analyst has to ensure that while building up the requirements document view points of all the involved stakeholders is taken into consideration, discussion and question - answer round is conducted for analysis and evaluation of the various points but only the mutually agreed requirements are documented and should be in scope of the project. A well established communication channel for meetings and publishing requirements is truly important to keep everyone informed about the changes in the requirements.

About Author:
Nikhil Vaishnav is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at nikhil.v@spluspl.com

IT Application Support – Key Challenges

Today more and more organizations understand the importance of IT Applications in an enterprise and are also adopting cutting edge technology to enhance their capability and efficiency. These applications are able to handle all of the complex business processes which traditionally could be handled only by experienced and qualified professionals. However as with all other aspects of technology, the systems also susceptible to downtime and thus IT Application support team plays an important role in making sure that the applications run smoothly and are error free. As the systems are getting more complex and critical to business, it has become necessary that the support staff has detailed knowledge of the system and various business processes involved. The support staff should be able to resolve complex issue in a short period of time. This may increase the learning curve in terms of time for a person to understand the application functioning and acquire an in-depth understanding of the same.
Mentioned below are some of the key challenges faced by a support team:
  • Little/No Management attention: Most of the business priorities are focused on the strategic projects and thus very less effort of management is on support activities unless there is an outage. This leads to inefficiencies creeping in and increased risk in long run.
  • Prioritization: Finding right balance between variable demand of Incident Resolution and scheduled support activities. Support team needs to make sure that the backlog is not ignored and requests are responded as per the right priority at all times.
  • Lack of documentation: Documentation provided by application development team in the form of User guides/System specification, are rarely updated to reflect the changes that the system has undergone. This results in high dependency on the existing teams and difficult transition due to the undocumented knowledge. Also solutions for many of the recurring problems are not documented, resulting in duplication of efforts
  • Quick fix: In the desperation of quickly resolving the issues in hand, the support team misses the big picture and might resort to quick fixes that may result in further creating more problems
  • Wasteful cost: This is a result of the previous aspect. Instead of finding a permanent fix to recurring problems, support team needs to keep responding to the same problem each time. This increases wasteful cost.
  • Lack of right process and communication: Too many channels of communications and lack of appropriate process definition results in reactive approach by the support team that might result in missing out on critical/priority issues and increases backlog.
  • Finding right resource: Due to the expertise required by the support staff, and the amount of pre-training required, it is difficult to replace/redeploy them. Thus providing less flexibility to staff, adds cost and increase waste.
  • Handle peaks: Due to erratic nature of support activities, at times there are peaks in the problems that might lead to increase in backlog and other times there are lull period that might leave the team under-utilized.
  • Longer learning curve: Keeping in mind the advancement technology has made and the complexity of business, IT support staff training would be longer as compared to traditional support. This learning curve is not recognized as business demands increase for quick responses and tickets for support increase.
Application support and maintenance is as important as any other IT Project in an organization to ensure that all the applications perform to their best and deliver what is expected out of them without any disruption.

About Author:
Harsh Saraogi is consultant and part of Systems Plus Pvt. Ltd. He is a part of consulting team that delivers Sourcing and Vendor Management Office projects. He can be contacted at: harshvardhan.s@spluspl.com

Tuesday 28 January 2014

Multi-Vendor Outsourcing Basics

Segregating IT portfolio and distributing its working and management among multiple vendors is a norm today. This approach has various advantages like:
  • Cost effectiveness as vendors offer competitive pricing
  • Reduces dependency on single vendor and also encourages the vendor to perform better due to competition
  • Increases flexibility offered by vendors
  • Outsourcer gains advantages of the best practices followed by both vendors

However, different vendors working together and trying to establish their own style and process creates lots of problem which are not always predicted by the outsourcer. Some major challenges of the multi-vendor outsourcing are:
  • Outsourcer has to educate and implement company processes and policies in various vendor locations
  • Different delivery models used by the vendors may sometime pose as challenge for outsourcer
  • Increase data security risk as outsourcer’s internal information is shared with multiple vendor
  • Managing vendor contracts may be tedious
  • As number of vendors increase, outsourcer has to employ more vendor  managers to ensure seamless working on IT operations

While optioning for multi-vendor outsourcing, following points should be considered by the outsourcer:
  • Ensure that there is a clause on how vendor will communicate with each other (i.e. Governance meetings, frequency of meeting, what will be the topics of discussions etc.)
  • During contract negotiations every vendor focuses on how they will manage and optimize their tower. Outsourcer needs to ensure that there is a clause which states how and who will address problems that arise at touch points in various towers

About Author:
Tina Nebhnani is consultant and part of Systems Plus Pvt. Ltd. She is a part of consulting team that delivers Sourcing and Vendor Management Office projects. She can be contacted at: tina.n@spluspl.com

Monitor & Evaluate IT Policy

Monitoring and evaluation of an IT policy begins from the time of writing the policy itself. While most organizations are well aware of how to write a policy, it is also important to understand how this policy is going to be monitored.

An important aspect which organizations have to keep in mind while drafting a policy is to make sure that all parties who are going to be impacted are involved in writing the policy. Keep the policy in pure English and avoid too many legal, complicated and heavy words. Also the policy should clearly define all the teams who would need to use this policy. Hence many policies have terms like “This policy impacts all teams that are related with network security…etc”. The policy needs to be clear and leave no scope for ambiguity. While it is accepted that the policy cannot cover all practical scenarios, it should also guide the user regarding the DOs and DON’Ts for scenarios they may encounter.

It is very important that the IT policy makers go through ITIL management processes and policies. ITIL provides policies and concepts for operations management and IT infrastructure development. Another important aspect and often much neglected is training. It is very important that all parties who are going to be impacted by the policy are clear about what is expected and how the policy will be implemented. They also need to know how this will be evaluated so that the evidences and data is compliant and stored in a format as desired / required for evaluation.

This will also help in monitoring the effectiveness of the policy. While drafting a policy, care should be taken to define what data will be recorded to measure the effectiveness of the policy. The organization should have clear guidelines and what aspects will be measured for all the teams impacted by the policy.
  1. How will the data be gathered
  2. Who will be responsible for data / evidences required 
  3. How will the data be analyzed
  4. How the reporting methodology will work
Reporting should not just be for the sake of compliance. It should also help top management in understanding if the policies implemented are actually helping the teams in performing their work more effectively. They should be able to analyze if the policy implemented is in line with the overall organizational goals and is helping them get there faster. The data should also help in identifying what improvement measures need to be implemented or what corrections need to be made in policy to rectify any deficiencies.

The benefits of measuring the effectiveness of the policy are many. The basic advantage is that it will help senior management in measuring compliance to various initiatives. Also since all stakeholders would ideally be involved in drafting policies, much effort is spent. Measuring the effectiveness helps management understands if they are getting the ROI expected from this investment. The feedback received on the policy will also help in drafting future polices.

About Author:
Kintu Racca is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at kintu.r@spluspl.com

Monday 27 January 2014

MVC Request Life Cycle

What is MVC?

The Model-View-Controller (MVC) is an architectural pattern, which separates an application into three main components: the model, the view, and the controller. 



  • The “View” is responsible for presentation (look and feel) or the user interface (UI) layer of MVC web application.
  • The “Controller” is responsible to handle the end user request and work with model and finally select view to render the UI.
  • “Model” represents the real world object that manages the behavior and provides data to the “View”.

 How MVC page request is being handled?

When request comes from client to the server, a following step are performed before sending response to the client (browser).


1. Routing
Routing is the first stage of the MVC Request Life Cycle. Whenever browser makes a request against an ASP.NET MVC application, the request is intercepted by the UrlRoutingModule. The RouteCollection property of UrlRoutingModule contains all routes registered in the Global.asax file.
// Register Routes in Global.asax.
---------------------------------------------------------------------------------------------------

protected void Application_Start()
{
  AreaRegistration.RegisterAllAreas();
  // Required method call at first time application run.
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
   new { controller = "Home", action = "Index", id =UrlParameter.Optional  } // Parameter defaults
  );
}
---------------------------------------------------------------------------------------------------
Properties of Route

  • Route Name: A route is a URL pattern that is mapped to a handler. A handler can be a controller in the MVC application that processes the request. 
  • URL Pattern: A URL pattern can contain literal values and variable placeholders (referred to as URL parameters). The literals and placeholders are located in segments of the URL that are delimited by the slash (/) character.
  • Defaults: The defaults are an object that contains default route values for route.


2. MvcHandler
The responsibility of MvcHandler class is generate the response for the ongoing request being processed. It receives information from the RequestContext passed to its constructor, in the implementation of the GetHttpHandler() method in the MvcRouteHandler class. The MvcHandler class implements three interfaces : IHttpAsyncHandler, IHttpHandler and IRequiresSessionState.

IRequiresSessionState interface, which specifies that the current HTTP handler requires read and write access to session-state values. This is a marker interface and has no methods in it.

IHttpHandler interface defines the contract that a class must implement in order to synchronously  process HTTP Web requests using HTTP handler. It exposes a ProcessRequest() method.

IHttpAsyncHandler interface is the asynchronous version of IHttpHandler interface.
---------------------------------------------------------------------------------------------------

void IHttpHandler.ProcessRequest(HttpContext httpContext)
{
    ProcessRequest(httpContext);
}

protected virtual void ProcessRequest(HttpContext httpContext)
{
    HttpContextBase iHttpContext = new HttpContextWrapper(httpContext);
    ProcessRequest(iHttpContext);
}

protected internal virtual void ProcessRequest(HttpContextBase httpContext)
{
     // Get the controller type
    string controllerName = RequestContext.RouteData.GetRequiredString("controller");

    // Instantiate the controller and call Execute
    IControllerFactory factory = ControllerBuilder.GetControllerFactory();
    IController controller = factory.CreateController(RequestContext, controllerName);

    try  
   {
        controller.Execute(RequestContext);
    }
    finally   
    {
        factory.ReleaseController(controller);
    }
  }
---------------------------------------------------------------------------------------------------


3. Controller
Here the Controller receives request and works with the Model to prepare data needed by the View. All controller classes inherit from a base System.Web.Mvc.Controller.


In this case, a SalesController controller is invoking the Index Action method. The SalesController is responsible for generating the response to the browser request. For example, it may return a particular view back to the browser or redirect to another controller.

The MVCHandler uses the IControllerFactory instance and tries to get IController instance. If successful, then Execute() method builds a list of parameters from the request context and get called, next passed this parameter to action method of controller.
---------------------------------------------------------------------------------------------------
protected void Application_Start()
{
   AreaRegistration.RegisterAllAreas();
   ControllerBuilder.Current.SetControllerFactory(new     CustomControllerFactory());
}
---------------------------------------------------------------------------------------------------
The IControllerFactory could be the default controller factory or a custom factory initialized at the Application_Start ().


4. Action Execution
The Controller class is inherited from the ControllerBase, the ControllerActionInvoker object is associated with a controller object. It identifies which action method is called and invokes it. Action to be executed is chosen based on attributes ActionNameSelectorAttribute and ActionMethodSelectoreAttribute. The ActionNameSelectorAttribute helps to select the correct method, if more than one action method is found which has the same name, action filters are applied to invoke the correct one. Action filter is an attribute that can be applied on action method or an entire controller.

There are four types of MVC filters, AuthorizationFilters, ExceptionFilters, ActionFilters and ResultFilters. Action invoker uses a Model Binder object in case action method has argument(s).  A Model Binder converts a HTTP Request into an object and pass it to the Action method.


5. View Result
The action method gets the inputs and prepares appropriate response data and then executes the result by returning result type. The View Result is used to process view and also responsible for selecting and involving the appropriate View Engine to render the resulting response in html form.

MVC supports many action result return types; the top is the ActionResult which is a base class and it has ViewResult, PartialViewResult, EmptyResult, RedirectResult, RedirectToRouteResult, JsonResult, JavaScriptResult, ContentResult, FileContentResult, FileStreamResult, FilePathResult subtypes.


6. View Engine
The Execution of View Result involves selection of the appropriate View Engine to render the View Result in the browser. It is handled by IViewEngine interface of the view engine. There are four View Engines (Razor, ASPX, Spark and NHaml) supported by MVC and it has different syntax to implement the view, Razor View engine used .cshtml and .vbhtml, While Web Form View Engine used .aspx to design the layout of the user interface.
---------------------------------------------------------------------------------------------------
protected void Application_Start()
{
      ViewEngines.Engines.Clear();

    ViewEngines.Engines.Add(new MyCustomViewEngine());
  }
---------------------------------------------------------------------------------------------------Developer can also register own custom view engine to Asp.Net MVC application from Application_Start ().


7. View
Views are responsible for generating HTML in the MVC framework, they query on model for data and build HTML from it. An Action method may return a simple string, a binary file, JSON formatted data or file depends on Action result. Commonly an Action Methods returns a ViewResult which rendered as an HTML page to the browser using the current View Engine.

About Author:
Mahesh Deore  is enthusiast .net developer who works as associate consultant with Systems Plus Pvt. Ltd. He in free time reads and write on various web technologies. He can be contacted at: mahesh.d@spluspl.com

Wednesday 22 January 2014

Six Thinking Hats: A technique of Business Analysis

What is Six Thinking Hats: Early in the 1980s, Dr. Edward De Bono introduced the concept of Six Thinking Hats. Six Thinking Hats is a brainstorming technique which is used to incorporate parallel thinking. Parallel thinking is a practice in which the focus of all participants at any given time is in the same direction. This helps in exploring a subject in depth. As humans, we tend to be confined to our habitual thinking style. For example, successful people often have a very positive, rational point of view which works in their favor in most situations. But they might fail to look at a problem from an emotional, negative perspective which may lead to wrong decisions. In situations like these, the powerful technique of Six Thinking Hats fosters creativity and innovation by forcing us to think outside the box and thus obtain more complete view of a situation.

The key theoretical reasons for using Six Thinking Hats are as follows:
  • encourage parallel thinking
  • encourage full-spectrum thinking
  • separate ego from performance
Consider an example here; a multi-national company has planned to come up with a new product, a mobile phone of cutting edge technology for business use, i.e., for a specific market segment. The company introduced Six Thinking Hats technique with intend of encouraging innovative ideas and taking in to consideration different point of views. The technique is described below:

The Six Thinking Hats: This technique includes six imaginary hats that you ‘put on’ and ‘take off’ to signify the type of thinking being used. The six hats are described below.

White Hat: This hat covers facts, figures, information needs and gaps related to your current problem. With this thinking hat, you look at the information available to you, see what you can learn from it and analyze past trends.
In the example considered above, the group wears the White Hat to research about the day to day lives of consumers and how the consumers will benefit from using this new phone. They analyze the different mobile phones available in the market for that particular segment and also market trends of those phones.

Green Hat: This hat stands for creativity. Here, alternate way of thinking and finding solution to a problem is encouraged.
In our example, the group puts on the Green Hat and gives innovative ideas of what features can be implemented in the phone and also the provide their views about the design of the phone. They also try to find alternate ways of achieving their goal.

Yellow Hat: Yellow hat is used to think positively. It helps you see all the benefits of the decision.
Yellow Hat will be used by the group to see all the positive aspects of the ideas listed down. All the group members think about the benefits of the phone and how it will be profitable to the organization.

Black Hat: Black hat is used to point out flaws in decisions logically. This hat is also known as the hat of judgment and caution and is a most valuable hat. This hat helps you to eliminate the weak points in your plan or prepare contingency plans to counter them.
The group uses Black Hat to check if there are any flaws in their plan. They think about the worst case scenarios for their plan, meaning in which areas their plan can fail. For example, the chosen market segment for the mobile phone is wrong or the design of the phone does not serve its purpose.

Red Hat: This hat covers feelings, intuition and emotions. While using this hat, a thinker can put forward his or her intuition without the need to justify it. This hat allows its user to look at a problem using gut reaction.
For the example mentioned above, the opinion of group members about the new product will be put forward with the help of Red Hat. The group members will prioritize the need for different features in the phone and what according to them will be most useful. This hat will also help the group understand what emotions can be tapped into for successful marketing of the phone and what pitfalls emotionally must be avoided

Blue Hat: This is a process control or overview hat. It looks not at the problem itself but the ‘thinking’ that goes into solving the problem. Why falling short of ideas, blue hat gives direction as to which hat must be used.
The Blue Hat is used by the group to direct the thinking process and keeping a check such that all the issues are covered.

What are the advantages of using Six Thinking Hats?

Following are the advantages of using Six Thinking Hats:
  • Adds structure to brainstorming process
  • Shorter and more productive thinking processes
  • Reduces conflict within a team
  • Motivates a clearer thinking process
  • Avoids potential threats to situation and helps avoid them
  • Inspires creative thinking 


What are the disadvantages of using Six Thinking Hats?

The disadvantages of Six Thinking Hats are much less compared to the advantages. The disadvantages are described below:
  • The process of thinking is very time-consuming
  • Some team-members prefer to think alone rather than in a group
  • Conflicts can still arise between people of different perspective
Overall, Six Thinking Hats is a very positive and creative brainstorming technique which improves the efficiency and effectiveness of our thinking methods. Be it problem solving or overcoming challenges, using Six Thinking Hats, better business decisions can be achieved.

About Author:
Kruti Gala is a lead consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: kruti.g@spluspl.com

Advantages of Centralized Help desk

A Service Desk can be considered as a point of contact between two parties, one seeking solution and support and the other providing the appropriate solution. Thus, a Centralized help desk can be defined as a centre point where in multiple parties come for issue resolution, information and support and a single team of members provide the required solution, information and support. Hence it can be seen that in case of Centralized help Desk the team handling it has to be very efficient and the application used by them should be fast, efficient and bug free. As centralized help desk manages various types of issues pertaining to various applications, domains and scenarios it should be very flexible in integrating with various platforms and comparatively fast in pulling information from various systems and applications.


As mentioned above, it can be seen that there are so many factors that should be perfectly in place without any room for error when it comes to working with centralized helpdesk architecture in the organization. Now the question arises on why to have a Centralized Helpdesk in spite of having many implications.



To answer this, there are a number of benefits of having Centralized Helpdesk architecture. Some of them are as listed below:

  1. Single Point of Contact: It is a single point of contact where users from various departments and working on various processes can log their issues. This helps save a lot of time and efforts as the users do not have to login to different applications for different issues.
  2. Auto generated Request number: Issue raised by any user is assigned an auto generated number. This helps in tracking the progress of the respective issue resolution. Thus, reducing the time utilized in resolution of the issue. Corrective actions can be taken in time if it is encountered that the issue resolution process is facing a halt.
  3. Adds uniformity in issue resolution process: Having Centralized helpdesk streamlines the issue resolution process as users do not have to remember and follow different processes for resolving different issues.
  4. Prevention better than Cure: Having a Centralized helpdesk assists in collecting information at one location which can be then analyzed to find out which application or which hardware is facing common problems frequently. Using this valuable data, proactive actions can be taken to replace the hardware or raise a change request for the application which can permanently resolve certain commonly encountered issues.
  5. Performance evaluation: Having a Centralized Helpdesk can provide various customized reports which can be utilized for evaluating performance of users. Mangers do not have to refer to various applications to generate reports and then sit and collate them. This can save a lot of time and headache while evaluating the performance of the users.
  6. Historical Logs: All the History logs of all the issues are maintained in one uniform format. Thus, these can be referred easily without any hassle whenever they are required. Users don’t have to toggle around various databases and files to refer the same.
  7. Effective User Training: Having Centralized helpdesk makes the task of training a new employee quite easy and less time consuming as he/she has to be trained on only one help desk application and related processes and not on various different process. This makes the training effective and saves time spend in re-training.
Thus, it can be seen that Centralized helpdesk proves efficient in many ways like saving time, money. It also, plays an important role in improving performance of various applications. Hence, it’s a sensible decision to implement the same though it has certain implications that are required to be followed.

About Author:
Mohini Bhandari is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at mohini.b@spluspl.com

Tuesday 21 January 2014

Vendor Management / Leadership Skills

Vendor management usually requires an effective and a skillful workforce to manage a vendor/s. There are many aspects which go in vendor management like leadership, skilled labor, and experienced project managers to see through the entire stage of the engagement. Most of the project managers are well aware of the subject matter and are highly trained in that order. But managing the entire team through all the stages of vendor management requires a set of leadership skills along with their domain expertise.
So now the question arises is ‘What makes a good leader?’ or ‘What constitutes to a good vendor manager?’ The answer to this is not limited. There are many things which go into making a good vendor manager or a good leader. Some vendor managers’ deal with the daily activities – tracking the project schedule, delivery on time, managing the resources and working with the internal stakeholders to get the process aligned best suitable for the project and so on. Leadership may depend on or may vary from the type of project, its cost, its size, duration and the other complexities which may hamper the deadlines. Another approach which is common is going by what has been agreed in the contract, the relationship between the client and the vendor, the technology aspect, and the overall approach of the work being done.
Some of the below points might help a resource or project manager be an effective leader of a team 
  1. Define the objectives clearly initially, align process within the scope of the project, take the initiative of vendor actions and priorities, risk analysis and mitigation
  2. Strive to improve performance, quality, innovation, and value of the work which will help strengthen the business relationships instead of only following the contract
  3. Create effective communication between both parties and solve problems more collaboratively exploring a wide range of options. Use the vendor’s experience with different clients and come with a generic solution to the problems without narrowing the scope
  4. Build teams which abide by the company ethics and culture which will enforce them to interact with the client directly when in need
Leadership can be required at any level, be it small team or a big one. Also the level of leadership can change in a large and complex situation but the generic skill should be universal. The idea is how you develop those skills and how effectively you execute those in your work methods. Below mentioned are a few of those –
  1. Clear vision upfront and of the outcomes and an appropriate approach to that vision which is easier for others to grasp
  2. Good communication skills to understand and convey to the entire team
  3. Emotional intelligence to read situations, and strength to take a stand as and when needed
  4. Create a healthy environment at work and work with different people, profession and styles
  5. Maintain a sense of project deadlines and good planning skills
  6. Ability to learn from others and helping each other grow as an individual
  7. Problem-solving skills, and the ability to engage others in the process
  8. Good negotiation skills in agreeing to contracts as well as between team members
  9. Flexible enough to adapt to changes – in technology, work environment, resources and also help others to adapt
People may often relate these above qualities to their managers or team leads and will work towards achieving those in their personality. Some might use their old methods and behaviors which have worked for them in the past and which are more comfortable to them. While an individual is developing from being an individual resource to being a subject matter expert, it is essential to have an influential and a good leadership quality in terms of achieving the goal ahead. They should not just rely on their domain expertise but keep a broader view of things and people and act accordingly. Leadership skills can be more strengthened by working with a small team at first and get structured feedbacks for the same. Trainings, behavioral modeling programs, and self-study with practice for the more straightforward techniques are other common methods to use. But as they say the best experience is the on-field experience and that’s when you will have to take a stock of the above things in leading others.

About Author:
Mihir Sakhle is consultant and part of Systems Plus Pvt. Ltd. He is a part of consulting team that delivers Sourcing and Vendor Managementg Office projects. He can be contacted at: mihir.s@spluspl.com