Saturday, 28 February 2015

How To Get Your Management Team To Buy Into Marketing Strategy

020915 team huddle Have you ever had your management team agree on something unanimously?
If I were a betting man, I’d say probably not. And, that’s just how things are – just imagine how dull the world would be if we were all in agreement all the time.
That’s why facing a challenge like implementing a new marketing strategy can be so tiring. Not only do you have to develop the strategy – which will definitely take up a fair amount of time and resources – you also have to get your management team to support the plan.
But, how exactly do you get your team to buy into a marketing strategy?

Understand Your Team and Organization

Before you get team members to buy into a specific marketing strategy, you need to understand who your audience is. Fusion Workshop states you should study and understand “the strategic aims of your organization.” In other words, what are the goals and objectives most important to the current, as well as future, state of your business?
Six common “strategic business goals are in the areas of market share, financial resources, physical resources, productivity, innovation, and action planning.” Being aware of this can help you “align your vision to the short and long-term goals of your organization.”
Besides understanding the goals of your organization, you need to also understand the team members “who will be working towards these aims.” When you know what motivates them, you can tap into these motivators to get them on board.

Gain Allies

Sean Power has an interesting anecdote in an article he wrote for Content Marketing Institute. It’s about an employee who tried to get his boss on board with a content marketing strategy. The employee had prepared everything for a presentation – “research papers, cost-benefit analyses, case studies, potential solutions, and the pros and cons of several possible options.” What happened? The boss instead took advice from his “golf buddy” because he trusted him.
In the professional world, we listen to our peers we can trust, our confidants. If you want to sell team members on an idea, then make sure that you have an established working relationship. That doesn’t mean you have to play golf together every week, but you need some sort of rapport – whether that’s going to lunch once a week or sharing ideas – if you want them to be on your side.
And, who knows? That person could have a great relationship with another credible team member.

Let Team Members Share Their Knowledge

If you really want to team members to buy into your plan, then give them a chance to share their knowledge, experience, and ideas. John Hall gives an example at Forbes about how Centro got their engineers involved with a content marketing strategy. By letting the engineers create content, Centro not only boosted its credibility, it also improved team morale by getting everyone involved.
Hall also states that this can unify a company – even across departments. For example, “if engineers develop content showcasing their expertise, PR can also use it to draw positive attention to the company. PR can then work with the social media team or customer service to maximize its reach.”
In short, give your management team a chance to have some input into the formation of a marketing strategy. If they are a part of it from the beginning, it will be easier for them to buy into it since they helped create it.

Demonstrate the Strategy’s Value

To demonstrate the value of a strategy, you’re going to have to effectively communicate it to the other management team members. Here are a couple of pointers to keep in mind. You should avoid jargon and always have an elevator pitch prepared that focuses on the benefits of the strategy.  And, you may very well have to make a presentation.
Joe Griffin detailed an excellent format on Content Marketing Institute for an effective presentation. He recommends that your presentation format be as follows:
  • State your intention
  • State the current situation
  • Define content marketing and its value
  • Bridge the gap
  • Define your action plan
  • Make the ask
Griffin adds that you need to “be clear, friendly, and confident.” Make sure that you’re also prepared for questions and try to implement the Guy Kawasaki-championed “10/20/30 rule.

Give it a Test Drive

If anything, you’ve at least gotten the interest of your management team if you’ve followed the suggestions from above. But, one of the best ways to get them sold on your strategy is by testing it out and reviewing results. Kapost suggests that you do this internally, but if you want to see what happens in the real-world, here are some deciding factors on how effective your strategy is:
  • Immediate gains: Facebook likes, reTweets, LinkedIn shares, etc.
  • Baseline everything: Use services different tools like Searchmetric’s SEO management software and Moz’s rank tracker to help track data and relevant keywords.
  • Back-links: How many inbound links did you receive?
Leads/Sales: How many visitors and sales did you make following the release of your marketing strategy?

Friday, 27 February 2015

11 Steps for How to Handle a Customer Complaint at Your Company

Dealing with customer complaints effectively is an important skill, particularly if the feedback comes in the middle of a live event. How do you handle an event complaint situation? If you get it wrong you will probably lose a valued attendee forever. However if you get it right you could manage to turn a negative encounter into a positive one and earn a loyal fan…


11 Steps for How to Handle a Customer You put your heart and soul into every event that you organise and after months of hard work and trying to think of every possible eventuality it is heart-breaking if things don’t go exactly to plan. It seems even more distressing if you receive complaints – do they not realise how hard you worked to avoid anything like this happening?!
On the other hand everything could be going great but an attendee may still voice a complaint if something isn’t to their exact liking. And of course the saying goes that “the customer is always right.”
Whatever the circumstance of the complaint (and however valid or not it may be) how can you turn a negative situation into a positive?

Think Positively

Perhaps this sounds strange but try to think of the complaint as a gift. The attendee has taken time to feed back to you so that you have the opportunity to rectify it for the complainant but also potentially for others before the situation escalates. In essence you have been given a valuable second chance to put this right.
Moreover if they didn’t bring this to your attention they could have just disappeared without saying a word, which would have left you no opportunity to put the situation right and probably having lost a customer forever, without ever being any the wiser about their dissatisfaction.

Stop Everything

This is a tricky one but the person complaining wants to have their say right away, they need you to stop everything and take note.
Anger will rise if you try to dismiss or delay someone who is primed to have their say.
Try to ensure that all team members know how to handle complaints and that any junior team members know how important it is to pass it over to a Manager promptly and with care.
At a live event you do of course need to consider your location and potentially minimise the impact on the rest of the event and other attendees. If you can suggest a suitable and convenient location close by to discuss the scenario in private this may be a wise move.

Listen

Make sure that you gather the full facts of the situation before jumping in. Give the attendee the opportunity to vent their anger and frustration as this may help to calm them to calm down, as well as filling in the gaps for you as to what has gone wrong and the crux of why the person in front of you is so upset. The information you gather here will help to ensure you can suggest the best possible solution and outcome.

Keep Calm

It is natural to feel defensive when listening to a complaint, particularly if their facts are wrong or unfounded, but try to remember this isn’t a personal attack on yourself and never argue back.
If tensions are high you are potentially not going to deal with the situation with a clear head so it may be best to suggest some time out for both parties to simmer down before reconvening? Or perhaps you need to escalate the situation to a colleague instead?

Put Yourself in Their Shoes

Nobody (ok very few people!) like complaining and so going back to the first point, appreciate that the individual has taken the time to give their opinion to you and that this probably isn’t easy for them. Look at the whole situation from their point of view and see it through their eyes.

Ask Questions

Prove that the attendee has your full, undivided attention. Ask questions to be sure that you understand the full facts of the situation and to get them to clarify anything that is unclear.
This earlier post may be useful background reading How to Create the WOW Factor in Event Customer Service.

Say Sorry

If the complaint is justified ensure you give heartfelt apologies to the attendee and let them know that that is not how you like to do business/your events to run.
If the complaint isn’t justified in your opinion you should still empathise with them, for example “I am sorry that you feel that way” or “I understand how upset you must feel” or simply “I can see that this must be inconvenient for you.”

Don’t Pass Blame

The person complaining truly believes that you have done something wrong so resist the temptation to pass the blame. The person complaining doesn’t want to hear you passing the buck, they want to hear what you are going to do for them and it is unprofessional to accuse others. It is your event and therefore it is your full responsibility if some element has been unsatisfactory.

Agree Next Steps

Hopefully after gathering all of the information you will have a few ideas for how you can put the situation right and you can now share these with the attendee to gauge their thoughts.
Sometimes it may be appropriate to ask the person directly how you can put the situation right for them; “What would be a fair solution?” “What course of action do you want to see?”
It is important that you jointly agree what is a fair and suitable next step to be taken.

Resolve the Situation

Once a course of action is agreed make sure you move swiftly to put things into place. Ideally the person that has heard the complaint will personally take the necessary action and remain the main point of contact.
If for any reason the actions taken are not immediate and will take some time, ensure that you keep the unhappy attendee informed or the negative feelings could escalate again.
Let the person who voiced the complaint know what changes and measures have been put in place to ensure this doesn’t happen again and to show how seriously you took their concerns.
For some it may be enough to be heard and to receive an apology and assurances. Only you can judge the gravity of the situation though and whether compensation should be offered. For example should you offer them a free or discounted ticket for the next event to make up for this bad experience?

Futureproof

Make sure that all of the team are aware of the complaint and steps are taken to put things right and avoid the same mistake happening again in the future. Be grateful for the early warning sign and the chance you have been given to rethink and redesign for the future. The most important lesson is to learn from the error.

In Conclusion

If you deal with a complaint at your event successfully you may secure yourself a customer for life and turn a negative experience into a positive one. Nearly all customers would recommend a company to their friends if a complaint had been resolved efficiently, according to The Institute of Customer Service.

Thursday, 26 February 2015

How to Make the Most Money in Your Marketing Career

Money
If I were to ask you to define a successful career, there’s a 46% chance you’d cite “money” as the measuring stick. Yet despite the emphasis placed on income, marketers are going about maximizing earnings in a flawed manner.
I’ve managed marketers for the past decade, and most see career growth as “incrementally hierarchal” -- progress unfolds linearly as the person climbs from one level of seniority to the next. A coordinator becomes an associate, an associate becomes a senior associate, a senior associate becomes a manager, and so on. It looks something like this:
Hierarchal-Model
This approach would be optimal if income growth was linear and levels were limitless. But they’re not. Executive compensation, because it’s often laced with equity, triggers, incentives, and safeguards, tends to be exponentially greater than staff compensation.
So rather than aiming to maximize the size of the “riser” between each step, financially motivated marketers should instead optimize for crossing the executive threshold as early in their careers as possible (represented by the green arrow in the graphic below).
Skills-Acquisition-Model
Here's how these two growth models can pan out in reality.

Comparing Linear and Non-Linear Growth

Let’s model two hypothetical career paths --- the “Hierarchal” (linear) marketer or the “Skills-Based” (non-linear) marketer -- to which one generates more lifetime income. For each scenario, we’ll assume a 40-year career in which the marketer earns $30,000 in year one.
Because those who take a Hierarchal approach optimize for annual title and salary adjustments, let’s imagine they grow considerably faster than the average worker. We’ll aggressively assume their compensation increases by 5% annually (about 60% higher than the 2.9% average). This marketer would earn a little over $200,000 in the final year of his career (30000*1.05^39), and amass a total of $3.6 million in income over that time. While both totals are impressive, given how the model works, the marketer’s income skews heavily toward the end of his career (25% of the total is earned in the final five years). And as we all know, it's very difficult to plan 40 years out.
Now let’s consider the Skills-Based career. Because these marketers optimize for time-to-executive achievement, lateral movement marks the front-end of their careers. In other words, they focus less on graduating from one level to the next (e.g., junior designer to designer to senior designer to creative director) and more on moving laterally throughout the department (e.g., designer, interactive designer, content strategist, customer acquisition manager) to acquire the skills required to eventually take the reigns of the full line of business.
Given this dynamic, we’ll imagine the first half of the Skills-Based career is spent with a slower growing compensation -- say at the average rate of 2.9%. Given that they’ve acquired diverse skills, we will also assume they become an executive at the mid-point of their career. After 20 years, the Skills-Based marketer would be earning about $52,000 (30000*1.029^19), a figure we’ll use as the average marketer's salary.
While it’s been well documented that CEOs earn 350 times more than the average worker, we’re only discussing marketing, so let’s conservatively estimate a CMO's total earning power to be 5x the average staffer or, in this case, $260,000. Figuring the executive’s compensation grows at least at the rate of the person in our first scenario, the marketer who optimized for executive status would earn $657,000 (260,000*1.05^19) in the final year of her career, bringing her aggregate earnings to a whopping $9.4 million -- 260% more than the worker in the Hierarchal example.
Obviously these aren't perfect scenarios. There are plenty of additional ways a marketer can increase income -- education (an MBA from a top program can change the timeline considerably), industry (technology startups may present a more collapsed timeframe), and job-hopping (changing companies is often a way to boost income) are three obvious ones. And the hypotheticals contain some major assumptions, like assuming the company always performs well (since executive salary is steeped in performance-based bonuses, a mediocre organization isn’t likely to produce consistently high income potential), and the unrealistic one-year leap from average salary to executive compensation in the Skills-Based example.
So don’t take the actual dollars as law. Rather, consider the relative impact that crossing the executive threshold relatively early in your career can have on your total earnings potential.

Implementing a Non-Linear Growth Strategy

Of course, the larger question isn’t whether or not becoming an executive earlier in your career helps maximize income potential, but rather how to go about putting oneself on an executive track. The most direct path is to join a company that offers a "rotational program," or an operationalized system in which new hires are exposed to multiple parts of the business for finite periods of time, thereby creating a solid foundation for future leadership.
Yet if you are deeper into your career, or you work for a company that doesn't offer a rotational program, the key is to remain steadfast in the mission. As the graphic below illustrates, there may be a period during which you “fall behind” your peers who are “climbing the ladder," and it might seem like it's a good idea to abandon your track. But remember that you are running a different playbook with a delayed payoff.
Hierarchal-Skills-Overlay
Beyond that, the next steps all center on your personal goals, positioning, and priorities. The following are a few important ways those will differ when you're taking the Skills-Based track compared to the Hierarchal track:

Objective 

This contrast is self-evident, but the Hierarchical marketers endeavors to increase the frequency of promotions and the raise associated with each. That’s the very definition of hierarchy.
Skills-Based marketers aim to move the executive horizon line closer to the present, considering today’s work to be preparation for tomorrow’s leadership.

Benchmarks

In the conventional Hierarchical model, employees measure progress by “qualitative adjectives” in their title. Shedding a “junior” is good; adding a “senior” is better. That the noun doesn’t change -- either term could modify “marketing manager” -- is immaterial. What matters is that the modifier connotes seniority.
Skills-Based marketers, on the other hand, place a high value on “classifying adjectives” in their title -- that is, descriptive terms that don’t necessarily suggest superlative qualities (“Social media” marketer vs. “Inbound” marketer, for example).

Performance 

Hierarchal marketers emphasize personal performance, which is understandable given that it’s the individual’s achievement that allows management to make comparative decisions regarding seniority. The more achievements the marketer unlocks, the higher the title.
Yet if you are building a foundation for executive leadership, the way you would characterize your impact naturally shifts from highlighting individual skill mastery to emphasizing your impact on the business’ performance. Executives aren’t measured on what they do, per se, but the results they generate -- and aspiring executives should follow suit.

Expertise

Perhaps the biggest difference between the two schools of thought is the nature of each marketer’s expertise. Climbing up one path of the corporate ladder works best when the person excels at a narrowly defined function. A public relations manager deepens relationships with an increasing number of journalists, thereby progressing from PR coordinator to PR manager to PR director to VP of communications. But none of these levels, not even the coveted VP of communications title, is an executive role. It’s simply another rung on the same ladder.
On the other hand, a marketer who rotates through the department may work in public relations long enough to develop a reasonable understanding of the role -- before moving on to experience an adjacent function. If the first marketer is “narrow and deep,” then the executive-track marketer’s expertise could be characterized as “broad and diverse.”
None of this is to suggest that either model is “better” than the other. One is focused on climbing steadily through the subject matter expertise, whereas the other maintains a much wider perspective. This isn’t even to say that money is the best measure of success. There are many valid definitions of success, ranging from contributing to the betterment of the world, to fulfilling a passion, to the most popular measure -- achieving that elusive work-life balance.
This post simply suggests that for those who correlate money with success, then the best way to achieve the goal is grab a seat at the executive table as early in your career as possible. And developing the most varied set of marketing skills is the most reliable way to occupy that plush seat.

Wednesday, 25 February 2015

Authorized Google API access from Python (Core Python Programming)

Introduction

In this final installment of a (currently) two-part series introducing Python developers to building on Google APIs, we'll extend from the simple API example from the first post (part 1) just over a month ago. Those first snippets showed some skeleton code and a short real working sample that demonstrate accessing a public (Google) API with an API key (that queried public Google+ posts). An API key however, does not grant applications access to authorized data.

Authorized data, including user information such as personal files on Google Drive and YouTube playlists, require additional security steps before access is granted. Sharing of and hardcoding credentials such as usernames and passwords is not only insecure, it's also a thing of the past. A more modern approach leverages token exchange, authenticated API calls, and standards such as OAuth2.

In this post, we'll demonstrate how to use Python to access authorized Google APIs using OAuth2, specifically listing the files (and folders) in your Google Drive. In order to better understand the example, we strongly recommend you check out the OAuth2 guides (general OAuth2 info, OAuth2 as it relates to Python and its client library) in the documentation to get started.

The docs describe the OAuth2 flow: making a request for authorized access, having the user grant access to your app, and obtaining a(n access) token with which to sign and make authorized API calls with. The steps you need to take to get started begin nearly the same way as for simple API access. The process diverges when you arrive on the Credentials page when following the steps below.

Google API access

In order to Google API authorized access, follow these instructions (the first three of which are roughly the same for simple API access):
  • Go to the Google Developers Console and login.
    • Use your Gmail or Google credentials; create an account if needed
  • Click "Create Project" button
    • Enter a Project Name (mutable, human-friendly string only used in the console)
    • Enter a Project ID (immutable, must be unique and not already taken)
  • Once project has been created, click "Enable an API" button
  • Select "Credentials" in left-nav under "APIs & auth"
    • In the top half labeled "OAuth2", click "Create new Client ID"
    • In the new dialog, select your application type — we're building a command-line script which is an "Installed application"
    • In the bottom part of that same dialog, specify the type of installed application; choose "Other" (cmd-line scripts are not web nor mobile)
    • Click "Create Client ID" to generate your credentials
  • Finally, click "Download JSON" to save the new credentials to your computer... perhaps choose a shorter name like "client_secret.json"
NOTEs: Instructions from the previous blogpost were to get an API key. This time, in the steps above, we're creating and downloading OAuth2 credentials. You can also watch a video walkthrough of this app setup process of getting simple or authorized access credentials in the "DevConsole" here.

Accessing Google APIs from Python

In order to access authorized Google APIs from Python, you still need the Google APIs Client Library for Python, so in this case, do follow those installation instructions from part 1.

We will again use the apiclient.discovery.build() function, which is what we need to create a service endpoint for interacting with an API, authorized or otherwise. However, for authorized data access, we need additional resources, namely the httplib2 and oauth2client packages. Here are the first five lines of the new boilerplate code for authorized access:

from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

CLIENT_SECRET = 'client_secret.json' # downloaded JSON file
SCOPES = # one or more scopes (strings)
After the imports are some global variables, starting with CLIENT_SECRET. This is the credentials file you saved when you clicked "Download JSON" in the instructions above. SCOPES is a critical variable: it represents the set of scopes of authorization an app wants to obtain (then access) on behalf of user(s). What's does a scope look like?

Each scope is a single character string, specifically a URL. Here are some examples:
  • 'https://www.googleapis.com/auth/plus.me' — access your personal Google+ settings
  • 'https://www.googleapis.com/auth/drive.metadata.readonly' — read-only access your Google Drive file or folder metadata
  • 'https://www.googleapis.com/auth/youtube' — access your YouTube playlists and other personal information
You can request one or more scopes, given as a single space-delimited string of scopes or an iterable (list, generator expression, etc.) of strings.  If you were writing an app that accesses both your YouTube playlists as well as your Google+ profile information, your SCOPES variable could be either of the following:
SCOPES = 'https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/youtube'

That is space-delimited and made tiny by me so it doesn't wrap in a regular-sized browser window; or it could be an easier-to-read, non-tiny, and non-wrapped tuple:

SCOPES = (
    'https://www.googleapis.com/auth/plus.me',
    'https://www.googleapis.com/auth/youtube',
)

Our example command-line script will just list the files on your Google Drive, so we only need the read-only Drive metadata scope, meaning our SCOPES variable will be just this:
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly' The next section of boilerplate represents the security code:
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets(CLIENT_SECRET, SCOPES)
    creds = tools.run(flow, store)
Once the user has authorized access to their personal data by your app, a special "access token" is given to your app. This precious resource must be stored somewhere local for the app to use. In our case, we'll store it in a file called "storage.json". The lines setting the store and creds variables are attempting to get a valid access token with which to make an authorized API call.

If the credentials are missing or invalid, such as being expired, the authorization flow (using the client secret you downloaded along with a set of requested scopes) must be created (by client.flow_from_clientsecrets()) and executed (by tools.run()) to ensure possession of valid credentials. If you don't have credentials at all, the user much explicitly grant permission — I'm sure you've all seen the OAuth2 dialog describing the type of access an app is requesting (remember those scopes?). Once the user clicks "Accept" to grant permission, a valid access token is returned and saved into the storage file (because you passed a handle to it when you called tools.run()).

Note: tools.run() deprecated by tools.run_flow()
At the time of this writing, the tools.run() function has been deprecated by tools.run_flow(). We'll explain this in more detail in a future blogpost, but for now, you can use either. The caveats for both: use of tools.run() is "easier" but is outdated and requires another package to download while tools.run_flow() requires more code and a recent version of Python. Why is using tools.run() "easier?" Well, it does mean less code, but it also requires the 'gflags' library, so if you need that, install it with "pip install -U python-gflags". The good news with tools.run_flow() is that it does not need this library; the bad news is that you do need to create an argparse.ArgumentParser object (which proxies for the missing 'gflags'), meaning you need Python 2.7. If you wish to do be modern and use tools.run_flow(), read more here in the docs.

Once the user grants access and valid credentials are saved, you can create one or more endpoints to the secure service(s) desired with apiclient.discovery.build(), just like with simple API access. Its call will look slightly different, mainly that you need to sign your HTTP requests with your credentials rather than passing an API key:
DRIVE = build(API, VERSION, http=creds.authorize(Http()))

In our example, we're going to list your files and folders in your Google Drive, so for API, use the string 'drive'. The API version is currently on version 2 so use 'v2' for VERSION:

DRIVE = build('drive', 'v2', http=creds.authorize(Http()))
If you want to get comfortable with OAuth2, what it's flow is and how it works, we recommend that you experiment at the OAuth Playground. There you can choose from any number of APIs to access and experience first-hand how your app must be authorized to access personal data.

Going back to our working example, once you have an established service endpoint, you can use the list() method of the files service to request the file data:

files = DRIVE.files().list().execute().get('items', [])

If all goes well, the (JSON) response payload will (not be empty or missing and) contain a sequence of files that we can loop over, displaying file names and types:

for f in files:
    print f['title'], f['mimeType']
Just like in the previous blogpost, we're using the print statement here in Python 2, but a pro tip to start getting ready for Python 3 is to add this import to the top of your script (which has no effect in 3.x) so you can use the print() function instead:

from __future__ import print_function

Conclusion

To find out more about the input parameters as well as all the fields that are in the response, take a look at the docs for files().list(). For more information on what other operations you can execute with the Google Drive API, take a look at the reference docs and check out the companion video for this code sample. That's it!

Below is the entire script for your convenience:
#!/usr/bin/env python

from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

CLIENT_SECRET = 'client_secret.json'
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'

store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets(CLIENT_SECRET, SCOPES)
    creds = tools.run(flow, store)

DRIVE = build('drive', 'v2', http=creds.authorize(Http()))
files = DRIVE.files().list().execute().get('items', [])
for f in files:
    print f['title'], f['mimeType']
When you run it, you should see pretty much what you'd expect, a list of file or folder names followed by their MIMEtypes — I named my script drive_list.py:
$ python drive_list.py
Google Maps demo application/vnd.google-apps.spreadsheet
Overview of Google APIs - Sep 2014 application/vnd.google-apps.presentation
tiresResearch.xls application/vnd.google-apps.spreadsheet
6451_Core_Python_Schedule.doc application/vnd.google-apps.document
out1.txt application/vnd.google-apps.document
tiresResearch.xls application/vnd.ms-excel
6451_Core_Python_Schedule.doc application/msword
out1.txt text/plain
Maps and Sheets demo application/vnd.google-apps.spreadsheet
ProtoRPC Getting Started Guide application/vnd.google-apps.document
gtaskqueue-1.0.2_public.tar.gz application/x-gzip
Pull Queues application/vnd.google-apps.folder
gtaskqueue-1.0.1_public.tar.gz application/x-gzip
appengine-java-sdk.zip application/zip
taskqueue.py text/x-python-script
Google Apps Security Whitepaper 06/10/2010.pdf application/pdf
Obviously your output will be different, depending on what files are in your Google Drive. But that's it... hope this is useful. You can now customize this code for your own needs and/or to access other Google APIs. Thanks for reading!

EXTRA CREDIT: To test your skills, add functionality to this code that also displays the last modified timestamp, the file (byte)size, and perhaps shave the MIMEtype a bit as it's slightly harder to read in its entirety... perhaps take just the final path element? One last challenge: in the output above, we have both Microsoft Office documents as well as their auto-converted versions for Google Apps... perhaps only show the filename once and have a double-entry for the filetypes!

Tuesday, 24 February 2015

How to Achieve an Organizational Learning Goal

It’s that time of year again, when we pay special attention to our personal and career goals. However, how likely is it that we will actually achieve those goals? I belong to a fitness center at the Alignment local community college and I’m always fascinated by the January upsurge in activity and then the fall off around March and April each year. Hopefully, that means some people have achieved their fitness and weight loss goals, but I’m afraid that for many it means they have given up. These folks probably haven’t established the processes and relationships that will help them achieve their goals.
Jesse Lyn Stoner makes some excellent suggestions for what we can do in terms of processes and relationships to ensure that we achieve our New Year’s resolutions. You can apply these same principles to organizational learning goals. For individuals, teams, and whole organizations to achieve their learning goals, they need to develop supportive processes and relationships. It’s not enough to identify the knowledge and skills that you want to develop. And it’s not enough to select a method for learning. To apply and sustain that learning, you must also establish processes and relationships that support learning and application of that learning.
Listed below are Stoner’s six suggestions and my explanation of how each one helps in the attainment of learning goals.
1. Start with your current goals.
What new knowledge and skills are you trying to acquire? How has that been going and what can you learn about your own process of learning? Decide if you want to continue to acquire that knowledge and those skills or are you ready to move on to something else. For example, maybe you want to learn how to give negative feedback to your direct reports. Take stock of your ability to do that and whether you need to continue working on that skill and then identify additional learning goals that you need to achieve.
2. Connect your goals to a larger purpose.
Align your goals with the strategic goals of the organization. Be clear with yourself, with co-workers, and with your manager about how acquiring certain knowledge and skills will contribute to the organization’s success. Have a “line of sight” from the learning goal to the performance of the organization. For example, be clear about how learning Lean/Six Sigma will help the organization be successful.
3. Goal setting is not always a logical process.
Don’t get frustrated by the lack of a straight-line process. You might set some goals and then, in talking with your boss and after some experience, decide that those goals need to be modified. And given the pace of change, a learning goal that you set today could be irrelevant tomorrow. However, whatever the goal, have some notion of how you and your boss will know that it has been achieved.
4. Write your goals down and put them somewhere visible.
Writing them down will help you commit to achieving your goals. Keeping them visible will remind you that this is your task and also allow you to modify the goals as needed. The adage, “out of sight; out of mind”, applies here.
5. Don’t keep your goals a secret.
Discuss your goals with your boss and co-workers. You need their support. For example, if you are learning how to run a more effective and efficient team meeting, you need the cooperation of your team members and their feedback. Your boss should be able to provide you with opportunities to practice these team management skills and advise you on what you need to learn and how best to learn it.
6. Set up processes and practices that support your goals.
You’re more likely to successfully achieve your learning goals if you hold yourself accountable and if others hold you accountable. Discuss the indicators of successful learning with your boss and co-workers. Arrange times to regularly check in with them to take stock of your progress.
Organizational learning is not something you can do in isolation. You can identify learning goals but you will need the support and involvement of bosses and co-workers to achieve those goals. As Stoner recommends, establish those processes and relationships at the outset and you will be more likely to follow-through and be successful.
- See more at: http://stephenjgill.typepad.com/performance_improvement_b/teamwork/#sthash.JpBGy3fY.dpuf


It’s that time of year again, when we pay special attention to our personal and career goals.
 Alignment


However, how likely is it that we will actually achieve those goals? I belong to a fitness center at the local community college and I’m always fascinated by the January upsurge in activity and then the fall off around March and April each year. Hopefully, that means some people have achieved their fitness and weight loss goals, but I’m afraid that for many it means they have given up. These folks probably haven’t established the processes and relationships that will help them achieve their goals.
Jesse Lyn Stoner makes some excellent suggestions for what we can do in terms of processes and relationships to ensure that we achieve our New Year’s resolutions. You can apply these same principles to organizational learning goals. For individuals, teams, and whole organizations to achieve their learning goals, they need to develop supportive processes and relationships. It’s not enough to identify the knowledge and skills that you want to develop. And it’s not enough to select a method for learning. To apply and sustain that learning, you must also establish processes and relationships that support learning and application of that learning.
Listed below are Stoner’s six suggestions and my explanation of how each one helps in the attainment of learning goals.
1. Start with your current goals.
What new knowledge and skills are you trying to acquire? How has that been going and what can you learn about your own process of learning? Decide if you want to continue to acquire that knowledge and those skills or are you ready to move on to something else. For example, maybe you want to learn how to give negative feedback to your direct reports. Take stock of your ability to do that and whether you need to continue working on that skill and then identify additional learning goals that you need to achieve.
2. Connect your goals to a larger purpose.
Align your goals with the strategic goals of the organization. Be clear with yourself, with co-workers, and with your manager about how acquiring certain knowledge and skills will contribute to the organization’s success. Have a “line of sight” from the learning goal to the performance of the organization. For example, be clear about how learning Lean/Six Sigma will help the organization be successful.
3. Goal setting is not always a logical process.
Don’t get frustrated by the lack of a straight-line process. You might set some goals and then, in talking with your boss and after some experience, decide that those goals need to be modified. And given the pace of change, a learning goal that you set today could be irrelevant tomorrow. However, whatever the goal, have some notion of how you and your boss will know that it has been achieved.
4. Write your goals down and put them somewhere visible.
Writing them down will help you commit to achieving your goals. Keeping them visible will remind you that this is your task and also allow you to modify the goals as needed. The adage, “out of sight; out of mind”, applies here.
5. Don’t keep your goals a secret.
Discuss your goals with your boss and co-workers. You need their support. For example, if you are learning how to run a more effective and efficient team meeting, you need the cooperation of your team members and their feedback. Your boss should be able to provide you with opportunities to practice these team management skills and advise you on what you need to learn and how best to learn it.
6. Set up processes and practices that support your goals.
You’re more likely to successfully achieve your learning goals if you hold yourself accountable and if others hold you accountable. Discuss the indicators of successful learning with your boss and co-workers. Arrange times to regularly check in with them to take stock of your progress.
Organizational learning is not something you can do in isolation. You can identify learning goals but you will need the support and involvement of bosses and co-workers to achieve those goals. As Stoner recommends, establish those processes and relationships at the outset and you will be more likely to follow-through and be successful.
- See more at: http://stephenjgill.typepad.com/performance_improvement_b/teamwork/#sthash.JpBGy3fY.dpuf

 

It’s that time of year again, when we pay special attention to our personal and career goals. However, how likely is it that we will actually achieve those goals? I belong to a fitness center at the Alignment local community college and I’m always fascinated by the January upsurge in activity and then the fall off around March and April each year. Hopefully, that means some people have achieved their fitness and weight loss goals, but I’m afraid that for many it means they have given up. These folks probably haven’t established the processes and relationships that will help them achieve their goals.
Jesse Lyn Stoner makes some excellent suggestions for what we can do in terms of processes and relationships to ensure that we achieve our New Year’s resolutions. You can apply these same principles to organizational learning goals. For individuals, teams, and whole organizations to achieve their learning goals, they need to develop supportive processes and relationships. It’s not enough to identify the knowledge and skills that you want to develop. And it’s not enough to select a method for learning. To apply and sustain that learning, you must also establish processes and relationships that support learning and application of that learning.
Listed below are Stoner’s six suggestions and my explanation of how each one helps in the attainment of learning goals.
1. Start with your current goals.
What new knowledge and skills are you trying to acquire? How has that been going and what can you learn about your own process of learning? Decide if you want to continue to acquire that knowledge and those skills or are you ready to move on to something else. For example, maybe you want to learn how to give negative feedback to your direct reports. Take stock of your ability to do that and whether you need to continue working on that skill and then identify additional learning goals that you need to achieve.
2. Connect your goals to a larger purpose.
Align your goals with the strategic goals of the organization. Be clear with yourself, with co-workers, and with your manager about how acquiring certain knowledge and skills will contribute to the organization’s success. Have a “line of sight” from the learning goal to the performance of the organization. For example, be clear about how learning Lean/Six Sigma will help the organization be successful.
3. Goal setting is not always a logical process.
Don’t get frustrated by the lack of a straight-line process. You might set some goals and then, in talking with your boss and after some experience, decide that those goals need to be modified. And given the pace of change, a learning goal that you set today could be irrelevant tomorrow. However, whatever the goal, have some notion of how you and your boss will know that it has been achieved.
4. Write your goals down and put them somewhere visible.
Writing them down will help you commit to achieving your goals. Keeping them visible will remind you that this is your task and also allow you to modify the goals as needed. The adage, “out of sight; out of mind”, applies here.
5. Don’t keep your goals a secret.
Discuss your goals with your boss and co-workers. You need their support. For example, if you are learning how to run a more effective and efficient team meeting, you need the cooperation of your team members and their feedback. Your boss should be able to provide you with opportunities to practice these team management skills and advise you on what you need to learn and how best to learn it.
6. Set up processes and practices that support your goals.
You’re more likely to successfully achieve your learning goals if you hold yourself accountable and if others hold you accountable. Discuss the indicators of successful learning with your boss and co-workers. Arrange times to regularly check in with them to take stock of your progress.
Organizational learning is not something you can do in isolation. You can identify learning goals but you will need the support and involvement of bosses and co-workers to achieve those goals. As Stoner recommends, establish those processes and relationships at the outset and you will be more likely to follow-through and be successful.
- See more at: http://stephenjgill.typepad.com/performance_improvement_b/teamwork/#sthash.JpBGy3fY.dpuf
It’s that time of year again, when we pay special attention to our personal and career goals. However, how likely is it that we will actually achieve those goals? I belong to a fitness center at the Alignment local community college and I’m always fascinated by the January upsurge in activity and then the fall off around March and April each year. Hopefully, that means some people have achieved their fitness and weight loss goals, but I’m afraid that for many it means they have given up. These folks probably haven’t established the processes and relationships that will help them achieve their goals.
Jesse Lyn Stoner makes some excellent suggestions for what we can do in terms of processes and relationships to ensure that we achieve our New Year’s resolutions. You can apply these same principles to organizational learning goals. For individuals, teams, and whole organizations to achieve their learning goals, they need to develop supportive processes and relationships. It’s not enough to identify the knowledge and skills that you want to develop. And it’s not enough to select a method for learning. To apply and sustain that learning, you must also establish processes and relationships that support learning and application of that learning.
Listed below are Stoner’s six suggestions and my explanation of how each one helps in the attainment of learning goals.
1. Start with your current goals.
What new knowledge and skills are you trying to acquire? How has that been going and what can you learn about your own process of learning? Decide if you want to continue to acquire that knowledge and those skills or are you ready to move on to something else. For example, maybe you want to learn how to give negative feedback to your direct reports. Take stock of your ability to do that and whether you need to continue working on that skill and then identify additional learning goals that you need to achieve.
2. Connect your goals to a larger purpose.
Align your goals with the strategic goals of the organization. Be clear with yourself, with co-workers, and with your manager about how acquiring certain knowledge and skills will contribute to the organization’s success. Have a “line of sight” from the learning goal to the performance of the organization. For example, be clear about how learning Lean/Six Sigma will help the organization be successful.
3. Goal setting is not always a logical process.
Don’t get frustrated by the lack of a straight-line process. You might set some goals and then, in talking with your boss and after some experience, decide that those goals need to be modified. And given the pace of change, a learning goal that you set today could be irrelevant tomorrow. However, whatever the goal, have some notion of how you and your boss will know that it has been achieved.
4. Write your goals down and put them somewhere visible.
Writing them down will help you commit to achieving your goals. Keeping them visible will remind you that this is your task and also allow you to modify the goals as needed. The adage, “out of sight; out of mind”, applies here.
5. Don’t keep your goals a secret.
Discuss your goals with your boss and co-workers. You need their support. For example, if you are learning how to run a more effective and efficient team meeting, you need the cooperation of your team members and their feedback. Your boss should be able to provide you with opportunities to practice these team management skills and advise you on what you need to learn and how best to learn it.
6. Set up processes and practices that support your goals.
You’re more likely to successfully achieve your learning goals if you hold yourself accountable and if others hold you accountable. Discuss the indicators of successful learning with your boss and co-workers. Arrange times to regularly check in with them to take stock of your progress.
Organizational learning is not something you can do in isolation. You can identify learning goals but you will need the support and involvement of bosses and co-workers to achieve those goals. As Stoner recommends, establish those processes and relationships at the outset and you will be more likely to follow-through and be successful.
- See more at: http://stephenjgill.typepad.com/performance_improvement_b/teamwork/#sthash.JpBGy3fY.dpuf

Monday, 23 February 2015

Cheque Clearing & Collection by Banks ( What is a Cheque ? Meaning)

Cheque Clearing & Collection by Banks


In one of the older posts titled Using a Bank Cheque we had taken a look at what a Cheque is, how to issue a cheque and the things to remember when we use one. There is one area that we did not touch "Cheque Collection & Clearing" in that article. One of our blog readers even has left a comment on the same in that post. So, the purpose of this article is to explain how the Cheque clearing & collection works along with a lot of other details.

Before we proceed with the Cheque collection & clearing part, let us take a look at the types of cheques we can use

Local Cheques - These are cheques whereby the cheque issuer and the receiver reside in the same city

Outstation Cheques - These are cheques whereby the cheque issuer and receiver reside in different cities

How Does Cheque Clearing & Collection Works?

Lets say I owe you Rs. 10,000/- and give you a cheque drawn on my bank account (ICICI). Let us see the sequence of events

1. I hand over the cheque worth Rs. 10,000/- drawn on ICICI Bank to you
2. You take it to your bank (lets say HDFC) and deposit it into your bank account
3. HDFC Processes the cheque and sends a request to ICICI for payment
4. If I have enough funds in my account, ICICI will process the payment and release the funds to HDFC Bank
5. HDFC Bank processes the payment and credits the funds into your bank account

The above is a simple illustration of how this whole Cheque Collection & Clearing mechanism works. If you had an ICICI Bank account too, this whole process would be much faster because, step 3 is not required at all. The bank will just check if you have enough funds in your account and if so, move the money into the payee's bank account.

Cheque Clearing & Collection Timelines

In the previous section, in Step 3 - HDFC Bank sends a request to ICICI Bank for payment and in Step 4 ICICI releases the funds to HDFC Bank. However, this step is the one that takes the most time. Banks have a predetermined service standards on how much time they can take to process cheques issued/deposited by customers. This depends on various scenarios like, whether both parties have a bank account with the same bank or whether it is a local or outstation cheque and so on...

The Guidelines as set by RBI are:

Local Cheques - All Local Cheques must be cleared on a T+1 basis. i.e., If I Deposit a local cheque into my bank account today (irrespective of which bank the cheque is drawn or deposited) the funds must reach my account by End-Of-Day Tomorrow. Of course, this is only if the deposit happened before the cut-off time for today.

For ex: Lets say ICICI Bank has a cut of time of 1:00 PM. So, all cheques deposited after 1:00 PM the previous day and those deposited before 1:00 PM today are processed in one batch and sent for payment. If you deposit your cheque after 1:00 PM, it will be processed only tomorrow and funds will be available one day after that.

Outstation Cheques - Processing of Outstation Cheques depends on what location the drawn bank is situation.

Banks in State Capitals - Max 7 days
Banks in Major Cities - Max 10 days
Banks in Other Locations - Max 14 days

Go back to the example a few paragraphs away where I gave you a cheque. Here, lets do a small change. Lets say you live in Delhi and I am giving you a cheque. If I lived in Chennai, you will get the money in a maximum of 7 days. Whereas, if I lived in a Major city of TamilNadu say Trichy or Madurai you will get the money in 10 days max and if I lived in an area like Thirumalaisamudram in Tanjore, it will take up to 14 days.

Did Thirumalaisamudram catch you off guard? That is the village in Tanjore, Tamil Nadu where I did my college. So, just used it for example :-)

Cheque Clearing & Collection Fees

Local Cheque collection charges are decided by the concerned bank from time to time and communicated to customer as part of the Code of Bank’s Commitment to Customers. However, these days most banks dont charge any fee on local cheque collection.

In case of Outstation Cheques, all banks charge a fee. Go back to the example where I lived in various parts of Tamil Nadu and gave you a cheque... In such cases, RBI has set up guidelines on the maximum fee banks can charge you depending on the cheque amount.

* Up to and including Rs.5000 – Rs.25 per instrument + service tax
* Above Rs.5000 and Up to and including Rs. 10,000 – not exceeding Rs. 50 per instrument+ service tax
* Above Rs. 10,000 and up to and including Rs. 1, 00,000 – not exceeding Rs. 100 per instrument + service tax
* Rs.1, 00,001 and above – left to the banks to decide. You need to check your banks oustation cheque collection policy & fees document to find out the fee. However, RBI has recently asked Banks in a recent circular to reconsider their charges & Reduce them. There is not much clarity on how much banks will reduce these fees but they will be reducing it soon.

No additional charges such as courier charges, out of pocket expenses, etc., should be levied.

So, if you used an outstation cheque and were charged a fee that is more than the amounts above, you have the right to question your bank

What is a Cheque ? Meaning ↓


Cheque is an important negotiable instrument which can be transferred by mere hand delivery. Cheque is used to make safe and convenient payment. It is less risky and the danger of loss is minimised.

Cheque and types of cheques
Image Credits © one take movie

square Definition of a Cheque ↓


"Cheque is an instrument in writing containing an unconditional order, addressed to a banker, sign by the person who has deposited money with the banker, requiring him to pay on demand a certain sum of money only to or to the order of certain person or to the bearer of instrument."

square Different Kinds / Types of Cheques ↓


1. Bearer Cheque


When the words "or bearer" appearing on the face of the cheque are not cancelled, the cheque is called a bearer cheque. The bearer cheque is payable to the person specified therein or to any other else who presents it to the bank for payment. However, such cheques are risky, this is because if such cheques are lost, the finder of the cheque can collect payment from the bank.

2. Order Cheque


When the word "bearer" appearing on the face of a cheque is cancelled and when in its place the word "or order" is written on the face of the cheque, the cheque is called an order cheque. Such a cheque is payable to the person specified therein as the payee, or to any one else to whom it is endorsed (transferred).

3. Uncrossed / Open Cheque


When a cheque is not crossed, it is known as an "Open Cheque" or an "Uncrossed Cheque". The payment of such a cheque can be obtained at the counter of the bank. An open cheque may be a bearer cheque or an order one.

4. Crossed Cheque


Crossing of cheque means drawing two parallel lines on the face of the cheque with or without additional words like "& CO." or "Account Payee" or "Not Negotiable". A crossed cheque cannot be encashed at the cash counter of a bank but it can only be credited to the payee's account.

5. Anti-Dated Cheque


If a cheque bears a date earlier than the date on which it is presented to the bank, it is called as "anti-dated cheque". Such a cheque is valid upto three months from the date of the cheque.

6. Post-Dated Cheque


If a cheque bears a date which is yet to come (future date) then it is known as post-dated cheque. A post dated cheque cannot be honoured earlier than the date on the cheque.

7. Stale Cheque


If a cheque is presented for payment after three months from the date of the cheque it is called stale cheque. A stale cheque is not honoured by the bank.

Happy Using Cheques!!!

The Future of Remote Work, According to Startups

  The Future of Remote Work, According to Startups No matter where in the world you log in from—Silicon Valley, London, and beyond—COVID-19 ...