We'll see | Matt Zimmerman

a potpourri of mirth and madness

Scaling Human Systems: Management

This is part 6 in a series on organizational design and growth.

“The change from a business that the owner-entrepreneur can run with “helpers” to a business that requires management is a sweeping change. […] One can compare the two kinds of business to two different kinds of organism: the insect, which is held together by a tough, hard skin, and the vertebrate animal, which has a skeleton. Land animals that are supported by a hard skin cannot grow beyond a few inches in size. To be larger, animals must have a skeleton. Yet the skeleton has not evolved out of the hard skin of the insect; for it is a different organ with different antecedents. Similarly, management becomes necessary when an organization reaches a certain size and complexity. But management, while it replaces the “hard-skin” structure of the owner-entrepreneur, is not its successor. It is, rather, its replacement.”

Peter Drucker

What it means

Management is the art of enabling people to cooperate in achieving shared goals. I’ve written elsewhere about what management is not. Management is a multifaceted discipline which is centered on people and the environment in which they work.

Why it’s important

In very small organizations, management can be comparatively easy, and happen somewhat automatically, especially between people who have worked together before. But as organizations grow, management becomes a first-class concern, requiring dedicated practice and a higher degree of skill. Without due attention to management, coordination becomes excessively difficult, working systems are outgrown and become strained, and much of the important work described in this series just won’t happen. Management is part of the infrastructure of the organization, and specifically the part which enables it to adapt and change as it grows.

Old Status Quo

People generally “just do stuff”, meaning there is little conscious understanding of the system in which people are working. If explicit managers exist, their jobs are poorly understood. Managers themselves may be confused or uncertain about what their purpose is, particularly if they are in such a role for the first time. The organization itself has probably developed more through accretion than deliberate design.

New Status Quo

People work within systems which help coordinate their work. These systems are consciously designed, explicitly communicated, and changed as often as necessary. Managers guide and coordinate the development and continuous improvement of these systems. The role of managers in the organization is broadly understood, and managers receive the training, support and coaching they need to be successful.

Behaviors that help

  • It can be helpful to bring more experienced managers into the organization at this stage, especially if there isn’t much management experience in house.
  • Show everyone in the organization (including managers themselves) what managers do and why it matters.
  • Consider very carefully whether someone should become a manager.
  • If someone does take on a management role, treat this as a completely new job, which requires handing off their existing responsibilities and learning a new discipline. Don’t treat it as just an extension of their work. Write a new job description and discuss it up front.

Obstacles that stand in our way

  • Management misbeliefs
  • Granting “promotions” to management roles as rewards for performance
  • Many people, when they experience what management work is like, don’t enjoy it and aren’t motivated by it. It can be hard to predict when this will be the case, and people can feel “trapped” in a management role that they don’t want. Make sure there are mechanisms to gracefully transition out of roles that don’t fit for the people holding them.

Written by Matt Zimmerman

November 20, 2013 at 14:40

Management: a rant

You keep using that word. I do not think it means what you think it means. -Inigo Montoya

Having worked in full-time management positions for some years now, I am increasingly convinced that management is widely misunderstood as a role, as a discipline and as a field, and that this makes a lot of lives more difficult and stressful than necessary. It is the subject of much speculation and misbelief, and I’ve chosen a few of my favorite examples to deconstruct here.

Misbelief #1: management is what managers do

I’ve noticed a trend among a certain class of companies, whose employees will tell anyone who will listen that there is no “management” in their organization, they never plan to have any, and neither should you. I think these statements are respectively a lie, a naïve belief, and a piece of bad advice. Usually, these companies are just a few years old and relatively small, most of the people in the company have been there for less than a year, and the speaker is trying to persuade us what a unique and innovative company they work for because nobody there is a “manager”. They invariably have not read The Tyranny of Structurelessness.

Management is the practice of enabling people to effectively cooperate. A manager is someone whose job is to do that. It’s that simple. It usually involves tasks such as sharing information, agreeing on a course of action, dividing up work, and figuring out what to do when there’s a problem. They’re things that every team needs to do, whether anyone is designated a “manager” or not. Teams can function without managers, but they can’t function properly without management. Someone (or everyone) has to do the work to make cooperation possible.

Modern management is a specialized discipline, which draws on a broad range of skills in communication, psychology, empathy, problem-solving, leadership, and more. These skills aren’t unique to managers, but it often makes sense to designate certain people to do more of the management work, on behalf of the team. By devoting more of their time and attention to it, they free other members of the team to focus on other tasks. They can act as a coordinator to help the team stay in sync, and by focusing on this job, they may be able to do a better job of it, and acquire a higher level of skill through practice and study. But it remains an inherently collaborative practice.

Misbelief #2: management is about telling people what to do

There are many different varieties of management, each of which is oriented toward a particular type of team or organization. Factories are managed differently from design studios, large companies are managed differently from small companies, and every team has its own distinct management style which arises from the unique group of people involved. Some managers are specialists in a particular type of management, while others are more generalists.

The “telling people what to do” style of management is called “command and control”. It’s characterized by authority, hierarchy, and strict adherence to protocol. It’s widely employed by military organizations, and by the managers we see in television and film. It has some advantages and disadvantages, which I won’t discuss here. My point is that it is just one example, but this example is used to represent the general concept of management. Self-organization, where no one in particular is responsible for group decisions, is another, quite different, style of management.

Small, self-organizing teams are capable of amazing feats of productivity. They’re less difficult to manage because they’re comparatively simple, and so simple tools and techniques work well. Everyone can be fully aware of what everyone else is doing, and new information propagates quickly throughout the team. But as the team or organization grows, it will often outgrow this way of working, and needs to adapt. There is no single management approach which works universally well.

Misbelief #3: management is a promotion

You know the story. When an employee is successful within their area of expertise, someone will eventually offer them a management role as a “reward” for their good work. This is utter nonsense. Management is not a promotion: it’s a career change. It means starting over as a beginner in a new discipline and learning from the ground up. Domain expertise is important, as a manager needs to understand the work of the other people on their team, but it is no longer paramount. The team, the human system, becomes their focus.

When organizations fail to provide career advancement within a discipline, people may turn to management as “the only way to get promoted”, only to discover that they are completely unprepared for this new field, and often their new job when they realize what they’ve gotten into.

If someone were “promoted” from a position as a financial analyst to a new job as a biochemist with no training or expertise, we would probably find this bizarre. But this is analogous to what happens to new managers all the time, and has become almost standard practice in many organizations and industries.

So what?

Management is misunderstood. So are science, engineering, and many other fields. What does it matter?

“People leave managers not companies…in the end, turnover is mostly a manager issue,”

– Marcus Buckingham & Curt Coffman, First, Break All the Rules

This mythology leads to massive organizational dysfunction, making it harder for everyone to do their jobs. It virtually guarantees incompetent management, which is a scourge on anyone who is exposed to it. It ruins days, weeks, jobs and careers. It leads talented people to leave companies, and it drives them out of their chosen professions.

I recommend that we stop denigrating and ignoring management, and start doing a better job of it.

Written by Matt Zimmerman

November 7, 2013 at 13:24

Posted in Uncategorized

Tagged with ,

Scaling Human Systems: Roles and Responsibilities

This is part 5 in a series on organizational design and growth.

What it means

Each of us has a job to do, probably more than one, and our teammates should know what they are.

Why it’s important

Roles are a kind of standing commitment we make to each other. They’re a way of dividing up work which is easy to understand and simple to apply. Utilizing this tool will make it easier for us to coordinate our day to day work, and manage the changes and growth we’re going through.

Old Status Quo

Roles are vague or nonexistent. Management roles in particular are probably not well understood. Many people juggle multiple roles, all of which are implicit. Moving to a new team means learning from scratch what other people do. People take responsibility for tasks and decisions largely on a case-by-case basis, or based on implicit knowledge of what someone does (or doesn’t do). In many cases, there is only one person in the company who knows how to perform a certain function. When someone leaves or goes on vacation, gaps are left behind.

New Status Quo

Each individual has a clear understanding of the scope of their job. We have a handful of well defined roles, which are used by multiple teams and have written definitions. People who are new or transfer between teams have a relatively easy time understanding what the people around them are doing. Many day to day responsibilities are defined by roles, and more than one person can fill that role. When someone leaves a team, another person can cover their critical roles.

Behaviors that help

  • Define project roles: when starting something new, make it explicit who will be working on it. Often this will be more than one person, often from different teams. For example, customer-facing product changes should have at least a product owner and an engineering owner. This makes it easy to tell if too many concurrent projects are dependent on a single person, which is a recipe for blockage.

  • Define team roles: Most recurring tasks should fall within a defined role. An owner of a technical service is an example of a role. An on-call engineer is an example of a time-limited role. There are many others which will depend on the team and its scope.

  • Define job roles: Have a conversation with your teammates and manager about what the scope of your job is, which responsibilities are shared with other members of the team and which are yours alone.

Obstacles that stand in our way

  • Getting hung up on titles as ego gratification. Roles are tools, not masters.

  • Fear that a role limits your options, locks you into doing one thing forever. Roles can be as flexible as we want them to be.

Written by Matt Zimmerman

August 27, 2013 at 17:05

Liberty and justice for all, but not in equal measure

200302020-001

As Americans we might like to believe that the US legal system is intended to protect all of our citizens.  Unfortunately, it doesn’t protect us all equally, and in fact disproportionately fails to protect the most vulnerable. We’re surrounded by instances of injustice related to gender, race and other axes of social privilege, and the machinations of law are not exempt. The state of Florida has recently provided an especially stark example in the application of its self-defense laws in two cases: Marissa Alexander and George Zimmerman. This example is notable because although there were many similarities between the cases, the outcomes were very different.

Alexander’s case was tried in May 2012 , Zimmerman’s in July 2013, both prosecuted by Florida state’s attorney Angela Corey. Both cases involved the use of firearms which were legally purchased and carried, and their owners were trained in their use. Both prosecutions cast the defendant as the aggressor, who could have avoided the confrontation. Both of the encounters were with unarmed persons. Both defenses were based on Florida self-defense laws, which include “stand your ground” laws justifying the use of deadly force without the obligation to retreat. Both shooters admitted to firing a single shot with the intent of defending themselves.

Beyond those similarities, each case had its own unique circumstances.

The events of Alexander’s case took place in her home. Her altercation was with her husband, Rico Gray Sr., who was under a restraining order following a conviction for domestic battery which put Alexander in the hospital.  After Gray threatened to kill her, Alexander retrieved a handgun from her car, returned to confront him, firing once. She was arrested and charged the same day. She had had no prior criminal record. A jury deliberated for just 12 minutes before convicting her. A judge sentenced her to 20 years in prison, in accord with mandatory minimums specified by law.  Gray, previously sentenced to probation for his earlier conviction, remains free.

Zimmerman,_George_-_Seminole_County_MugZimmerman’s shot was fired in his neighborhood, in an altercation with a teenager, Trayvon Martin, who was a guest in the community and walking by himself. The two were not acquainted. Zimmerman called police from his car, claiming that Martin appeared suspicious, and began to follow him. Some of the facts of their encounter remain in dispute, but that Zimmerman fired his gun is not in question. Afterward, Zimmerman was detained by police, questioned and released the same night without being arrested or charged. Following a public outcry, a new investigation was launched and two months later he was arrested and charged. He had been previously arrested and charged with assaulting a police officer, but the charges were later dropped. After 16 hours of deliberation, the jury found Zimmerman not guilty, and he is free today.

The most striking difference between the two cases is where each defendant aimed their gun: George Zimmerman shot Trayvon Martin in the chest and killed him, while Marissa Alexander fired at a wall and injured no one. Alexander, a black woman, is in prison for scaring her abusive husband away, while Zimmerman, who killed a young black man, walks free. Alexander and Martin’s families have lost a mother and a son. The outcomes for the people involved in these cases could not be more different. Regardless of the merits of the relevant laws themselves, their radically unequal application is deeply troubling. What does this tell us about the relative value of these human lives, as weighed by the judicial system?

“The Florida criminal justice system has sent two clear messages today. One is that if women who are victims of domestic violence try to protect themselves, the `Stand Your Ground Law’ will not apply to them. […] The second message is that if you are black, the system will treat you differently.” – U.S. Rep. Corrine Brown

References

Written by Matt Zimmerman

July 14, 2013 at 13:56

Posted in Uncategorized

Tagged with ,

Scaling Human Systems: From individual achievement to teamwork

This is part 4 in a series on organizational design and growth.

What it means

Getting things done together, as a team, achieving more than the sum of our individual efforts.

Why it’s important

Once a company reaches a certain size, perhaps with a substantial customer base and ambitious goals for the future, it takes a lot more momentum to move it forward. No one person can do it alone. From product delivery, to strategic decision making, to customer service, no single individual has all of the knowledge, skills or time necessary to perform these functions at the scale and velocity necessary to make real progress. Cooperation is not just a good idea: it’s essential to success.

The most important system we’re building is the company itself: a system of people working together to achieve common goals.

Old status quo

In a startup, everyone embodies the spirit of the pioneer: passion, fortitude, individualism, daring, and the willingness to do whatever it takes to reach the goal. Individuals wear many hats: engineering, product management, marketing, customer support. We often don’t even think of them as distinct disciplines. Projects often depend on the resoluteness of a single Jill-of-all-trades to drive them to completion, and the culture may reward this kind of heroism. Thanks to the relatively small scale of the company and its customer base, one person working independently can effect significant change without much risk. If what was delivered wasn’t good enough, it could be discarded with no great loss.

New status quo

In a growing company, we still need a variety of different disciplines in order to reach our goals, in fact more than ever. A successful product needs to be conceived, validated, designed, built, documented, adopted, supported, and we need to confirm that it satisfies customers over time.

These elements are all essential, and each requires deep knowledge, expertise and practice. Good engineering + mediocre product management + inept marketing = total failure. It’s not realistic to expect one person to do all of these things and deliver consistently good results, but consistently good results are exactly what we need. The solution is to organize for individuals to do what they do best, and cooperate effectively together.

We also need to manage risk more carefully: our customers are depending on us. We have a lot more to lose now, and need to learn how to maintain forward progress while continuing to meet our customers’ expectations. Delivering sub-par products would damage our reputation and erode their trust.

Most of all, we need to be getting better at all of this over time, faster than our competition.

Behaviors that help

  • When embarking on a new project, recruit others to your cause instead of going it alone. In particular, consider which other teams you may need help from, and ask for their support from the beginning
  • Make your work visible to others (for example through a shared work board like Trello). Push context out of your head and into a workspace where others can see it.
  • When you run into trouble, make a point of asking for help early. Not only does this help build relationships, it also gets problems solved faster.
  • Agree on explicit shared priorities with your immediate teammates, and stick to them until the team agrees to change. Make sure that you’re working on things that matter to the people around you, and that they know that’s important to you.

Obstacles that stand in our way

  • Heroism. There is a place for heroism in growing organizations, but save it for responding to exceptional problems. Day-to-day work and objectives should not depend on one person’s heroism
  • Attributing too much credit to individuals. Feedback and praise are invaluable, but be careful not to excessively recognize and reward individuals for what are fundamentally team efforts. Few things will erode team spirit faster than rewarding someone for other people’s work.

Written by Matt Zimmerman

July 10, 2013 at 17:09

Scaling Human Systems: Making and keeping commitments

This is part 3 in a series on organizational design and growth.

What it means

Taking responsibility for action, and following through. Every time.

Why it’s important

Commitments are a cornerstone of collaborative teamwork. Knowing what to expect from others makes it possible to plan beyond your own work. If you aren’t sure whether a task will be completed, you carry that uncertainty as low-grade anxiety, which accumulates and creates cognitive load. You may even spend extra time checking back to make sure the need has been met.

Old status quo

Most work happens without an explicit commitment at all. Consistency is highly variable from one individual, team or circumstance to another. Tasks fall through the cracks, and we may not even realize it until much later.

New status quo

When something needs to get done, someone agrees to take responsibility for it. When this happens, everyone involved can trust that it will get done. When exceptions happen, we acknowledge them, and seek to understand what happened so that we can do better in the future.

Behaviors that help

  • Make commitments explicit: say “I will take care of that”, and record that commitment somewhere, preferably in a shared work space where everyone concerned can see it. For example, meetings should generally result in decisions and commitments to act. Write them down, and check back on the commitments at the next meeting to confirm that they’re done.

  • Hold yourself accountable: Follow through on your commitments visibly, e.g. reporting back the next time you see each other. If you’re unable to deliver for some reason, apologize and explain.

  • Hold others accountable: Expect these same behaviors from others.

  • Celebrate success: Thank others for following through on their commitments.

  • Learn from failure: When commitments are broken, it should be treated as an exception. Something went wrong, and we should work to prevent it in the future.

  • Balance your workload: Doing fewer things at a time will help you complete them much faster and more consistently. If you don’t have the bandwidth to take something on, say no. Make space for someone else to take it, or ask for help. If you are unsure about whether you can commit, you probably shouldn’t.

Obstacles that stand in our way

  • Fatigue: It’s hard to commit to something new if you already feel overwhelmed by the status quo.

    • Slack is an essential component of any change. If we’re 100% busy just keeping the lights on, we’re not getting better at what we do, and that road leads to mediocrity

  • Cynicism: If past commitments have been made but not kept, people can become cynical about setting goals and priorities.
    • This needs to change. Setting and achieving goals needs to be normal, respected and valued behavior in the company.
  • Unclear roles and responsibilities: This makes it hard to tell who should take responsibility for getting things done

Further reading

Written by Matt Zimmerman

June 27, 2013 at 18:12

Scaling Human Systems: From implicit to explicit

This is part 2 in a series on organizational design and growth.

What it means

Carefully communicating about what’s going on, and making fewer assumptions about what others know or think.

Why it’s important

As companies grow, many new people join who don’t have as much shared context. Many employees will also interact less frequently with each other, as we may not be able to maintain the same level of relationship with everyone. When we make assumptions about what our co-workers know, think or feel, we will increasingly be making errors of judgment. By replacing these tacit assumptions with explicit communication, we can help avoid mistakes and support cooperation within and between teams. Explicit communication is a vital tool for coming to agreement: by putting an agreement into words, we stand a better chance of understanding what we’re agreeing to, and can change it together.

Old status quo

We take a lot for granted. We know quality when we see it, but can’t explain it. New team members are expected to learn through osmosis or trial and error. Expectations are often ambiguous. Procedures live in our heads, and evolve in ad hoc fashion.

New status quo

We exercise care and thoughtfulness in our internal communications, telling others clearly what we expect and what they can expect from us. Key information and procedures are written down, and can be instantly shared with as many people as needed. We change them whenever we need to, and everyone concerned stays in the loop.

Behaviors that help

  • Document the basics: a new team member should be able to learn the essentials of how to do their work by referring to documentation. We don’t need to try to exhaustively document everything, but the essentials (e.g. for an engineer, how to deploy their changes) should be written and maintained, and where appropriate encapsulated in software tools
  • Make work visible: something as simple as a Trello board can offer a lot of insight into what’s going on in a team, both specifics (e.g. status) and meta information (this is how we get things done)
  • Define and track projects: a project has a beginning and an end and a scope. There will always be unknowns and changes, but there should be an explicit goal such that we can agree on when it’s “done”
  • Clarify roles and responsibilities: job roles are a tool to communicate with other people about what you do. By having a shared understanding of what roles we occupy, we can more easily divide up responsibilities and anticipate each other’s contributions.
  • Listen actively: “is this what you meant?” “who is taking responsibility for making that happen?” “do we have agreement on this point?”

Obstacles that stand in our way

  • Fear of process: Tiny companies can get by with very little structure in their operations, and may become attached to this as part of the “culture”. As they grow, this is less and less true. Process doesn’t mean bureaucracy! A process is just a description of the way things work. It doesn’t have to be rigid or foolish. The worst kinds of process are those that only exist in people’s heads, and are divergent from each other.

Written by Matt Zimmerman

June 25, 2013 at 17:09

Scaling Human Systems: Alignment

This is part 1 in a series on organizational design and growth.

An important lens for thinking about organizations at this stage of growth is alignment. In an organization which is aligned, the efforts of different people and teams all contribute to forward progress in a shared direction. If two teams are pulling in opposite directions they may make little progress despite great effort, and quickly become frustrated. To take an obvious example, if a marketing team is targeting an audience of large enterprises while the product being developed is only suited for small businesses, the end result of both teams doing a good job will be a failure (i.e. unhappy customers).

It’s important to note that alignment does not imply sameness. Different teams within an organization can function and behave very differently while still being strongly aligned with each other.

When an organization is small, alignment comes naturally. Everyone has some visibility on what everyone else is doing, and when something doesn’t line up, the people involved can talk it over and resolve the issue relatively easily. But as the organization grows, the propensity for misalignment increases, and these situations become much more difficult and time-consuming to resolve. The metaphor of the right hand, which doesn’t know what the left hand is doing, seems like something that would only happen in larger companies, but it begins much earlier, especially when the company goes through a period of rapid growth. Critical infrastructure, such as communication tools and patterns, lags behind the accelerating needs of the people involved, creating a surprising distance between teams.

Organizational alignment is a critical part of scaling successfully. With alignment, growth and momentum are assets. Without it, they are liabilities.

Further reading: The Advantage: Why Organizational Health Trumps Everything Else in Business

Written by Matt Zimmerman

June 20, 2013 at 12:32

Scaling Human Systems: Organizational Design and Growth

This is the beginning of a series of articles about the challenges of growing an organization. I’m writing them to share some principles that I’ve derived from my own experience, as well as many valuable discussions with friends and colleagues, about helping companies grow from being quite small (say, 1-50 employees) to less small (100-500).

Every organization is unique, but all organizations face some common challenges as they grow. Human systems are incredibly complicated, and require frequent adjustment like any complex system. Any two organizations will have many important differences—such as their culture and market situation—which can (and should) influence their growth and development.

For this reason, I believe there are few if any hard and fast rules, and organizational design patterns can be difficult to translate from one organization to another. One organization’s solution can be another’s problem. Even when there seems to be a perfect fit, the process of implementing organizational change can be its own challenge

Even so, I think there is much to be learned by comparing different organizations, and much inspiration to be found in their successes and failures. Two organizations merit specific mention here, as sources of inspiration for me: Canonical, where I worked as Ubuntu CTO from near inception to when it reached nearly 500 people, and Heroku, where I currently serve as VP Engineering as it grows beyond 100 people.

Several of them share a common form:

  • What it means – a short conceptual overview
  • Why it’s important – an explanation of why this particular change is important at this juncture
  • Old status quo – what things looked like when the organization was smaller
  • New status quo – what things should look like for the next stage of growth
  • Behaviors that help – practical suggestions for how to work toward the new status quo
  • Obstacles that hold us back – anti-patterns that prevent progress

Table of contents:

Written by Matt Zimmerman

June 20, 2013 at 12:32

Decoding a .mobileconfig file containing a Cisco IPsec VPN configuration

When someone wants to give you access to a Cisco VPN, they might give you a .mobileconfig file. This is apparently used by MacOS and iOS to encapsulate the configuration parameters needed to connect to a VPN. You should be able to connect to it with open source software (such as NetworkManager and vpnc) as long as you have the right configuration. Some helpful soul has tried to give you that configuration, but it’s wrapped up in an Apple-specific container. Here’s how you rip it open and get the goodies.

File format

A .mobileconfig appears to contain:

  1. Some binary garbage which is safe to ignore
  2. An XML document containing the good bits, i.e.:
    1. The “local identifier” (i.e. IPsec group name)
    2. The “remote address” (i.e. IPsec gateway host)
    3. The shared secret (base64 encoded)
  3. Some more binary garbage which is safe to ignore

…and it looks like this:

<plist version="1.0">
<dict>
  <key>PayloadContent</key>
  <array>
    <dict>
      <key>IPSec</key>
      <dict>
        <key>AuthenticationMethod</key>
        <string>SharedSecret</string>
        <key>LocalIdentifier</key>
        <string>LOCAL_IDENTIFIER_HERE</string>
        <key>LocalIdentifierType</key>
        <string>KeyID</string>
        <key>RemoteAddress</key>
        <string>REMOTE_ADDRESS_HERE</string>
        <key>SharedSecret</key>
        <data>
        BASE64_ENCODED_SHARED_SECRET_HERE
        </data>
      </dict>
      <key>IPv4</key>
      <dict>
        <key>OverridePrimary</key>
        <integer>0</integer>
      </dict>
      <key>PayloadDescription</key>
      <string>...</string>
      <key>PayloadDisplayName</key>
      <string>...</string>
      <key>PayloadIdentifier</key>
      <string>...</string>
      <key>PayloadOrganization</key>
      <string>...</string>
      <key>PayloadType</key>
      <string>com.apple.vpn.managed</string>
      <key>PayloadUUID</key>
      <string>...</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
      <key>Proxies</key>
      <dict>
        <key>HTTPEnable</key>
        <integer>0</integer>
        <key>HTTPSEnable</key>
        <integer>0</integer>
        <key>ProxyAutoConfigEnable</key>
        <integer>0</integer>
        <key>ProxyAutoDiscoveryEnable</key>
        <integer>0</integer>
      </dict>
      <key>UserDefinedName</key>
      <string>...</string>
      <key>VPNType</key>
      <string>IPSec</string>
    </dict>
  </array>
  <key>PayloadDescription</key>
  <string>...</string>
  <key>PayloadDisplayName</key>
  <string>...</string>
  <key>PayloadIdentifier</key>
  <string>...</string>
  <key>PayloadOrganization</key>
  <string>...</string>
  <key>PayloadRemovalDisallowed</key>
  <false/>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>...</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>

The shared secret is base64-encoded, so you can decode it with:

$ echo -n 'BASE64_ENCODED_SECRET_HERE' | base64 -d

Network Manager configuration

  1. Make sure you have network-manager-vpnc installed
  2. Click the Network Manager icon, select “VPN Connections”, “Configure VPN…”
  3. Create a “Cisco-compatible (vpnc)” connection

    Create a “Cisco-compatible (vpnc)” VPN connection

  4. Configure the connection settings as follows:

    Configure the connection settings

    • Enter the “remote address” in the “Gateway” field
    • Enter the “local identifier” in the “Group name” field
    • Enter the shared secret in the “Group password” field
  5. To connect, click the Network Manager icon, select “VPN Connections”, and select the connection you just configured

Good luck and enjoy!

Written by Matt Zimmerman

November 15, 2012 at 18:29