Confidence in Leaders & Managers and Their Performance: Reinforcing Loop

When stakeholders, executives and team members have confidence in the abilities of a leader/manager, it results in their lending greater support to that leader/manager. It also tends to make them more forgiving of mistakes made by the leader. Both of these things result in better performance, effectiveness and results from the leader. That, in turn causes the stakeholders, executives and team members to have even greater confidence in the abilities of the leader. This causal loop scenario is good for the leader’s career.

In the study of System Dynamics, this would be called a reinforcing loop as illustrated in the diagram. This is an example of applying Systems Thinking to a workplace scenario.

The reverse of this also holds. When stakeholders, executives and team members don’t have faith in a manager, it results in them not lending their support and effort to the project being led by the manager. It also causes them to be unforgiving when the manager makes mistakes. Those things result in problems and the project performing poorly. That, in turn results in the people having even less faith and confidence in the manager.

A manager needs to break out of such an undesirable reinforcing loop situation before it results in his/her downfall.

The ways out of such situations include:

  • The executives replace the manager. However, this is often an undesirable result for the manager.
  • The manager has the team work on some tasks in the project that he/she has a high probability of making successful. These help the manager gain the confidence of others.
  • The manager starts to perform other things well that help build confidence in his/her management qualities. For example, becoming highly responsive to emails and requests, following up after meetings and discussions, etc.
  • The manager starts to meet constructively and regularly with executives, stakeholders and team members one on one with the goal of developing and maintaining relationships of trust with them.

Trinity Method of Technology Management

In the Trinity Method of Technology Management, tasks and responsibilities are categorized under three types of roles: Creator, Guardian and Recycler.

If you are the CTO or VP of Technology at an organization, your team needs to do three things effectively and regularly:

  1. Innovate; improve; create new products, features, services & processes
  2. Operate; maintain; execute existing processes & systems with predictable results
  3. Seek & identify products, features, services and processes that are no longer necessary; Decommission systems; Free up resources for reassignment

The above are the roles of creator, guardian and recycler, respectively.

An example of a creator-type manager is someone whose primary background is software engineering and that their strength is in delivering client satisfaction & happiness via innovative products & services.

A example of a guardian-type manager is someone who does a good job heading up technology operations.

The dedicated recycler-type role rarely exists in many organizations, resulting in unnecessary systems (whole or in part), features and processes consuming money, causing unnecessary complexity and slowing down productivity and innovation. Recycling should be a part of everyday work in a technology organization. Reduce waste by recycling.

There are many benefits of having a dedicated recycler role in your management team:

  • Higher productivity due to reduction of complexity, removal of obstacles and availability of freed-up resources
  • Helps eliminate or minimize ‘process creep’
  • A happier workplace resulting from the above
  • Cost savings

I recommend that you have these three distinct roles, with a manager focussed on only one of creator, guardian, or recycler type tasks & responsibilities at a given time.

The table below gives some examples of tasks and responsibilities under the three areas.

Creator Tasks & ResponsibilitiesGuardian Tasks & ResponsibilitiesRecycler Tasks & Responsibilities
Develop new products, functionality, services, systems & processesOperations, execution, delivering predictable results, maintenance & supportExamine existing systems, products, processes and resource assignments seeking areas for recycling
Add a major new feature to an existing Web applicationTrack expenses to budget, monthlyDecommissioning a system no longer in use
Develop a new mobile applicationCompile status reports, weeklyElimination of unnecessary steps and waste in a process or workflow
Mentor and coach employees on a regular basisIdentification of areas for cost reductions
Review and approve requests like vacations, expenses andWhen an employee leaves, don’t immediately assume that you need to fill the position. The recycler manager should urge the team to determine if this work can be absorbed elsewhere. This will help eliminate waste and avoid or minimize layoffs in the future when business requires reducing staff.

This article was inspired by the Indian concept of Trimurti in which in which the cosmic functions of creation, maintenance, and destruction are personified. It was also inspired by the Harvard Business Review article titled “What 17th-Century Pirates Can Teach Us About Job Design“ by Hayagreeva Rao, Professor of at Stanford University’s Graduate School of Business.

This post about the Trinity Method of Technology Management is part of a series on technology leadership & management.

CAREER-CLEAR: An Employee Evaluation and Career Development System

CAREER-CLEAR is a system for doing fair, consistent and constructive employee performance evaluations and determining employee rank, title and compensation. It is meant to be used by supervisors to identify areas for improvement for their employees and to guide their career growth.

Employees are scored in a total of 5 categories. Upto 10 points can be earned in each category for a total of upto 50 points. The final score is then multiplied by a factor of 2 to give a standard scale of 0 to 100. Using a normalized 100 point scale allows it to remain consistent (by adjusting the factor) even as companies add/remove categories and items.

If you want to jump directly to the system first and then come back and read the text, click here.

The scoring for each item follows a simple but strict 3-level scale of 0 (below baseline), 1 (at baseline) or 2 (better than baseline). There are no fractional “in between” scores. For example, you must not score someone 1.5. You must pick either 1 or 2. This 3-options-only scale is meant to minimize vagueness. For the same reason, a wider scoring range like 1 to 5 (commonly seen in star rating systems) is not used. A score of 0 in an item is not neccessarily bad. If you are not seeing at least a few 0 scores for most employees, you have set your baselines for each item too low.

The baseline for each item is the same for everyone from the programmer-apprentice to the VP of Engineering. The baseline level — i.e. what quality of performance in that item rates a score of 1 — must be defined in advance for each item as unambiguously as possible. This can be done by senior management or by management consultants hired for this purpose. Doing this in consultation with the employees (who are to be rated) and clients/stakeholders is recommended.

The resulting total score is meant to be mapped to the employee’s level of seniority/rank for title and compensation. That means within a job functional area, employees at senior levels should score higher than employees at junior levels.

For example, a score of 81-100 could map to director/VP levels; 61-80 manager; 41-60 engineer/contributor; 21-40 junior level/apprentice. Since different functional areas — for example, software engineering and quality assurance testing — may have different pay scales, this score maps directly to rank/title, and those are mapped to salaries corresponding to the functional areas’ market rates.

You will notice that a lot of emphasis is given to leadership and management qualities. This is designed for the system to work across the wide range of skills from intern to VP. At first, this may seem like the system is unfairly skewed in favor of seniority and higher level employees. The system, however, is designed to favor skills and better level of performance in multiple areas.

The first four categories are described below. The fifth category is defined as discretionary/user-defined. CAREER-CLEAR is designed to be used in the real world, in a diversity of organizations and on a regular basis. The system won’t succeed if it is too rigid. On the other hand, the system must meet its goals of being fair, consistent and constructive for all employees. To accomodate and balance these goals, 20% of the criteria is meant to be user-defined at descretion of the manager within the fair, consistent and constructive guidelines.

It is inspired by systems described to be in use at Microsoft, Construx, FogCreek (Joel on Software) and Conde Nast Digital Technology. The latter was developed by Bobby Chowdhury, Brian Murphy, Janet Kasdan and Rajiv Pant.

The 5 categories are: Caliber, Leadership, Expertise, Role and Discretionary.

Caliber

This section measures the talent of the employee in general (non-technical) areas.

Scoring: Above Average=2, Average=1, Below Average=0. Add the score for each of the heuristics. Max Score=10 points.

  1. Ownership – Has identifiable long-term ownership of projects. This is a measure of the criticality, complexity and / or number of projects the employee has ownership in.
  2. Responsibility – Is consistently reliable in terms of deliverables and time.
  3. Communication – Communicates effectively with peers and other colleagues. Listens to and understands others’ viewpoints, challenges, needs and desires.
  4. Consistency – Is approachable, predictable, receptive and consistently applies good judgment in all interpersonal interactions in the work place.
  5. Innovative – Innovates and stays abreast of emerging technologies and finds ways to incorporate those technologies into systems.

Leadership

This section evaluates the positive influence the employee has on others.

Scoring: Above Average=2, Average=1, Below Average=0. Add the score for each of the heuristics. Max Score=10 points.

  1. Teacher, Coach & Motivator – Mentors others, makes great use of all information sharing tools available and is an active presenter. Rallies the troops and improves morale.
  2. Enabler – Empowers and enables others to succeed.
  3. Exemplary – Leads by example and goes above and beyond the ‘requirements’.
  4. Maturity & Humility – Embraces others’ solutions, even when incompatible with one’s own. Incorporates feedback from others to find the best solutions.
  5. Connector – Has familiarity with the ecosystem beyond one’s own projects. Functions as a hub which others are drawn to for a quick answer or a quick redirect towards an answer.

Expertise

This section quantifies the skills and experience of the employee related to the job function.

Scoring: Above Average=2, Average=1, Below Average=0. Add the score for each of the heuristics. Max Score=10 points.

  1. Fundamentals – Understands of the core technical concepts aligned with the given job function. This may include data structures & algorithms, testing, networking, etc.
  2. Breadth of Expertise – Is a subject matter expert and go-to person for many areas of technology.
  3. Pragmatic – Has a demonstrated ability to identify the best solution to balance what’s most theoretically ideal against what might be the most practical due to concerns about security, scalability, time to market pressures and cost.
  4. Automator – Consistently works to drive improvement in processes and systems.
  5. “Boy/Girl Scout Rule” – Leaves code and systems better off than they found them.

Role

This section enumerates the employee’s role and areas of contribution within the organization and beyond.

Scoring: Above Average=2, Average=1, Below Average=0. Add the score for each of the heuristics. Max Score=10 points.

  1. Strategic – Provides sound vision for broad, long-term goals.
  2. Tactical – Oversees many projects or activities that move the organization towards strategic goals.
  3. Operational – Steers day-to-day processes that achieve the tactical goals.
  4. Executional – Implements repetitive tasks that make up the operational processes. A measure of quantity and more importantly, quality of work produced.
  5. Industry Recognition – Is recognized externally as a leading technologist through contributions to open source projects, blogging, writing books, participating in technical committees, speaking at conferences, etc.

The following are some examples to illustrate strategic, tactical, operational and executional.

  • Strategic: “Our new Web application will become one of the top three, preferably #1, in its space in the US market.”
  • Tactical: “We will hire a small team to develop and launch it. An office location would be required to meet partners and clients. We will also need additional funding.”
  • Operational: “We will hire a great software architect, 2 expert engineers, set up office in Manhattan, and have goal of reaching $500,000 in additional funding by the end of the year.”
  • Executional: “The architect designs the Web application in collaboration with the engineers. The engineers and the architect implement it. The team then makes it live and markets it via social networks and other channels.

Discretionary

Please be sure to adhere to the goals of being fair, consistent and constructive for all employees in using this discretionary section. This category is not meant to be used to justify favoritism nor meant to be arbitrary. Good descretion comes from rational, reasonable and relevant criteria. Place items here that are not already covered in other categories and are important to your organization. A good rule of thumb is that you must be able to justify any criteria you apply here.

Scoring: Above Average=2, Average=1, Below Average=0. Add the score for each of the heuristics. Max Score=10 points.

  1. discretionary / user-defined item 1
  2. discretionary / user-defined item 2
  3. discretionary / user-defined item 3
  4. discretionary / user-defined item 4
  5. discretionary / user-defined item 5

CAREER-CLEAR version 2.1 2010-Oct-13

Checklist for Migration of Web Application from Traditional Hosting to Cloud

In 2010, Cloud Computing is likely to see increasing adoption. Migrating Web applications from one data center to another is a complex project. To assist you in migrating Web applications from your hosting facilities to cloud hosting solutions like Amazon EC2, Microsoft Azure or RackSpace’s Cloud offerings, I’ve published a set of checklists for migrating Web applications to the Cloud.

These are not meant to be comprehensive step-by-step, ordered project plans with task dependencies. These are checklists in the style of those used in other industries like Aviation and Surgery where complex projects need to be performed. Their goal is get the known tasks covered so that you can spend your energies on any unexpected ones. To learn more about the practice of using checklists in complex projects, I recommend the book Checklist Manifesto by Atul Gawande.

Your project manager should adapt them for your project. If you are not familiar with some of the technical terms below, don’t worry: Your engineers will understand them.

Pre-Cutover Migration Checklist

The pre-cutover checklist should not contain any tasks that “set the ship on sail”, i.e. you should be able to complete the pre-cutover tasks, pausing and adjusting where needed without worry that there is no turning back.

  • Set up communications and collaboration
    • Introduce migration team members to each other by name and role
    • Set up email lists and/or blog for communications
    • Ensure that appropriate business stakeholders, customers and technical partners and vendors are in the communications. (E.g. CDN, third-party ASP)
  • Communicate via email and/or blog
    • Migration plan and schedule
    • Any special instructions, FYI, especially any disruptions like publishing freezes
    • Who to contact if they find issues
    • Why this migration is being done
  • Design maintenance message pages, if required
  • Setup transition DNS entries
  • Set up any redirects, if needed
  • Make CDN configuration changes, if needed
  • Check that monitoring is in place and update if needed
    • Internal systems monitoring
    • External (e.g. Keynote, Gomez)
  • Create data/content migration plan/checklist
    • Databases
    • Content in file systems
    • Multimedia (photos, videos)
    • Data that may not transfer over and needs to be rebuilt at new environment (e.g. Search-engine indexes, database indexes, database statistics)
  • Export and import initial content into new environment
  • Install base software and platforms at new environment
  • Install your Web applications at new environment
  • Compare configurations at old environments with configurations at new environments
  • Do QA testing of Web applications at new environment using transition DNS names
  • Review rollback plan to check that it will actually work if needed.
    • Test parts of it, where practical
  • Lower production DNS TTL for switchover

During-Cutover Migration Checklist

  • Communicate that migration cutover is starting
  • Data/content migration
    • Import/refresh delta content
    • Rebuild any data required at new environment (e.g. Search-engine indexes, database indexes, database statistics)
  • Activate Web applications at new environment
  • Do QA testing of Web applications at new environment
  • Communicate
    • Communicate any publishing freezes and other disruptions
    • Activate maintenance message pages if applicable
  • Switch DNS to point Web application to new hosting environment
  • Communicate
    • Disable maintenance message pages if applicable
    • When publishing freezes and any disruptions are over
    • Communicate that the Web application is ready for QA testing in production.
  • Flush CDN content cache, if needed
  • Do QA testing of the Web application in production
    • From the private network
    • From the public Internet
  • Communicate
    • The QA testing at the new hosting location’s production environment has passed
    • Any changes for accessing tools at the new hosting location
  • Confirm that DNS changes have propagated to the Internet

Post-Cutover Migration Checklist

  • Cleanup
    • Remove any temporary redirects that are no longer needed
    • Remove temporary DNS entries that are no longer needed
    • Revert any CDN configuration changes that are no longer needed
    • Flush CDN content cache, if needed
  • Check that incoming traffic to old hosting environment has faded away down to zero
  • Check that traffic numbers at new hosting location don’t show any significant change from old hosting location
    • Soon after launch
    • A few days after launch
  • Check monitoring
    • Internal systems monitoring
    • External (e.g. Keynote, Gomez)
  • Increase DNS TTL settings back to normal
  • Archive all required data from old environment into economical long-term storage (e.g. tape)
  • Decommission old hosting environment
  • Communicate
    • Project completion status
    • Any remaining items and next steps
    • Any changes to support at new hosting environment

The checklists are also published on the RevolutionCloud book Web site at www.revolutioncloud.com/2010/01/checklists-migration/ and on the Checklists Wiki Web site at www.checklistnow.org/wiki/IT_Web_Application_Migration

Benefits of Using Real-Time Group Chat (IRC) in Technology Operations Management

When a team of engineers is dealing with a real time incident, such as a system outage or troubleshooting a problem, having good communications is critically important. The appropriate communications tool can make a world of difference in dealing with the issue and learning from it afterwards. As important as engineering is, lack of good communications is what often gets tech teams in trouble.

You should enable real-time communication in certain collaborative tasks. This will reduce unnecessary email traffic and clutter, enable people to to focus better on their tasks,and minimize time wasted in bringing each other up to speed

When multiple people are working together in real-time on a near term collaborative task, such as:

  • Troubleshooting
  • Build and deployment
  • Web application migration
  • Upgrade or maintenance
  • QA testing

Many companies use a phone conference and/or email to assist in real-time while the collaborative activity above is ongoing.

Since Email is not instantaneous and real-time the way a group chat application is, and since email is not a suitable medium for quick questions, and quick one-line responses, some companies also use a real-time group chat tool like IRC to enable and facilitate real-time conversation.

Benefits of using IRC or a real-time group chat tool are:

  • Tech managers, project managers, crisis managers and new tech people joining the effort can quickly catch up with what has been going on (in any level of detail they want) by reading the IRC history transcript so far. This is a much faster and efficient way than using email or pulling someone away to talk in person asking what has been going on. (If email were to be used instead of IRC, a new person joining in would have missed the previous emails on the topic.)
  • When an engineer working on such a collaborative task steps away for a while and comes back, they can quickly catch up on what transpired while they were away by reading the IRC history transcript.
  • Email is not cluttered by short back and forth messages with lots of text to read and filter
  • The IRC transcript can be used for the incident retrospective (“post-mortem”).
  • Unlike a phone-only conference, the IRC transcript can be read and analyzed to learn lessons from this incident. For example:
    • Analyze what problems the team ran into
    • Analyze what worked and what didn’t
    • Analyze how well people collaborated and communicated
    • Timelines of events

I can personally attest to the above benefits. Over the past 15+ years, my development and operations teams in different companies have regularly used IRC to great advantage.

Tools like Wikis and blogs are great for collaboration, documentation and sharing information on projects. An group chat like IRC is an indispensable tool for real-time collaboration.

Save Money On Hosting & CDN By Optimizing Your Architecture & Applications

If you manage technology for a company that has a large Web presence, it is likely that a large percentage of your total technology costs is spent on the Web hosting environment, including the Content Delivery Network (CDN, e.g. Akamai, LimeLight, CDNetworks, Cotendo). In this article, we discuss some ways to manage these costs.

Before we discuss how to optimize your architecture and applications to have economical and the optimally low hosting expenses, let us develop a model for comprehensively understanding a site’s Web hosting costs.

Step 1. Develop a model for allocating technology operations & infrastructure costs to each Web site/brand

Let us assume for this example that your company operates some medium to large Web sites and spends $100K/month on fully managed1 origin2 Web hosting and another $50K/month on CDN. That means your company spends $1.8MM/year on Web sites hosting.

It is important to add origin Web hosting and CDN costs to know your true Web hosting costs, especially if you operate multiple Web brands and need to allocate Web hosting costs back to each. For example, let us assume you have two Web sites: brandA.com, a dynamic ecommerce site costing $10K/month on origin hosting plus $2K/month on CDN; and brandB.com, serving a lot of videos and photos costing $5K/month on origin hosting plus $19K/month on CDN. In this example, brandA.com actually costs $12K/month, which is half the hosting cost of brandB.com, $24K/month. Without adding the CDN costs, you may mistakenly assume the opposite that brandA.com costs twice as much to host as brandB.com. Origin hosting and CDN are two sides of the same coin. We recommend that you manage them both together from both technology/architecture and budget perspectives.

Then you add the costs of third-party vendor provided parts of the site rented in the software-as-service model. Next, add licensed software costs used at your hosting location. Let us assume that brandA.com also has:

  • some blogs hosted at wordpress.com for $400/month
  • Google Analytics for $0/month
  • Other licensed platform/application software running on your servers billed separately from the managed hosting. Let us assume brandA.com’s share of that is $1,000/month.

So your Web hosting and infrastructure costs for brandA.com would be $13,400/month. That’s $160,800/year.

Assuming that many of your Web sites share infrastructure and systems management & support staff at your Web hosting provider, you may not have a precise allocation of costs to each brand. That’s ok: It doesn’t need to be perfect nor a staff-time consuming calculation every month. Work with your hosting provider and implement a formula/algorithm that provides a reasonably good breakup and needs to be changed only when there is a major infrastructure change.

Side Note: In order to stay competitive, adapt to changes in the market and meet changing customer sites, brandA.com also needs to do product and software development on a regular basis. However, that’s beyond the scope of this discussion. Managing ongoing product and software development costs for brandA.com could be the subject of another article.

Step 2. Regularly review the tech operations costs for each brand and make changes to control costs

Every month, review your tech operations costs for your business as a whole and for each brand. Make changes in technology and process as needed to manage your expenses. If you don’t review the expenses on a monthly basis, you run the risk of small increases happening in various places every month that add up to a lot.

Without active management done on a monthly basis, brandA.com could creep up from $13,400 to $16,000 the next month and $20,000 the month after. That $1.8MM you were expecting to spend on hosting for the year could turn out to be $2.4MM.

So what does such active management include?

Monitor and manage your bandwidth charges. This is one to keen an eye on. If you bandwidth charges go over your fixed commit, your expenses can quickly blow over budget. If you find bandwidth use increasing, investigate the cause and make course corrections. In some cases, this may simply be due to expected increase in traffic, but in other cases it could be avoided. A related article about taking advantage of browser caching to lower costs provides some tips.

Request your engineers to monitor and manage your servers resource usage (CPU, memory) so that the need for adding hardware can be avoided as much as possible. Enable and ensure regular communications between your technology operations team and your software development team so that software developers are alerted of any application behavior that is consuming more than expected server resources. Give the software developers time to resolve such issues when found.

Review the invoice details to make sure you understand and are in agreement with the invoice. A Web hosting bill can be very detailed and complex to understand. Do not hesitate to ask the hosting provider to explain and justify anything that you don’t understand. Don’t just assume the bills are always correct. They could (and occasionally will) be mistakes in the bills. Be sure to dispute these with the vendor in a respectful and friendly way.

These are just some examples. Please feel welcome to make more suggestions via comments on this post.

The time (and thus money invested) in controlling tech operations cost will be well worth the savings / avoidance of huge cost increases.

Keep abreast of evolving technologies and cost saving methods. Periodically review these with your vendor(s).

Cloud computing is exciting as a technology, and it is equally exciting as a pricing model.

If you find market conditions have changed drastically, request your vendor to consider lowering rates/prices even if you are locked into a contract. You don’t lose anything by asking and the vendor’s response will be an indicator of their customer service and long term business interest with you.

  1. Fully managed Web hosting includes network & hardware infrastructure, 24×7 staff and real estate []
  2. The origin part of your Web hosting environments includes the network and server infrastructure at your hosting facility location(s) where your Web applications and installed and running. It could be in-house data centers or at providers such as RackSpace, IPSoft or Savvis []

Save Your Company Money In Monthly Bills Using Browser Caching

Bandwidth MoneyCompanies that operate heavily trafficked Web sites can save thousands of dollars every month by maximizing their use of browser-side caching.

Large Web sites pay for bandwidth at their Web hosting data center and also at their content delivery network (CDN, e.g. Akamai, LimeLight, CDNetworks). Bandwidth costs add up to huge monthly bills. On small-business or personal Web sites where bandwidth costs don’t go over, this is not an issue, but on large Web sites, this is important to address and monitor.

Companies operating large Web sites often have complex situations like the following:

  • An comprehensive and deep understanding of all technology cost drivers and their impacts on each other. For example, a programmer may think they are saving the company money by architecting an application in a way that it requires minimal hardware servers, but not realize that the same design actually results in even higher costs elsewhere like CDN bills.
  • Busy development teams working on multiple projects on tight timelines. This results in compromises between product features/timelines and technical/architectural best practices/standards.
  • Web content management and presentation platform(s) that have evolved over the years
  • Staff churn over the years and an uneven distribution of technical knowledge and best practices about the Web site(s)
  • The continued following of some obsolete “best practices” and standards that were established long ago when they were beneficial, but are now detrimental.

Tech teams at complex Web sites would likely find upon investigation that their Web sites suffer from problems that they either didn’t know about or didn’t know the extent of the damage they are causing.

One such problem is that certain static objects on the company’s Web pages that should be cached by the end users’ Web browsers are either not cached by the browsers at all or not cached enough. Some objects are at least cached by the CDN used by the company, but some perfectly cacheable objects are served all the way back form the origin servers for every request! An unnecessarily costly situation that can be avoided.

In addition to wasteful bandwidth charges resulting in high monthly bills, there are also other disadvantages caused by cacheable objects being unnecessarily served from origin servers:

  • They slow down your Web pages. Instead of the browser being able to use local copies of these objects, it has to fetch them all the way from your origin servers.
  • Unnecessary load on origin Web servers and network equipment at Web hosting facility. This can be an especially severe problem when a Web site experiences a sudden many-fold increase in traffic caused by a prominent incoming link on the home page of a high traffic like Yahoo, MSN or Google.
  • Additional storage in logs at the origin Web hosting locations’ servers and other devices.
  • Unneeded processing and work the origin servers, network equipment, CDN, the Internet in the middle all the way up to the client browsers have to do to transfer these objects from origin to the end user’s browser. Be environmentally friendly and avoid all this is costly waste.

The increase in bandwidth, load on servers and networking equipment and log file storage space increases caused by a few objects on Web pages being served by origin servers for every request may mistakenly seem like an insignificant problem, but little drops of water make the mighty oceans. Some calculations will show that for large Web sites, the cost of this can add up to tens of thousands of dollars a month in bandwidth costs alone.

How should companies operating large Web sites solve this problem?

For technology managers:

  • Make it a best practice to maximize the use of browser-side caching on your Web pages. Discuss this topic with the entire Web technology team. Awareness among the information workers is important so that they can keep this in mind for future work and also address what’s already in place. Show the engineers some sample calculations to illustrate how much money is wasted in avoidable bandwidth costs: that will prove this is not an insignificant issue.
  • If this problem is widespread in your Web site(s), make the initial cleanup a formal project. Analyze how much money you’d save and other problems you’d solve by fixing this and present it to the finance and business management. Once you show the cost savings, especially in this economy, this project will not be hard to justify.

For engineers:

  • Read the article about optimizing caching at Google Code for technical details on how to leverage browser and proxy caching. It explains the use of HTTP headers like Cache-Control, Expires, Last-Modified, and Etag.
  • Review any objects that are served by origin servers every time for legacy reasons that may now be obsolete.
  • Combine some JavaScript files commonly used by your Web pages so that the one unified and shared file would have higher caching probability. Do the same with external CSS style sheets.
  • Study a good book on Web site optimization like Even Faster Web Sites: Performance Best Practices for Web Developers. Share these recommendations and hold a discussion with your tech and production colleagues.

Build and maintain a cohesive leadership team

For an executive, having a management team of people who are good at their jobs and work well with each other is one of the most important factors that lead to success together. Observing a number of successful projects, I realized that it is critical that your management team members care for each other, work well together and give to each other. Their sincere collaboration is far more important than their individual strengths.

I began to write this article impressed by how well the management team comprising of my direct reports functioned, collaborating with each other towards shared success. I was pleasantly surprised by how these directors shared responsibilities, how closely they worked with people in each other’s teams and how comfortably they gave credit to each other. When conflicts arose between them, they frankly, respectfully and nicely expressed them to each other, often one-on-one. Every time, they resolved them quickly and came out with a closer professional relationship. They actively and regularly talked to quell any turf battles between each other’s departments before they could form.

They had a wonderful professional relationship. They barely knew each other outside of work, having busy personal lives with their families on most evenings and weekends. I felt that my management team and I were like a work-family, sticking together through good and bad times, always believing that our success comes as a team.

When you manage and organize your company or your department, spend time multiple times a week with your direct reports together so that you all work well with each other towards shared success. In turn, they should ensure that their direct reports care about each other and collaborate. If you have, say five direct reports, make sure that just the six of you get together in a room to work openly and collaboratively at least twice a week (assuming you are in the same geographic location). The forum for this need not be always a staff meeting, it could be a working session on a project.

I was struggling to come up with suitable words to describe this and its importance. While reading the book The Four Obsessions of an Extraordinary Executive: A Leadership Fable by Patrick Lencioni, I found that the first discipline described in the story talks exactly of this and hence is the title of this article. The book is written as a fictional story that teaches leadership lessons. It is easy to read being under 200 pages in large typeface which you can read in one evening. I highly recommend it.

Organizing a Digital Technology Department of Medium Size in a Media Company

There are many good ways to organize your technology department. This article presents some of them. It is written for a CTO or VP Technology leading a medium size department looking for suggestions on organizing or reorganizing your Digital (Web, Mobile) technology department. It is best suited for you if your organization has the following characteristics:

  • You manage software engineering, implementation and technology operations for 3 or more digital brands.
  • Yours is a medium size technology department with somewhere between 20 to 100 technology staff.
  • Internal corporate IT functions such as desktop support, telecommunications services and internal business systems are beyond the scope of this article.

The Venn diagram below presents one model of organizing your department into 3 sub-departments.

Web Technology Department Organization

Web Technology Department Organization Venn Diagram Illustrating Purposeful Overlap Among Sub-Departments

Some CTOs in smaller companies organize their technology departments as 2 sub-departments: Software Engineering and Technology Operations. Software engineering is the function that is responsible for developing and implementing Web & Mobile application software. Technology Operations is responsible for running, maintaining and supporting the Web applications.

If you operate 1 or 2 digital brands (Web sites), having these 2 sub-departments is a good approach. For 3 or more Web sites, organizing Software Engineering into Site Engineering and Platform Engineering has some benefits.

Site Engineering is focused on working on the Web sites’ direct projects. Its work includes

  • Small and large projects for adding or changing functionality on the Web sites
  • Bug fixes on the Web site applications

Platform Engineering is typically smaller than the other two organizations and typically includes functions like:

  • Architecture across sites
  • Shared applications across sites
  • Common libraries across sites
  • Research & Development (R&D)

Technology Operations includes functions such as:

  • Systems & Applications Administration
  • Infrastructure Management
  • 24×7 Tech Support
  • Builds & Configuration
  • Release Management
  • Testing & Quality Assurance (QA)1
  • Technical Analysis
  • Technical Project Management
  • Budget Management

These three departments have purposeful overlap of responsibilities as illustrated in the Venn diagram above. That helps minimize the chances of the departments becoming silos with walls between them. For success, it is important that your entire department functions as one integrated unit. Some shared goals & responsibilities are required for mutual success.

DevOps2 is a set of processes, methods and systems for communication, collaboration and integration between departments for Development (Applications/Software Engineering) and Technology Operations. Its purpose is to facilitate meeting business goals by producing good quality software products and services in a timely fashion. It is where development methodologies (such as agile software development) occur in an organization with separate departments for Development, Technology Operations and Quality Assurance. Development and deployment activities that need deep cross-departmental integration with Technology Support or QA require intimate multi-departmental collaboration.3

DevOps

llustration showing DevOps as the intersection of Development (Software Engineering), Technology Operations and Quality Assurance (QA)

To make this work, you need 3 directors who head up these departments who work well together, collaborate often and are not sensitive about their turf. They should know that a successful technology manager is not an individual-only contributor, but a great team player with peers. They should have strong goodwill among each other and welcome each other to work directly with their teams. Such a collaborative team is essential.

Article Updated: September 25, 2010

  1. QA can also be set up as an independent department. []
  2. WikiPedia entry on DevOps []
  3. Article: What is DevOps? []

Management Tip: Thank Your Employees For Jobs Well Done

If you supervise employees or are in a senior position relative to some others, make it a habit to thank employees when they do a good job.

Here are some tips for effective appreciation of employees’ work:

Appreciation is good even when it is an expected part of their duties. If the work is good quality, thank the person.

Don’t trivialize your thanks, however. Don’t thank an employee for just sending a meeting agenda or sending a recap of a meeting unless the agenda or recap they sent is so good that it impresses you. (An exception to this rule would be if in the company most people forget to send meeting recaps and this person did and you are working to encourage this good habit.)

Don’t send an email just saying “thank you” and nothing else. Add at least a sentence or two explaining why you appreciate what the person did.

Don’t always send an email. Mix it up. Sometimes walk up to the employee and thank them in person. If they are in a remote office location, call them by phone to tell them.

When thanking someone by replying to an email they have sent, send a thank you note directly to the person. Don’t reply-all unless it is a major above & beyond accomplishment that deserves public congratulations. When you do send a public thank you to an employee with other people cc’d, take the time to write at least a paragraph or a few bullet points mentioning the benefits of the accomplishment.

Mention by name the person(s) when you thank people. Don’t just thank “the team”, or “all who worked on this project” out of laziness instead of calling by name the people you are thanking, unless you have a good reason for not naming names.