All posts by user

Kerika @ Kerika: How we use our own product

We are often asked how the Kerika team itself uses Kerika, and we freely share this through demos we have done in person for potential customers and at various events. For those who we haven’t met in person, here’s a blog post instead..

1. Kerika runs on Kerika.

Pretty much everything we do, from the smallest, tangential effort to our main product development is done using the Kerika software.

(It shouldn’t surprise you to hear that, given that we are a distributed team ourselves — spread out between Seattle and India.)

2. No email, limited phone calls

In fact, we gave up using internal email back in Dec 2013. (Email sucks, and Kerika is the smarter alternative to spam.)

Because our team is spread out over 10,000 miles, we do occasional phone calls, using Skype or Google Hangouts, to discuss product strategy, but we don’t have daily phone calls as a matter of routine.

We have a phone call only when there is something substantial to discuss, never to catch up on routine status. In other words, all our phone conferences are about interesting topics, like “What do you think about this idea…?” or “I met a customer today who brought up this problem…”; never about “Where are you with Task X?”.

Kerika keeps us in perfect sync across these 10,000 miles on all matters of routine status and project management, so our phone calls are all strategic in nature.

3.  Scrum for Product Development

We work with a 2-week Sprint Cycle for the most part, although we have occasionally deviated from this — never with great results, so sticking to the cycle is usually a good idea!

We capture all of our product ideas and feature requests in one large Scrum Board, which we call, simply, Product Planning.

This board organizes our ideas into various buckets, like Valuable for Enterprises and Valuable for Individuals:

Product Planning buckets
Product Planning buckets

You might notice that the Backlog column is relatively small: only 54 items. That’s because not everything in the other buckets is ready to go into the Backlog, either because a feature isn’t well defined enough, or it isn’t considered important enough to deal with in the short-term.

(We have a lot of ideas that sit and gestate for months, even years!)

It’s also worth noting that the Trash contains 62 items: this means we reject as many ideas as we pursue!

4. A Shared Backlog

As ideas for various features get prioritized — and, more importantly, defined clearly enough to be analyzed in detail by our developers — they get moved to the Backlog.

This backlog is shared by all the individual product development Scrum Boards:

Product Planning process
Product Planning process

(And, by the way, the screenshot above is from a Kerika Whiteboard that we use to map out our product planning process.)

Each Sprint is organized as a separate Scrum Board, pulling items from the common Backlog.

As items get done (or not, as the case may be), the Backlog slowly shrinks over time.

But, as ideas for new features gets firmed up on the Product Planning board, this keeps feeding more stuff into the Backlog. So, the net result is that our Backlog has remained the same size for years: about 50-60 items.

We have been doing this for a while now, and are currently wrapping up Sprint 55, with each Sprint taking at least 2 weeks, and several taking 1 month to complete.

Here’s an example of one of our Scrum Boards:

Scrum Board
Scrum Board

5. Kerika’s Smart Notifications

So, if we are a distributed team that doesn’t use email, and not that much phone either, how do we keep up with what’s happening? The answer is: Kerika’s smart notifications help each of us easily keep track of changes taking place across literally hundreds of cards each day.

Here’s an example:

Smart notifications
Smart notifications

At a glance we can tell that this card has

  • Moved
  • Has a new due date
  • Has new attachments
  • Has new (unread) chat messages
  • And, unfortunately, needs rework :-(

These smart notifications replace dumb email with a much more efficient mechanism for keeping everyone on the same page.

6. The Development Process

If we open up one of these cards, we can get a glimpse of the Kerika development process. Let’s start with the chat thread on this card:

Example of new chat
Example of new chat

This chat shows a typical interaction between a junior developer and a technical lead: after writing the code for a particular feature, the developer has passed it on to the tech lead for code review.

The code review itself is attached to the card, as an attachment:

Adding code review to a card
Adding code review to a card

For each feature we develop, our engineers create a small work plan that outlines their design thinking.

This design/work plan is a critical artifact for good software development: it ensures that people can review the work more easily and effectively, and it also provides a reference for the future — if ever a bug is found in this particular feature, we can go back to the work plan to see where the design flaw may have originated.

The code review is typically very short, and attached (in this case) as a Google Doc:

Example of code review
Example of code review

 

7. Card History

Each card in Kerika keeps track of its own history, which makes it easy for a distributed team to keep track of everything that happened. Frequently, a number of changes may have taken place on a single card during a workday, and someone who is 10,000 miles away is also about 13 hours away in terms of timezones, so the history feature is useful for understanding all the changes that took place when you weren’t looking.

History of the work
History of the work

 

So, that’s a typical card, on a typical board. And, in a typical 2-week Sprint Cycle, our development team handles 175-200 cards!

We love Kerika, not just because we have built it, but because it makes our distributed team so very effective!

How to install Kerika from the Google Apps Marketplace: step-by-step directions

If you have a premium (i.e. paid) version of Google Apps running in your organization, your Google Apps Administrator will need to authorize Kerika for your domain, before anyone within the organization can use Kerika.

Here’s step-by-step directions on how to do this:

1. Go to your Google Apps Admin console.

Go to http://admin.google.com, and log in as the Google Apps Administrator for your domain:

Start at Google Admin console
Start at Google Admin console

 

2. Click on the “Apps” button.

This is where you can manage all your Google Apps, as well as third-party apps like Kerika that integrate with your Google Apps:

Click on the Apps button
Click on the Apps button

 

3. Go to “Marketplace Apps”.

Google separates out its own apps from third-party apps, so you want to click on “Marketplace Apps”:

Go to Google Apps Marketplace
Go to Google Apps Marketplace

 

4. Click on “Add Services”.

All the apps you currently have installed for your domain will show up here (in this example, none have been installed so far); click on the blue “Add services” link:

Add services to your domain
Add services to your domain

 

5.  Search for Kerika.

Search for “Kerika” in the Google Apps Marketplace:

Search for Kerika
Search for Kerika

 

6. Click on “Install App”.

Kerika’s entry will show up in your search results; click on the blue “Install App” button:

Click on Install App
Click on Install App

 

7. Get ready to install

What you see next:

Get ready to install
Get ready to install

 

8. Accept the Terms

Kerika uses your Google Drive to store your project files; you can learn more about how Kerika works with Google:

Click to accept terms
Click to accept terms

 

9. Success!

Success!
Success!

 

10. All done…

All done
All done

 

11. Kerika now shows up in the list of apps for your domain

Looking good
Looking good

 

12. Still having problems?

Make sure you have granted Kerika “data access” to your Google Drive:

Make sure data access has been granted
Make sure data access has been granted

Follow, Unfollow, Re-follow, Don’t Follow

We have a small Twitter following, admittedly, but for the most part it looks very relevant: folks who are (a) real, and (b) actually interested in collaboration, Lean and Agile.

The part about “real” may sound odd, but consider for a moment how many Twitter accounts are actually apps that post stuff automatically, with little or no human intervention in terms of what is read or what is written.

Something peculiar we noticed recently is that we would get notifications from Twitter say that the same person, say User X, was now following us: every 3 days or so, Twitter would tell us that User X is now a new follower of Kerika.

There are a bunch of “User Xs” out there: people who will follow you on Twitter not because they are interested in what you have been posting, but because they want you to follow them back, which increases their “social capital.”

Here’s one of our followers: a total of 26 tweets, yet she has 8,675 followers!

What's wrong with this picture?
What’s wrong with this picture?

Whenever someone follows @kerika, we are happy to take a look at their Twitter feed in return, and see whether it would be worth following them in return: after all, we, too, want Twitter to be a good source of news and views.

But a lot of folks aren’t worth following for a bunch of reasons:

  • They just retweet stuff; they don’t write anything.
  • They are “real people”, but are clearly using software to find material for their Twitter posts, which is the same as saying they don’t write anything.
  • They are “real people” who don’t understand that Twitter isn’t the place to have a bunch of sidebar conversations: their Twitter feed consists mostly of cryptic asides to other users.

So, it kind of boils down to this: if you have original content to share, we would be delighted to follow you. It doesn’t have to be your own blog post; it could be that you are pretty good at finding stuff on the Internet that we might have missed ourselves.

We have found great news and opinion sites that are not very well known, thanks to Twitter, so folks who do actually curate the Web for us are always welcome.

So, what happens when we hear that User X is now following @kerika, take a look at User X’s own Twitter feed, and find it is mostly retweets and random articles?

We don’t follow User X back. User X then “unfollows” us, and retries a few days later to see if we will take the bait the second time.

We have seen some folks try this repeatedly over several weeks. We don’t know whether to find this flattering or just plain weird, and that’s assuming there is a real person doing this and not some app which blindly finds Twitter accounts to follow and then keeps track of which ones follow back.

Let’s keep it real, folks.

Don’t smile (too much)

When you chat on a card, on any Task Board or Scrum Board (or on the canvas on a Whiteboard), the chat message gets sent to the right people as emails.

And who are the “right people”? Well, anyone who is assigned to that card will get the chat sent as email, and Project Leaders can optionally get chat pushed to them as email as well. Everyone else can catch up with the chat when they visit their board.

When chat messages get pushed to you as email, you can reply to them just like regular email (all you need to do is a simply “Reply”, not a “Reply All”).

But, don’t go crazy with emoticons!  Most smileys work OK, but not every emoticon will get encoded correctly (using UTF-8).

So, it’s natural to be happy when you are using Kerika, and it’s OK to smile while you work, but don’t use too many strange emoticons in your email replies!

:-)

Reaching the edges of a diamond

When you are drawing on a canvas, either for a Whiteboard project or a canvas that you have attached to card on a Task Board or Scrum Board, Kerika gives you some basic shapes you can use to sketch out your workflow, process diagrams and other ideas:

Drawing shapes on canvas
Drawing shapes on canvas

You can connect shapes using lines and arrows (single- and double-headed), and as you move the shapes around, the lines and arrows automatically adjust so that they terminate properly on the edge of the shape.

It turns out we had a bug where the lines didn’t properly connect to the very edges of diamond (rhombus) shapes:

Problem with lines on edges of diamonds
Problem with lines on edges of diamonds

This was quite literally an “edge case” (sorry about the pun): when the line travels along the edge of the diamond shape, as the shape is moved by the user, a function is used to calculate the exact intersection of the line and the shape.

(This function is the only proof we have ever seen that anyone actually needs to use trigonometry in real life.)

When the line travels right up to the corner of the diamond shape, because the line is connecting the diamond to another shape that is of precisely the same height and width, and the two shapes are aligned perfectly (either vertically or horizontally), the function returned two possible intersection points.

We have fixed this problem in our latest release. It should make for neater looking flowcharts!

Using Kerika, but not using English

Right now, the Kerika user interface is entirely in English, but we have users worldwide and many of them use Kerika with other languages, e.g. Greek, Japanese, Korean, etc.

When you export data from a Task Board or Scrum Board that includes non-English characters, the foreign characters are actually preserved correctly as part of the exported data, but if you need to then import data into some other program, like Microsoft Word or Excel, you need to make sure the other program correctly correctly interprets the text as being in UTF-8 format.

WHY UTF-8?

UTF-8 is a coding standard that can handle all possible characters, so it works with languages like Greek, Japanese, etc. which don’t use the Roman alphabet.

For a long time now, UTF-8 has been the only global standard that works across all languages, because of its inherent flexibility in handling different character sets.

When you do an export of data from a Kerika Task Board or Scrum Board, we create the CSV files in UTF-8 format, and include what’s called the Byte Order Mark (BOM) in the first octect of the exported file.

Including a BOM is the best way to let all kinds of third-party programs know that the file is encoding in UTF-8: it’s a standard way of saying to other programs, “Hey, guys! This text may contain non-English characters.”

And for the most part, including a BOM works just fine with CSV exports from Kerika: Google Spreadsheets interprets that correctly, Microsoft Excel on Windows interprets that correctly, but not…

EXCEL ON MACS

Many version of Excel for Macs, going back to Office 2007 at least, have a bug that doesn’t correctly process the BOM character. Why this bug persisted for so long is a mystery, but there we are…

The effect of this bug is that an exported file from Kerika, containing non-English characters, will not display correctly inside Excel on Mac, although it will display correctly with other Mac programs, like the simple Text Edit.

There’s not much we can do about this bug, unfortunately.

THE TECHNICAL BACKGROUND TO ALL THIS:

BOMs are used signify what’s called the “endianess” of the file.

Endianess is a really ancient concept: in fact, most software developers who learned programming in the last couple of decades have no idea what this is about.  You can learn about endianess from Wikipedia; the short summary is that when 8-bit bytes are combined to make words, e.g. for 32-bit or 64-bit microprocessors, different manufacturers had adopted one of two conventions for organizing these bytes.

For Big-Endian systems the most significant byte was in the smallest address space, for Little-Endian systems the most significant byte was in the largest address space.

(If you have a number like 12345, for example, the “1” is the most significant digit and the “5” is the least significant. In a Big-Endian system this would be stored as “1 2 3 4 5”; in a Little-Endian system it would be stored as “5 4 3 2 1”. So, when you get presented with any number, you really need to know which of the two systems you are using, because the interpretation of the same digits would be wildly different.)

(About a dozen years ago Joel Spolsky, former PM for Excel, wrote a great article on the origins and use of BOM, for those who want to learn more about the technical details.)

Why this affects Kerika at all? Because when you do an export of cards from Kerika, the export job is run on a virtual machine running on Amazon Web Services.

We have no idea what kind of physical hardware is being used by AWS, and we are not supposed to care either: we shouldn’t have to worry about whether we are generating the CSV file using a little- or big-endian machine, and whether the user is going to open that file with a little- or big-endian machine.

That’s the whole point of using UTF-8 and a BOM: to make it possible for files to be more universally shared.

We are dropping the “Embedded View” feature for canvases

We used to have a feature where you could add a URL to a canvas or Whiteboard, and then choose to show that either as a regular bookmark, or as an embedded IFRAME.

We are dropping the embedded IFRAME feature, because most of the time it doesn’t work, and even when it does work, it’s not a great feature to have:

  1. You can only IFRAME a website if that site lets you. And, increasingly, most sites don’t.
  2. IFRAMEing a third-party website on a Kerika page is a potential cause for worry, from a security perspective, because we are letting that third-party website right into the Kerika page.

Switching between open projects

When you have expanded your view of a Kerika board to fill up the browser, using the “Max View” button on the top-right corner of the Kerika app

Max View button
Max View button

Another button appears on the top-right, to help you quickly switch between all your open project tabs, as well as get to your Home Page:

Switching between tabsThis button is color coded to help you understand, at a glance, what’s going on in all your open projects:

  • If any of your open projects has an overdue card, then the button appears in red.
  • If any of your open projects has updates that you haven’t seen yet, the button appears in orange.
  • If any of your open projects has new cards that you haven’t seen yet, the button appears in blue.

Clicking on the button shows a list of all your open projects, along with your Home Page:

Switching between tabs
Switching between tabs

The little green arrow (shown above at the top) points to the currently open tab, the one that you are viewing right now.

Projects have a blue icon; templates have a purple icon: in the example above, Statewide Tennis Shoe Distribution is a template, while all the others are projects.

  • Boards with unread updates have orange titles, like Health Services above.
  • Boards with overdue cards have red titles, like Release Note Proof of Concept above.
  • Boards with new (unseen) cards have blue titles, like Statewide Tennis Shoe Distribution above.

You can reorganize your list of open tabs by simply dragging them up or down this list.

(But, the Home Page is always on the top; that can’t be moved.)

You can also close an open project tab that you are no longer interested in by clicking on the “X” to the right edge of the entry.

So, there’s a simple visual consistency in Kerika’s design:

  • Blue = New
  • Orange = Changed
  • Red = Overdue

Change Shape: a new feature

We finally got around to adding a feature to the Canvas that we have wanted for a while, but somehow never got around to building: now, with a single click, you can change a shape on a canvas, whether it is in a Whiteboard project or attached to a card on a Task Board or Scrum Board:

Change Shape
Change Shape

Here’s why you might need this: often when you are first creating a process flow diagram, you might use shapes — rectangles, ellipses, diamonds — in an arbitrary or careless way, which is just fine because at that time you are trying to be creative rather than meticulous.

But, as the canvas takes shape and matures, you might want to go back and standard the use of particular shapes (even if you don’t strictly follow the old conventions for drawing flowcharts, which we don’t either).

This new function makes it easy for you to select a bunch of shapes and change them all to a new shape. Previously, you had to create a new shape and put it in place to replace the old shape, which was pretty inconvenient when you had a bunch of nested canvases and a bunch of curved lines connecting all the shapes.

Easy, now.