Tuesday, December 23, 2014

Startup Life: When to tell your team... we're almost out of cash!

Is your startup nearing $0 cash? When do you tell the team?

You are not alone!

Doing a startup is hard.  Whether you are bootstrapping, VC funded, or even backed as an internal skunkworks, you may find that your bank account is getting awfully close to zero.  You are not alone.  Nearly ever startup I've ever been a part of has hit this point.  It is scary.  It is stressful.  And what do you do about the team?  Some of them, you know, depend on that regular startup paycheck!

Here's what you need to know!

  1. Fiduciary Duty: First, you have a duty to your shareholders which is actually very simple: if you are nearing "insufficient cash" to pay your debts (defined as non-investment capital), then you must inform your shareholders (and/or board of directors) very soon.  They may be able to help.  My advice: have a plan in place that shows how much you need, or how you will come through anyways.  Even better: don't get here... raise more funds before this point.
  2. Duty to Employees:  If there is ANY doubt that you might miss a paycheck... you need to tell people as soon as you have that doubt.  Personally, I like the 1-month left rule... if you will be able to make 1 more months of paychecks, and then no more... it's time to share the news... REMEMBER TO ALSO share your plan.  Employees will want to know how they can help!  Let them.  Let them help with the fundraising... make slides... etc.  Let them help with sales (the whole company can do sales!).
  3. If it get's dire... like down to 2 weeks... one thing you might do is ask if any employees can take partial deferred salary.  This is salary, you are asking them to risk, on the hope that you'll make it through.  100% is not a great idea (unless you are the founder), but I've gotten nearly 100% participation in a 50% program in the past... and we made it through!
I hope this helps you know what to do (this time or next time).  Remember, it's normal, it's stressful, but you DO need to tell your people.  The best employees will only respect you more for your transparency.  The worst, who quit on you, you don't need anyways.

Good luck!


Saturday, October 25, 2014

7-Step Results-based Marketing for Startups Harlan's 2014 Captivate Conference Slides

I hope you enjoyed my talk this year at the Captivate Conference on Marketing for Start-ups (and specifically game startups).

Here are my slides from the talk, and as always feel free to connect with me on LinkedIn (see sidebar) or Twitter ( @harlanbeverly ).

Comments, email, and feedback welcome.

Slides Follow:

7-Step Results-based Marketing for Startups by Harlan T Beverly from Harlan Beverly

All of marketing should be about results! When you are a startup this is even more important, because you have no money to waste on "brand"... you certainly don't have the time to waste. Harlan T. Beverly, 3-time Start-up Founder & CEO, will present a 7-Step process to create an effective Results-based "marketing engine" that will drive results for your startup. Harlan will give specific examples from marketing campaigns he has created from: Bigfoot Networks, Harlan's video game hardware company, Night Owl Games, where Harlan developed marketing that attracted more than 1,000,000 players, INGZ games, where Harlan created marketing campaigns to drive users to install mobile games, and Key Ingredient, where Harlan is currently CEO and drives 3,000,000+ visitors/month to http://www.keyingredient.com


Friday, October 3, 2014

How to do Facebook Marketing - a Primer for Engineers

Dear Engineers and Other People who Think Logically,

Here is how to "do" Facebook Marketing.  It's pretty simple, and it also explains the fundamentals of Marketing.

The analogy I use in the presentation is that of a Fair or Carnival...  it's a good analogy, use it forever to explain marketing.  Imagine yourself selling a product or service (cotton candy or a carnival game) on the streets of a Fair!  How can you be successful?

See the presentation to learn:  How to DO Marketing on Facebook.  How to use Facebook Insights (e.g. Facebook Analytics).

Enjoy!




Saturday, September 13, 2014

5 Painful Lessons from Value Driven Leadership

What is value-driven leadership? Simply put, it's leading by creating a common set of values and goals that everyone agrees to and aspires to uphold, then doing your best to get out of the way! It can be very painful, however, because having a strong culture with clear values, means living up to them. Here are 5 Painful lessons I have learned while trying my very best to do value driven leadership as CEO.... In reverse order to the #1 most painful lesson.

 5. The values you create can make you feel trapped because you yourself have to live up to them. The lesson is don't create values of your company that you can't live up to!

 4. Getting out of the way is hard to do. It's especially hard when you know how to do the job better and faster than the person who's job it is to do it. That's really hard... The lesson is, you have to be able to let someone fail, and let them come to you for help. As soon as you break the rule and do the job for them, without them asking for help, you've broken the value-driven leadership.

 3. Recruiting is harder. Finding people is just plain hard because you know they have to both match the values of the company AND be able to do the job. Creating a good set of screening questions is key.

 2. It hurts when you have to let someone go. They probably do live up to many aspects of your culture and you've grown to like them... but either they can't do the job, or more likely, there has been some value mismatch you didn't catch on #3 above. The lesson is, do it quickly, before you become too attached (if you can)... and if not, do it as soon as you are sure there is a core value mismatch.

Finally... #1

1. It hurts really bad when people decide to quit. Especially when they were a perfect match for value and role... or then again, maybe they weren't a perfect match after all. Either way, the trick here is to move on quickly, but stay in touch... you never know, Austin is a small town!

Tuesday, July 15, 2014

How to Do Sales & Marketing for Startups

Today I got to present to The University of Texas Austin Technology Incubator SEAL program. This is my favorite presentation to give: Sales & Marketing for Startups.  It was a lot of fun as always, and my favorite part was yelling at one of the attendees that he should NOT buy my Nissan Minivan!

Why would I do that?  Because (in my fictional example) he has 4 teenagers and I am NOT a slimy car-salesman... this minivan (fictional) will NOT fit his teenagers!  He should go to Toyota instead.

Remember, true sales-people are NEVER slimy.  They always want to sell ONLY if the sale will create value...  e.g. that the price is lower than the value that the product/service delivers AND that it solves the problem you are trying to solve.

So buy Toyota....

Anyways, here are the slides from my talk... I greatly enjoyed it and love almost any opportunity to talk about Sales & Marketing for startups (or non-startups).

Feel free to contact me @harlanbeverly







Wednesday, June 18, 2014

3 ways to do Google A/B Testing or Multivariate testing in a Website or App

AB Testing with Google Analytics

Contents

Summary

This page details the methods by which we can use Google Analytics to perform A/B Testing such that it can help us determine if one asset or algorithm or text is better than another.
Multivariate testing can be done by running multiple A/B tests at the same time.
This document explains three methods of A/B Testing...
  1. Redirect Method (not ideal, but very easy)
  2. Javascript Method (ideal way!!!)
  3. Dynamic HTML Method (PHP/Python templates)... (less ideal as you will see).

Step 1: Google Analytics Configuration

In order to do A/B testing Google Analytics must be setup and installed on all pages of a site. In addition, you must establish 2 extra things.
a.) A Goal.
b.) An Experiment.

Setting up a Goal

Google Analytics (at http://google.com/analytics) lets you easily setup goals such as time on site, certain URL reached, or even certain Event reached.
To set up a goal, sign in to analytics and clic the ADMIN button (currently top-right of page). From here, select the site, property, and then under profile, select "Goals".
Click "Create a Goal" and you will be guided to setup a Destination Goal (you need a destination URL, a Duration Goal, a #Pages Goal, or an Event Goal!
THE EASIEST GOALS ARE DESTINATION URLS! TRY TO DESIGN THE PAGES TO LOAD A "THANK YOU PAGE" as A SEPERATE URL>>> THIS MAKES GOAL SETTING EASY!
To do an event goal, you must setup an event on your site. Setting up an event is pretty easy, you just have to do a "push" with javascript when the goal is achieved. See:https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide
here's some real sample code for setting up an event that's been tested athttp://www.keyingredient.com/blog/events:
  //When person submits their URL, load this html
  <script>
  _gaq.push(['_trackEvent', 'Conversions', 'Converted', 'SigneupCCCEmail', 1]);
  </script>

Setting up an Experiment

To setup an experiment you have to go to a different area than goals... Click on the website from the GA homepage, then click on CONTENT in the menu on the left. Next, click on Experiments. (this is also where you can see the RESULTS of your experiment). Next, click on "Create Experiment".
Now you have 2 choices... either you are going to use "REDIRECT METHOD" or you are NOT... (I prefer NOT, but redirect is easier).
If you will do REDIRECT METHOD, then SKIP TO NEXT SECTION.
If you will NOT do redirects (which is better on users IMHO), then to setup the experiment...
  1. enter a fake url that does not exist.. (such as asdasdjjj.com), click Start Setup
  2. give it a descriptive name (like fake_test_hoempage_banner_experiment)
  3. now select a metric.  (THIS IS THE GOAL YOU SETUP IN THE LAST STEP!!!!)  
  4. hit next step.
  5. now enter a fake url for each variation you will use... feel free to make it descriptive if you wish.
  6. hit Next step.
  7. Select "Manually insert the code" .. you can ignore the code.. (it's for redirect method).  INSTEAD, get the EXPERIMENT_ID  (this is important for later steps).
  8.  Hit next step and then Start Experiment... (Any warnings can be ignored, the urls you gave were fake.. and that's okay. it's what you want for a 'non-redirect' method.).  NOTE: if you were doing redirect method, you wouldn't want any warnings here..

Step 2: Implementing the Experiment in Code

Before you start implementing new experiment, need to declare it's ID in keysocial/settings/shared.py.
This operation is important. It later will allow unit-tests (they connecting to Google API) check experiments statuses. And if they are ended, tests will notify about this while failing.
# Google experiments list
GOOGLE_EXPERIMENTS = {
    'holiday_banner': 'IK__c5dVRNqF2fDB9sZdOA',
    'experiment_description': 'EXPERIMENT_ID', <----
}
To use this experiment ID, you need to pass it while rendering jinja template.
import settings
context = {
    'recipe': recipe,
    'experiments': settings.GOOGLE_EXPERIMENTS,  <----
}
self.render_jinja(template, context)
Then use it target place i.e.
<div class="experiment" data-bind="googleExperiment: {id: '{{ experiments['experiment_description'] }}'>

Method 1: Redirect Method

If you are choosing the redirect method, then you have to do things a little differently in Google Analytics and on your site.
  1. FIRST, you MUST have 2 unique URL pages (a passed in parameter IS sufficient for uniqueness).  EXAMPLE:  http://mysite.com/home   http://mysite.com/althome  would work,  or http://mysite.com and http://mysite.com?var=1  would work....  BUT THEY MUST BE DIFFERENT< AND YOUR EXPERIMENT IS SIMPLY GOING TO RANDOMLY REDIRECT PEOPLE TO ONE PAGE VS THE OTHER (that is the redirect experiment).
  2. Next, during the Experiment Setup, you must input these 'real' urls into the URL fields for each variation..
Now, all you do is when you hit "Manually insert the code", put the redirect code they provide there onto the page that gets loaded first (it does not go on both pages...just on the one that gets loaded first).. such ashttp://mysite.com/home (but NOT on http://mysite.com/althome).
BOTH PAGES (and this is always true of all pages), must have the normal Google Analytics Tracking codes installed...
That's it.... your experiment will now run, pick a winner and you are done!

Method 2: Javascript Method

This is the ideal way, because it is client side, requires no redirect, and can use Google's Multi-armed-bandit technique to decide which will automatically figure out a winner better AND remember to whom what version was showed (for consistency)
First, Setup the GA Goal and Experiment as described in Step 1.
Now, simply add the following Javascript...
Got Feedback? Email us at <a href="mailto:help@keyingredient.com">help@keyingredient.com</a> and let us know how we are doing!</a>
   <script src="//www.google-analytics.com/cx/api.js?experiment=WfCFFL4gS_YOUR_EXPERIMENT_ID_HERE_z2ie7J_Vqg3nw"></script>
   <script>
     // 2. Choose the Variation for the Visitor
     var variation = cxApi.chooseVariation();
   
         // Show the HTML or Not!
        var content = document.getElementById("testhtml");
   
    if (variation == 1) {
        content.style.display = "none";
          
            } else {
        content.style.display = "block";
   
        }
   
     cxApi.setChosenVariation(
       variation,             // The index of the variation shown to the visitor
       'WfCFFL4gS_YOUR_EXPERIMENT_ID_HERE_z2ie7J_Vqg3nw'                // The id of the experiment the user has been exposed to
     );
     _gaq.push(['_trackEvent', 'WfCFFL4gS_YOUR_EXPERIMENT_ID_HERE_z2ie7J_Vqg3nw', 'WfCFFL4gS_YOUR_EXPERIMENT_ID_HERE_z2ie7J_Vqg3nw',         'WfCFFL4gS_YOUR_EXPERIMENT_ID_HERE_z2ie7J_Vqg3nw', variation, true]);
   
   </script>
or this way... (if you want to move things around instead:
   <script src="//www.google-analytics.com/cx/api.js?experiment=8eynxD_YOUR_EXPERIMENT_ID_HERE_JCSC2X3lOOS8IyhQ"></script>
   <script>
   var $j = jQuery.noConflict();
   $j(window).bind("load", function() {
     // 2. Choose the Variation for the Visitor
     var variation = cxApi.chooseVariation();
   
         // Show the HTML or Not!
        var content = document.getElementById("theccclogo");
   
    if (variation == 1) {
        content.style.width = "400px";
        content.style.height = "295px";
        content.style.top="-270px";
        content.style.left="270px";
        content.style.marginBottom="-250px";
          
            } else {
   
        }
   
     cxApi.setChosenVariation(
       variation,             // The index of the variation shown to the visitor
       '8eynxD_YOUR_EXPERIMENT_ID_HERE_JCSC2X3lOOS8IyhQ'                // The id of the experiment the user has been exposed to
     );
     _gaq.push(['_trackEvent', '8eynxD_YOUR_EXPERIMENT_ID_HERE_JCSC2X3lOOS8IyhQ', '8eynxD_YOUR_EXPERIMENT_ID_HERE_JCSC2X3lOOS8IyhQ',     '8eynxD_YOUR_EXPERIMENT_ID_HERE_JCSC2X3lOOS8IyhQ', variation, true]);
   });
   </script>

Method 3: Dynamic HTML Method (PHP/Python templates)

This method is less ideal because it is more complex, and it requires that the PHP or PYTHON determine which experiment to show.. and keep consistency (via cookie or session or something).

NOTE: Sometimes these guy say you need to use the EXPERIMENT API, to set the setServingFramework to API or External.. this is NOT TRUE, and it's a hassle to do. just use the Google analytics interface, it's much easier... and you don't need to set the framework to anything.. I've tested it to work in all methods.
So here's my short explanation of how to do it. [PHP focused method, but PYTHON is basically the same deal, just use your preferred PYTHON templating language]
First, load the needed Experiment Javascript:
  <script src="//www.google-analytics.com/cx/api.js"></script>
Next, setup your experimentID somehow.. I did this in PHP using:
  <?php
  // The Id of the experiment running on the page
  $experimentId = 'YByMKfprRCStcMvK8zh1yw';
  
  // The default variation chosen for the visitor
  // I DON’T SET This here, because I set it later on in the code … $chosenVariation= 0;
  ?>
Then, select a way to determine which version to show.. (random? based on cookie? etc.).. I just used IP Address, because it was easy and fairly consistent...
  <?php
  $ipaddr = $_SERVER['REMOTE_ADDR'];
  $lastval = substr($ipaddr, -1);
  $lastvalmod2 = $lastval%2;
  if($lastvalmod2 === 1) {
  $chosenVariation= 0;
  } else { $chosenVariation= 1; }
  ?>
A better way in Python would be to check user_ids or randomly assign a number then store that in the user’s session… (or the not logged in user’s session)
Next, you have to send this chosenVariation to GA... here's the code to do that in PHP:
  <script>
    cxApi.setChosenVariation(
      <?php echo $chosenVariation; ?>,             // The index of the variation shown to the visitor
      '<?php echo $experimentId ?>'                 // The id of the experiment the user has been exposed    to
    );
    _gaq.push(['_trackEvent', '<?php echo $experimentId ?>', '<?php echo $experimentId ?>', '<?php echo    $chosenVariation; ?>', <?php echo $chosenVariation; ?>, true]);
  </script>
That's it!

Step 3: Look at Results and Pick a Winner

Now, you can see the experiments and results (explained more fully here:https://support.google.com/analytics/answer/2365329>

NOTE ABOUT SETTING PERCENTAGE OF TRAFFIC TO EXPERIMENT

When you set the % of traffic to experiment, you are only telling google what % will see the experiment... (e.g. in the experiment they might see A or B)...
Such that if you had 2 options A/B, setting this value to 100%, means that on average A will be chosen 50% and B 50%....
If you want to set it higher, you will need to have more variations (like A,B,C,D).. even if B,C,D are actually the same variant... thus at 100% in experiment, A=25% likely, B,C,D combined to be 75% likely.
To set it lower on an A/B test.. setting the %inexperiment to 10%, would yield A at 5% of traffic and B at 5% of traffic... and 'origional (usually A) at 90%. thus A combined would be 95%. e.g.  %inexperiment * #testvariations/(origional+variations)

SIDENOTE: For any of these numbers to work like you expect, you must select ON the option to: "Distribute traffic evenly across all variations". Or else, google will adjust the weightings based on goal success.

APPENDIX: MORE INFORMATION ON STUFF

This section is just misc. information from my own notes while I was testing this stuff.
YOU CAN SEE EXPERIMENTS RUNNING ON OUR BLOG
HOMEPAGE EXAMPLE USING PHP: http://blog.keyingredient.comEXAMPLE USING JAVASCRIPT: http://blog.keyingredient.com/events

Here's my full notes.. where I tried to use the Experiments API system.. (but learned that the GA Site is easier than this). This document is intended to help with understanding of the Google A/B Testing System. By: Harlan T. Beverly 8/17/13
NOTE: This section uses PHP as sample source code… however Python API and examples are also available via Google… You should READ this section anyways, because it will help understand the Python Implementation as well.
1. Understanding the Experiments API system for Google Analytics. This link explains the system in overview…https://developers.google.com/analytics/devguides/platform/features/experiments
And this is a link to explain the Client-Side redirect method….https://developers.google.com/analytics/devguides/collection/gajs/experiments
However, half-way down the above page… it talks generally about a SERVER side method, that doesn’t require a redirect (for dynamic content pages)…
This document is all about the DYNAMIC CONTENT METHOD of GOOGLE EXPERIEMENTS A/B Testing.

2. To get started (python or php), you will need a Google Account with access to the Google Analytics for the website… request this access from lucina@keyingredient.com
A goal must be setup (or provided for you). Marketing could provide this goal for you and have it set up, or else you must set up at least 1 goal for the site using analytics system… ideally this is the goal of the A/B test (such as made it to the next page, registered, etc.).
You can do this here: https://www.google.com/analytics and click on ADMIN
While you are there you will also need the Account_Id (click on account settings), the Tracking ID (like UA-322432-22) (click on View Property Settings), and the profile_id (click on view profile settings) .
3. Now decide on the experiment (like show a different “join” button, or something). https://support.google.com/analytics/answer/1745154?hl=en
4. Next, you’ll need to enable Google Analytics API for an app:https://code.google.com/apis/console/
Full setup instructions are here:https://developers.google.com/analytics/solutions/articles/hello-analytics-apiBUT BE WARNED: Much of the code google posts has errors and won’t run!! (Old version numbers I think). Anyways, do the step called 1. Register a project in the Google APIs Console
If you get stuck, this might help: https://code.google.com/p/google-api-php-client/

4. You will also need the latest API files for the server to host!!! See…https://code.google.com/p/google-api-php-client/ Or for Pythonhttps://code.google.com/p/google-api-python-client/
        • WARNING make sure you set your paths right to where you install these libraries.

5. Now, you will need to setup a “ConfigureExperiments” page of some kind (possibly build a backend interface for this)… My example for this is built using PHP (see below: SetupAnalytics.php)… however, Python uses the same basic idea. (Oauth2 is required for this).
See my SetupAnalytics.php file below for showing how to do Oauth2…
For Python, you will have to look at their sample code:https://developers.google.com/analytics/solutions/articles/hello-analytics-api
GOTCHA: The oauth2 callback url must be set to your file (e.g. SetupAnalytics.php) or whatever.
NOTE: Their sample code is just a “Hello” to the api… which I’ve built on in my example to actually setup an actual experiment.

This ConfigureExperiments stuff is pretty complex at first, but basically:
         You are doing a POST to google using an oauthed user to create the experiment.
It returns an object that has the id in it (or you can print it)
  In my sample code… 
   I made 2 variations of a page… and I gave them names… and most importantly,
   I did the setServingFramework(‘API’)  to the experiment…. This is needed!
      Here’s the full definitions of the Management.experiments view: https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/experiments
This page tries to explain stuff.. but my code is simply easier to understand:https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtExperimentsGuide

SOME GOTCHAS!
a. you must have a goal setup in the google analytics b. you have to set you ga_id, ga_name, and ga_profile_id right for the goal! c. goals have funky names… it must be ga:goal1Copmletions or ga:goal2Completions etc… nothing else.
6. Okay, your experiments are setup… now it’s time to hook up the dynamic content to the experiment….
Basically you have two options… option 1: simply report to GA the version you chose….https://developers.google.com/analytics/devguides/collection/gajs/experiments
<script src="//www.google-analytics.com/cx/api.js"></script>

<?php // The Id of the experiment running on the page $experimentId = 'YByMKfprRCStcMvK8zh1yw';
// The default variation chosen for the visitor // I DON’T SET This here, because I set it later on in the code … $chosenVariation= 0; ?>
• THEN run the google analytics script.
<script> <?php <<<HTML
 cxApi.setChosenVariation(
   $chosenVariation,             // The index of the variation shown to the visitor
   $experimentId                 // The id of the experiment the user has been exposed to
 );
 
HTML; ?> _gaq.push(['_trackEvent', '<?php echo $experimentId ?>', '<?php echo $experimentId ?>', '<?php echo $chosenVariation; ?>', <?php echo $chosenVariation; ?>, true]); </script>
Or <script>
 cxApi.setChosenVariation(
   <?php echo $chosenVariation; ?>,             // The index of the variation shown to the visitor
   '<?php echo $experimentId ?>'                 // The id of the experiment the user has been exposed to
 );
 _gaq.push(['_trackEvent', '<?php echo $experimentId ?>', '<?php echo $experimentId ?>', '<?php echo $chosenVariation; ?>', <?php echo $chosenVariation; ?>, true]);
</script>

THIS OPTION IS NICE because you can store your choice in the user’s session/cookie too and then they don’t see different ones…. BUT it doesn’t self-optimize.
NOTE YOU MUST CALL ga again after you set Chosen Variation or else it doesn’t count page views right! _gaq.push(['_trackEvent', '<?php echo $experimentId ?>', '<?php echo $experimentId ?>', '<?php echo $chosenVariation; ?>', <?php echo $chosenVariation; ?>, true]); Option 2.https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiEventTracking?csw=1#_gat.GA_EventTracker_._trackEvent&utm_campaign=eventTracking?utm_medium=blog
Let Google pick which one to show… To do this requires the user to tell you which variation to load…. (or else requires a refresh, which we are trying to avoid).
Heres some PHP to pick a variation based on IP address..
$ipaddr = $_SERVER['REMOTE_ADDR']; $lastval = substr($ipaddr, -1); $lastvalmod2 = $lastval%2; if($lastvalmod2 === 1) { $chosenVariation= 0; } else { $chosenVariation= 1; }
A better way in Python would be to check user_ids or randomly assign a number then store that in the user’s session… (or the not logged in user’s session)

To do this without a refresh, you’ll need to have the user load the javascript that would pick a variation and then pass that variation into the server.. (this may not be possible!). so probably best not to try this..
So either: use the redirect method OR use the method where we pick which experiment to show.
IF we do the redirect method, you could just add a hook to certain pages like ?var=1 which the PHP or Python looks at to load different content. This method may be best of all worlds, but does require a redirect. And remember to CHECK THE BOX to combine urls if you use this method.
7. Now you can see the experiments:https://support.google.com/analytics/answer/2365329

• IT IS Be possible to build an analytics entry without all the fancy code, just loggin in and getting an experiment id (set the urls to 1.com 2.com , etc.) • All you really want is the Experiment ID… and the above all works correctly (no need to set the Serving Framework or do all that fancy backend authentication.
Now that you have the experiment ID and the variation IDs… you can simply proceed with setting up the experiment.
9. There is another way to do all this… using Javascript for the experiment! This way is good because it doesn’t require a refresh (javascript is doing the work) But it does require you to code up the experiment in javascript each time)https://developers.google.com/analytics/devguides/collection/gajs/experiments

Here’s how I did the Javascript method.
a. setup the experiment in analytics web interface with fake urls (oneki.com twoki.com etc.) * NOTE: I set the goal correctly though.. setting goals is really important this way, since you are relying on google to “chooseVariation”. b. add the following javascript and html (notice this is an example where I show or hide the “got feedback’ stuff). NOTE: I’ve added the experiment ID manually here since I am not using PHP
Got Feedback? Email us at <a href="mailto:help@keyingredient.com">help@keyingredient.com</a> and let us know how we are doing!</a>
<script src="//www.google-analytics.com/cx/api.js?experiment=WfCFFL4gSz2ie7J_Vqg3nw"></script> <script>
 // 2. Choose the Variation for the Visitor
 var variation = cxApi.chooseVariation();
     // Show the HTML or Not!
    var content = document.getElementById("testhtml");
if (variation == 1) {
    content.style.display = "none";
      
        } else {
    content.style.display = "block";
    }
 cxApi.setChosenVariation(
   variation,             // The index of the variation shown to the visitor
   'WfCFFL4gSz2ie7J_Vqg3nw'                // The id of the experiment the user has been exposed to
 );
 _gaq.push(['_trackEvent', 'WfCFFL4gSz2ie7J_Vqg3nw', 'WfCFFL4gSz2ie7J_Vqg3nw', 'WfCFFL4gSz2ie7J_Vqg3nw', variation, true]);
</script>
---

Testing experiments

For test particular variation in experiments add GET parameters to url. Pattern for url looks like this:
http://keyingredient.com/?test_[experiment_id]=[variation_value]&test_[experiment2_id]=[variation_value]
for example if experiment_id=jFaGW6l6Rny0tjL_lsOPeQ and we want test first variation:
http://keyingredient.com/?test_jFaGW6l6Rny0tjL_lsOPeQ=1
After enter on above link, the variation for this experiment will be save to a cookie.
For reset the variation value enter to link looks like this:
http://keyingredient.com/?test_[experiment_id]
In above case:
http://keyingredient.com/?test_jFaGW6l6Rny0tjL_lsOPeQ
Implementation for this feature is in:
assets/js/src/models/googleexperiment.js

Tuesday, June 17, 2014

3 Planning Techniques to Save your Job: Agile, Scrum, and Kanban

If you don't know about Agile, Scrum, and Kanban, this short write-up should help get you on your way... and could change your life and save your job.

I've broken this into three parts, Part 1 and 2 are here... Part 3 is coming soon (my colleague Lucina is helping me with it).

Part 1: Learn why Waterfall Planning (the kind you do every day for yourself and at your work) is BROKEN!




Part 2: Learn why Agile and Kanban can save your job... and make you more money... and frankly, live a less stressful, more fulfilling life (and career).  This presentation even shows you how to implement a personal Kanban to keep your life in order: with a real example from my favorite Kanban tool which is http://www.toodledo.com.




Part 3: Learn about Scrum, and why it may be even better than Kanban (depending on your situation)... and exactly how to do it at your company!

*** COMING SOON: Lucina is putting this together ***

Tuesday, April 8, 2014

What working at Intel taught me about Employee Retention

Working at Intel taught me a lot.  They did a lot of very smart things, especially in the area of people management.  Not only did they put a huge emphasis on training (for example mandatory manager training & 7-Habits training), but also they really had a great program for employee retention.  Recently, I have been thinking about retention, and I have solidified my thoughts into a simple sentence that should be the driving for of HR and all things retention... here it is:  "We can't expect every employee to stay here their entire career, but we can try to make it so good that they might want to, simply by providing Training, Opportunity for Advancement, and creating together a Great Place to Work." -H.Beverly 4/8/2014.

This sentence is not just bullshit.  It's what I really believe.  I know I'm going to lose people, but hopefully, I can make it hard for them to decide to leave....

My goals are:

1.) Offer the training to help people develop their career on company time.

* I do this with a monthly or quarterly meeting with all employees to discuss career vision, training opportunities, and growth.  * I also do this by offering company funds for seminars and education opportunities.

2.) Make available new roles for people as they advance in their career.

* This isn't always easy, but sometimes, you just have to make a role, even if it doesn't make sense.

3.) Makeing a Working Environment that is rewarding, safe, empowered, and most importantly that everyone knows that what they do matters, and the People who don't contribute will be cut loose!

* This is not easy... but starts with free coffee... really!  Free coffee, fun company sponsored events, and great work-space is a start.  I follow that up with what really matters:  Empowerment -> Giving control over to others for their responsibilities, Purpose -> Making it clear how what people do effects the bottom line.   And lastly, cutting dead weight.. people that just don't care, cannot stay!

So, Am I the best at retention?  No.  I make mistakes.  Sometimes I get angry (withdrawls from the emotional bank account).  Sometimes I fail to notice when reward or promotion is ready.  But I try.  It's all we can do!


Sunday, March 9, 2014

5 Things You Should Say Every Day at Work

Want to love your job more?  Want to work in a very positive work environment?  Want a raise, more responsibility, or a promotion?  Then these are the 5 things you should be saying every day at work.  Five simple phrases that can lead you to a more rewarding and rewarded career.

1. "I'll take Ownership of this, and see that it gets done."

Everyone is busy.  Managers and Co-workers both love it when someone else takes responsibility.  Making it explicit with this phrase will win you friends, especially when you build a reputation for actually delivering what you own.  Fail to deliver though, and people will stop letting you own, a very bad thing.

2. "Is there anything I can do to help?"

Similar to taking ownership, people appreciate help when they are swamped.  In this case though, your not saying you'll take charge, just that you'll help in a task or two.

3. "I'm sorry, I messed up and here's how I plan to fix it."

Nobody likes to mess up, but it happens.  And when sh*t happens, it's always best to own up to it, with an action plan to fix it.  Even if fix it means minimizing the damage, a plan is always better than not having one.

4. "Do I understand correctly that you are saying ...?"

Fill in the blank with exactly what you think they said.  If you can demonstrate that you have completely heard them, even without agreeing, it goes a long way towards letting the other person open up about your feedback.  Dr. Stephen Covey said "Seek first to understand, then to be understood.".  This simple phrase can change your life.  Suddenly, people will prefer to speak to you because "you listen".   Even if you don't agree, you at least listen!

5. "Great job!"

We all have a little puppy deep inside our hearts.  We don't want to be yelled at when we poo on the floor... we know we did wrong.   But we DO love praise when we do something right!  Say it often, but of course, only say it when you mean it.   Don't praise poor work, no comments are needed.

photo via cc

Sunday, March 2, 2014

50 Must Do Things in Austin Texas

Got this list from a.) My Own Texas Sized Experiences b.) Mix 94.7 Facebook Page.  c.) 365 Things to do in Austin

1. Go to A Rodeo.
2. Go on a Guided Hunt in Laredo
3. Go to ACL Festival
4. Go to a Country Line Dance
5. Go to a Concert at Stubbs & the Backyard
6. Go swimming in Galveston
7. Eat Tex-Mex in San Antonio
8. Eat lots of BBQ, especially Meijers or Southside in Elgin, TX  (and many others throughout the state)
9. Go to a Country Bar with a Bull.. and ride the Bull.
10. Go to a Folk Festival
11. Go to a Renaissance Festival

..............................................and the remainder of the list from lots of other folks:

What is the one thing you have to do in the state of Texas? 
Like ·  · 

Blog Archive

Followers