Thursday, July 22, 2010

Developing "your network" at a new job

Today, one of the most important tools for any job is "your network." This network is not the one that your computers connect too, nor is it a physical item in your office. "Your network" is the group of people that you have established relationships with that can assist you in doing your job more efficiently. These relationships allow you to quickly gather information, answer questions and complete tasks by quickly knowing who within "your network" to call on and who is best suited to assist with a task.


"Your network" is critical to ensuring you can be a success in any role. As people become more distributed in the jobs they complete and jobs become more complicated, the number of other staff you must work with will quickly grow. By having a network of established peers, you can:

  • Quickly locate those folks that are necessary to collaborate with on projects to be successful

  • Ensure that you focus on your tasks and not tasks that another organization is better suited to complete

  • Have a group of staff to ask questions of, get advise from and look too for mentoring or leadership guidance

  • Look good in the eyes of your peers and customers by efficiently completing tasks and projects

  • Have a group of folks to speak to when things at work get stressful

  • Avoid unnecessary mistakes by learning from your peer's experiences


The most critical time to have a strong network to rely on is when you start a new job, or position within the same company. A strong network will allow you to quickly learn the position and be successful at your new tasks. The most common ways to build "your network" in a new role are:

  • Call your peers or sit down over a cup of coffee with them. You can use this time to discuss team dynamics, their roles, their capabilities and understand what they do to be successful on the team.

  • Make a note of important names mentioned during conference calls, meetings and in passing. Reach out to these individual offering a short introduction, and ask about their role. This will help understand when they can be engaged on projects.

  • The most important item in my mind when building your network is asking questions. As a new member of any team, it is not expected that you know everything on day one. Asking questions and following up with the proper subject matter experts shows engagement, passion and a desire to grow with the team.


Until now, most of what I have written is geared towards developing your network within your primary job, at work and with your coworkers. Another important aspect of "your network" is developing relationships with those that are in other industries and similar roles at other companies. These types of networking opportunities allow you to grow not only in your role, but within your industry and develop as an authority within your field.


Long term, the larger your network, the more opportunities you will have for exciting projects, new roles and assistance on your projects. With the mobility in the modern job market, and the uncertainties around long term, consistent employment, having a large network ensures you always have methods for locating new opportunities and sharing your capabilities with others.


These networks do not develop over night, they often take months or years to develop at any company or within a new role. Patience pays off, when starting in a new role, reach out to as many people as possible to introduce yourself and ask about their roles. Some folks will be more receptive than others, but the key is to share your capabilities, understand other peoples and in time, you will develop a strong network to assist in completing your duties.


Ultimately, some of these contacts you develop may turn into longer term relationships. Some of my best friends are people that I first met as peers or members of my network while at a job or working on a project.

Tuesday, April 6, 2010

Enabling Users

The primary goal of any organization responsible for the deployment and support of desktops, laptops and telephones should be to enable the end users to do their job as efficiently as possible. These users often have a primary job that does not include supporting the platform (desktop, laptop, application or mobile device), only using the platform for their primary job. The first step to providing a sufficient level of service is to clearly define your user base, this will help your organization group users based on common skills, common usage patterns and common support requirements. After the user base has been categorized, a support model and list of required tools for each category can be assembled.

By properly grouping your users, IT leadership can more clearly understand how their needs evolve, what their training requirements are and what tools are necessary to enable them to perform their primary job function(s). Grouping users is an evolutionary process that should be reviewed and updated yearly at a minimum, but more often if a companies' structure is regularly changing.

The first step is to create categories to put the various users into, four to five groups is often enough to include all users, but not too many that managing the documentation for them becomes cumbersome. The most common user groups I have seen and worked with are classified as:
  • Company Administration - This group includes people like executive assistance, accountants, human resources and managers. This group's primary use of Information Technology (IT) resources is to complete their job, and traditionally these staff have little to no IT support or troubleshooting experience. This group will most often have little to no opinion about what applications they use for their job, just that the applications allow them to complete their job. They are completely at the mercy of the IT department for system setup, configuration, upgrades and repair.
  • Executive Staff - This group is characterized as often having the same IT skills as Company Administration, but needing a higher level of access to corporate resources and mobility because of travel and meeting schedules. This group's primary characteristic is the higher need for the ability to safely use, transport and protect highly confidential company information, as well as access it in a timely manner.
  • Information Technology Staff - IT staff are characterized as needing high levels of access to a majority of the systems and data within the environment. This group will also commonly need remote access to a majority of the environment to facilitate after hours work, upgrades and outage management. This group is often capable of supporting their own systems for operations like new software install, troubleshooting and upgrades.
  • Power User - A Power Use is someone that would traditionally fall under the Company Administration category, but is distinguished by their opinions of what applications they prefer to use based on previous experience, as well as their ability to provide basic support for them-self by installing new applications, upgrading applications and troubleshooting the most common support problems they may encounter.
  • Developer - Software Developers often fall into their own category as a user type because of their need for testing and development environments, in addition to their need for common business tools like documents, email and web browsing. Developers often need places to compile code, the ability to change administrative settings and install differing versions of libraries that common users to not need access too. Developers often require multiple systems that can be quickly built and rebuild as their testing needs change.

After defining your categories of users, you can define a support model for each group. This support model will include what types of systems they are assigned, what level of support they get during business hours and off business hours and what software licences will be acquired for all staff in each respective group. These definitions can be used to understand the cost for supporting each group of users, as well as the cost for upgrades when new software becomes available or is requested by large groups of staff. The most common support models, that can then be paired with user categories, are:
  • Full-Support - This model is typical of providing a help desk that is capable and properly staffed to respond to support requests 7 days a week, 24 hours a day. This model is the most expensive, but is critical if staff are expected to work off hours like weekends and holidays. This model is most commonly used for users in the Executive Staff category and Company Administration category.
  • Business-Hours Full-Support - This model is typical of providing a help desk that is capable and properly staffed to respond to support requests 5 days a week, 12 hours a day. This support model is most often used for Company Administration staff that require IT support for all issues they may encounter, but do not commonly work after regular business hours. This model of support is less expensive then supporting users 24 hours a day, but creates the potential that staff will not be able to work after hours if they experience severe IT problems after hours.
  • Partial Support - This model is typical of providing a help desk that is capable and properly staffed to respond to support requests for staff that have completed the first level of support and require an escalation to the IT department for support or resolution. The Power Users and Developers will most often use this model for requesting additional information or an exception to company policies after doing the necessary research to support the request.
  • Self-Support - This model is typical of providing on-line help for users with no telephone or live component for the most common support requests. This model is typically used for highly capable users that prefer to manage their own IT environment. This model typically provides a ticket or automated system for requesting work to be completed by the IT department.

We have now defined our users, based on their common support requirements and usage. We have paired that with a support model to ensure both cost efficiency, as well as a balance to ensure users can work when necessary and get support quickly when needed. Now we must define what tools each user category gets based on their business and productivity needs:
  • Desktop Computer - Desktop computers are still the least expensive method to provide access to email, web browsing and network based applications. They can be very powerful for demanding users, but lack the portability to allow users to work from home, or while traveling. While desktop computers are still viable for Company Administration staff, Power Users and Executives tend to avoid them.
  • Laptop Computer - Laptops are growing as a percentage of the systems in use in most companies because of their flexibility, portability and smaller power consumption. Laptops, while often slower then desktop systems, have advanced in the past few years and provide for even the most demanding users. Laptops are most common for Company Executives and Power Users.
  • Smart-phone - Smart phones cover a wide range of products including the iPhone, Blackberry devices, and Android powered devices. These are designed to allow for calendar, email and basic document access while on the run or out of the office. These are becoming more common across all categories of workers to enable them to stay in touch no matter where they are during the day. The use of smart-phone like devices will only increase and more and more applications are optimized for mobile access.
  • Cloud-hosted Virtual Machine - With the popularity of cloud computing, it is becoming very inexpensive to dedicate multiple hosted Virtual Machines to every developer or staff member for development and testing purposes. These are most commonly assigned to Developers and Information Technology Staff. While these do provide a lot of benefits for productivity and testing, they must be implemented to ensure corporate security is maintained.
  • Administrative Access - Administrative Access, regardless of Operating System, refers to the ability of a single user to install software locally and manipulate local configuration parameters. While there are varying levels of Administrative Access with today's fine-grained access tools, this category most often applies to Power Users, Developers and Information Technology Staff.
  • System Performance - System performance is a tool defined by the speed of the equipment assigned to a given user, as well as the amount of storage space it contains and physical memory the device has. Commonly speaking, the faster a system an employee has, the more they can multitask and the faster they will be able to complete actions. All users, regardless of category, should be assigned systems that are fast enough to ensure they are not waiting for operations to complete. Human capitol is much more expensive then faster computers.
  • Bring Your Own PC (BYOPC) - Bring Your Own PC is a new method many companies are looking towards to enable their Power Users by allowing the user to choose the type of system they use for work. This allows the employee to choose the system that they are most comfortable and productive with. It will take some time if this does catch on because of the increased complexity involved for IT departments to ensure various platforms can access common company resources like time cards, email and file sharing. BYOPC also creates security issues that must be managed by the company.

Today, companies have a variety of user categories, each with their own, specific needs for the IT systems they need to complete their job. By carefully grouping users, they can be better understood and provided with the tools and a support model that enables them to be as efficient as possible. This common support model can then drive company planning for costs, upgrades, and other changes. Understanding that not all users are the same is the first step to ensuring that IT provides all users the tools they need to complete their job, regardless of their individual IT skills or opinions.

Wednesday, March 24, 2010

Capacity planning for business IT Systems

Capacity planning is a critical part of all Information Technology (IT) environments. It ensures that the number of servers, licenses, physical memory, bandwidth, disk space, room space, etc is sized properly for the maximum return on investment. This ensures that the user experience is positive, while ensuring that unused capacity is not being paid for and managed without a valid return on investment. Capacity planning is ensuring that the workload for a given environment is properly understood and mapped to create a link between a specific number of users and the amount of infrastructure needed to handle those users’ applications. That information is then laid out on a calendar to ensure that the load over time is understood so that capacity can be added and removed as necessary, without a negative impact on user experience.

This document is meant to serve as a guide to what information to consider when beginning the process of capacity planning within your environment. The purpose is to list the most common considerations and strategies for ensuring your capacity plan is an adequate model for infrastructure growth. First, let’s cover some terms and concepts that are important to understanding capacity planning:

Types of Capacity – Capacity is a very broad term, and within the realm of IT there are a variety of places that need to be considered when evaluating current and future capacity needs. While these are separate areas within the same context, each of them directly affects each other. The most common areas of focus for capacity planning are compute power (CPU speed and quantity), memory capacity (both RAM and hard disk), bandwidth (both within a single server and between devices), space (data center, office and storage facilities), data center (power and cooling), and human capitol (staff and contractors for operating the environment, and the relevant skills they posses).

365-day Calendar – Every business has highs and lows in terms of capacity needs. These can vary from month to month, and as often as hourly within the same day. As part of any long term capacity plan, a long-term calendar is needed to show the highs and lows in capacity needs. This should incorporate in holidays that affect the load on the environment, the needs of the business for reporting and trending and any audit needs based on industry specific rules.

User Load relative to Capacity – This is a formal mapping of a specific user load, to a defined amount of capacity with constraints around user response time, availability and user experience. This is the building block for a corporate wide capacity plan and enables staff to understand how much capacity must be added based on user growth. Most organizations will use their Service Level Agreements (SLAs) for setting this relationship.

The process to developing a capacity plan can be long and involve many steps depending on the complexity of the environment, dynamic nature of the work load, and the type of software being using. These are the most common steps (in no particular order) for information gathering as part of developing this capacity plan:

Load Testing – This is the process of testing specific user loads on a known capacity of hardware. These, when done multiple times on varying configurations can develop a capacity model for how many users a set of hardware can support at maximum without performance degradation.

Review of similar environments/workloads – This step is to ensure that knowledge gained within the industry, in similar environments is applied to your capacity plan and your specific environment. This step is not meant to assume some other workload is identical to yours, it is probably not, but there probably are similar workloads that can provide guidance on what to test in the Load Testing phase and what models need to be developed to properly plan capacity.

Trial and Error – A large part of load testing is trial and error. Many environments are simply too large to fully test in a development or test environment. This trial and error can be done in a strategic manner, testing types of capacity needs that are the most likely to be impacted by large or abnormal loads.

SLAs – This is the process of documenting what contractual requirements are in place for ensuring the users get the level of availability, uptime, and performance they expect and have paid for with the service.

The above steps are part of the technical process to developing a capacity plan that is unique to your environment and its needs. These, in addition to carefully documenting when and how to increase capacity can ensure that when the environment hits pre-set triggers, capacity can be added easily, ensuring a consistent user experience.

Capacity planning is ensuring that a clearly defined user experience can be mapped to a specific amount of infrastructure to support that experience. This plan should include not only what increments capacity can be added in, but also what triggers cause that capacity increase to occur. This plan, when associated with a calendar of business needs, trends and holidays can ensure the proactive growth of the environment and a consistent user experience, without having excess capacity that is costing the firm money and not being fully utilized.

Monday, March 8, 2010

Remote Team Dynamics

In recent years companies have increased the speed at which they downsized offices and subsequently hired more staff "working remote." "Working remote" can include a variety of alternative working arrangements, but is most commonly characterized by staff that work primarily from their home, or the customer location. This has created many teams that the staff are distributed across the country and the world. These remote employees typically have the freedom to work the hours they are most productive, as well as at the location they are most comfortable at, this could include coworking spaces, coffee shops or parts.

One significant change as a team becomes more distributed and remote is that communication channels and patterns must evolve to ensure staff feel the same level of connection that they would if they worked in a traditional office setting. Communication models must adapt to ensure that staff not only feel connected to their team and manager, but that they have effective methods to reach out to their team for discussions, advise and coordination.

I have worked in a variety of roles where my manager and I were in different states, as well as managed teams spread out as far as Australia, while I was based in Texas. This presented a unique challenge in ensuring that all team members had the same information and capabilities to do their job, regardless of their specific locations or timezones. Below are a few of the most successful methods I have found for managing a team that is distributed:

Weekly Team Meetings

The primary method for team communication, pass down and discussion should be a weekly call. This provides a known, consistent forum for the team to discuss changes within the team, within the company and pass down information from management to the team. The focus of the call should be kept on items and topics that are relevant to the majority of the team, sideline discussions should be scheduled at a different time to discuss topics in detail that do not interest or affect the entire group. Regular team calls are a great opportunity to foster team trust. These calls provide a place for team members to share their knowledge and experience as well as allow for open communication on issues that need a second opinion or escalation.

The time of the day that these calls are held is critical to ensuring maximum participation and limiting the impact of the call on the regular work of the team. For teams that are spread across timezones it is beneficial to hold calls at alternating times, either presenting the information twice, or to ensure that if one timezone must be up for a very early call, they do no have to make that sacrifice every week, but other regions have calls at off times periodically as well. Another option is to record the calls so that folks can listen to them at a more convenient time.

An agenda for the call should always be sent ahead of time, this will allow people to prepare for the call. An agenda can also be used to set time limits for various topics to ensure that one topic does not unexpectedly consume the entire schedule time for the call.

Finally, meeting notes should be provided after each call. These reinforce any policies stated to the team and allow the staff a reference to refer too later should they forget what was said or decided on the call. These meeting notes can also serve as the official record for any decisions that require review and approval by the team or management.

Roundtable

Every call should contain a roundtable, this provides all team members a brief period to share lessons learned that impact the rest of the team, and allow folks to understand what their peers are working on and may be able to collaborate on.

Each person's time should be limited so that they may mention one highlight and one lowlight of the week. The purpose is to share lessons learns with the team so that best practices can be shared across the organization.

Alternative Team Communication

In addition to a regular team call, there are several other methods that can be used for communicating with the team and building strong bonds between members, regardless of location.

Team Discussion List - An email distribution list should be available for the members of the remote team to communicate on topics that would normally warrant a hallway conversation. This could be technical discussions, product discussions or questions posed to the team about a customer or product. This forum provides the team a known path for team communication and input.

Team Watercooler List - One item that gets missed a lot with remote teams is the loss of hallway discussions on personal issues or announcements. A separate distribution list should be available to the team for topic discussion that is not immediately applicable to the company, but allows employees on the team to get to know each other better and share good news from their personal lives. This allows a name and personality to be shared for each member of the team.


Remote teams are a new challenge that companies are beginning to experience as more and more staff work from home or other alternative working arrangements. By having regular communication with the team, it allows these staff that are separated to keep in close contact, develop a trust for one another and ensure all team members have quick paths for discussion with the team. Ensuing communication flows regularly ensures that these remote employees feel connected to the team and have the information they need to be successful in their roles at the company.