The exceptions shown in the Kerika server logs were clearly pointing to problems on Google’s end:
Google Errors
What was a little frustrating for us — and our beloved users — was that Google itself didn’t seem to be acknowledging any problems until fairly late in the day:
Oct 9 Google Apps status
By this time — almost noon, Pacific Time — dozens of Kerika users had been affected. We tried to let folks know via Twitter that there was a problem, and continued to monitor the situation through the day:
.@Google‘s authentication service for login to @Kerika is throwing a bunch of errors right now, affecting a range of our users. Apologies.
Google eventually acknowledged the problem as it became clear that it was widespread.
By mid-afternoon, the issue was largely cleared up, at least as far as Kerika was concerned, although it is possible that other apps, which also use Google for authentication or Google Drive for storage, were affected for much longer.
Once again, our apologies for everyone who was affected.
We are pleased to announce that our technical collaboration with Box continues, and Kerika has now been named a “Box Pro Partner” reflecting the strong ties we have built between the two companies as we continue to integrate with Box’s cloud services 🙂
We use a number of Amazon Web Services, including one called Simple Queue Service which Kerika uses to handle communications between our main project database server and a separate server that handles the Search function.
As with all search engines, Kerika’s Solr engine does a full indexing of the database only once: when the database is rebuilt for any reason (which happens very rarely), and after that it does incremental indexing which means that it only looks at changes made to individual boards, cards, and canvases.
Using a queue helps us manage the load of traffic going to the search engine server: in the unlikely event that a lot of people make a lot of updates to their Kerika boards at the same time, Solr won’t get overwhelmed with a sudden burst of new indexing.
There are lots of ways to implement queues in software — in fact, studying queuing theory is a standard course in all computer science programs — and at this point most apps, like Kerika, prefer not re-invent that particular wheel: instead, it is more cost-effective to use some standard queuing facility that’s available as part of the underlying platform.
AWS works very well in our opinion — it has very high reliability across most of its services — but like all software, it isn’t entirely infallible.
Over the weekend we observed a small handful of errors in our services logs where it looked like SQS had a temporary problem.
We cross-checked this time period with other activity on Kerika, and determined that about 7 Kerika boards may have been affected: not in terms of any data loss or corruption on the board itself, but in terms of some changes not being updated in the search index.
Now, 7 boards is a tiny portion of the entire Kerika project database, which numbers in the hundreds of thousands of boards, but we are glad to have spotted the potential for trouble and have re-indexed the data on these particular boards.
We post our tutorial videos on both YouTube and Vimeo, and get far more traffic on YouTube than we do on Vimeo.
But, as we go through a review/refresh of our website, we are switching over to Vimeo for embedding these tutorials, because Vimeo provides a cleaner look that seems to be less intrusive within our own design.
Here’s the same video, embedded from YouTube (on top) and Vimeo (on bottom):
The YouTube video has a weird grey shadow on the top part of the thumbnail, like it was deliberately trying to provide a retro, cathode-ray-tube (CRT) look.
(We are not fans of CRTs; don’t own vinyl any more…)
All of Kerika’s servers, which run on Amazon Web Services (AWS), operate within a Virtual Private Network (VPN), so they can be configured to only listen on local ports, e.g. ports like 10.0.0.1, etc.
This means that they cannot be accessed directly from the Internet: instead, all connections are routed through an Elastic Load Balancer (ELB), which is a special kind of AWS server that handles connections from all users.
The ELB is very secure: it implements SSL 2.0, and when vulnerabilities like Heartbleed and POODLE are discovered, it is relatively easy for us, with Amazon’s help, to quickly ensure that the the ELBs are patched. Patching the ELBs quickly gives us breathing room to patch all the other servers involved, particularly if vulnerabilities are found at the platform level itself.
But, running a VPN isn’t enough: while it blocks people outside the Kerika server environment from directly accessing our database, there is still — at least a theoretical possibility — that an attacker can find his way inside the VPN, and then try to connect to our database server on a local port.
To avoid this scenario, we use SSL within the VPN as well, so that the connections from the load balancers to the database servers are also authenticated and encrypted.
A long time ago we used to have a feature we called the “Daily Digest” which sent an email everyday summarizing all the changes that had been done to your Whiteboard projects overnight.
(This was back before we added Scrum Boards and Task Boards as a feature, when all we had was our patented Whiteboards.)
We never got this feature to work properly: not because it was buggy in a technical sense, but because we could never figure out how to make it a useful feature.
After trying numerous times to tweak it we finally gave up a long time ago.
And promptly forgot all about it.
It turns out that the feature had only been turned off on our server software; it hadn’t actually been ripped out.
We stumbled upon it in an obscure corner of our vast code base recently and were surprised to find it still there, albeit in a “commented-out” form.
Well, it’s gone for good now. It never worked well, it had been turned off for years, and now it’s in the trash…
As you know, we offer a great integration with both Google Drive and Box, giving you the choice of using either of these cloud storage services when you sign up as a Kerika user.
For most people, the choice of whether to use Google or Box is often made by their employer, whose IT departments may have already developed a cloud strategy for their organization.
For a small number of people, particularly those in organizations that haven’t committed to a particular cloud strategy yet, they do have the choice of using either cloud service, or even both.
So, what happens if you have the same email address, e.g. someone@example.com, and you set up a Google ID and a Box ID that use this same address?
You could end up with two different Kerika accounts that use the same someone@example.com ID: that’s because each sign up, from Google and from Box, takes a different path into Kerika.
This is not a great situation to be in, and we certainly don’t recommend it, but the software does try to behave well when confronted with this situation.
If another Kerika user invites you to join her project team, the invitation will show up in both your Kerika+Google and your Kerika+Box account — and in your email, of course — but when you try to accept the invitation Kerika will check to make sure you are logged into the correct service.
Here’s an example: Jon, who uses Kerika+Google, invites Arun to join one of his projects. Arun happens to have both a Kerika+Google account, and a Kerika+Box account, but Jon doesn’t know that — and he shouldn’t have to care, either!
When Arun sees the invitation, he happens to be logged into his Kerika+Box account:
Invitation received on Kerika+Box account
But when he tries to accept the invitation, Kerika checks to see whether Arun and Jon are both using the same cloud service, and discovers that Arun is logged into his Kerika+Box account and not his Kerika+Google account:
Prompt to login to Kerika+Google account
So, Kerika works behind the scenes to help Arun sort out his two accounts.
Rating Kerika (and other apps) on the Google Apps Marketplace used to be a lot simpler than it is now.
Google changed a bunch of things in the Google Apps Marketplace that now restricts rating of apps to Google Admins.
If you are the Google Admin for your organization, we would love to get your review and rating of Kerika on the Google Apps Marketplace!
Here’s a step-by-step guide on how to rate Kerika (and any other app) on the Google Apps Marketplace:
1. Start off on the Google Admin Screen
Go to admin.google.com, and then click on the “Google Apps Marketplace” link on the right:
Click here to get to the Apps Marketplace
2. Search for Kerika
Search for Kerika
The Google Apps Admin for your organization (hopefully, you — if you are reading this blog post!) will need to install Kerika from the Google Apps Marketplace.
If Kerika is already installed as an approved (authorized) app for your Google Apps domain, you will see a “Rate It” button:
Click here to rate Kerika
4. You need to have a Google+ Profile
As with rating Kerika on the Chrome Web Store, you need to be signed into your Google+ profile in order to rate Kerika (or any other app from the Google Apps Marketplace):
Make sure you have a Google+ Profile
Assuming you are signed into Google, here’s how you can rate and review Kerika:
Rating Kerika
Click on the stars to rate Kerika, but what would be even better is a short review — even a couple of sentences would be great!
We would love to get your feedback on the Kerika app; one way, of course, would be to contact us directly at support@kerika.com, and an even better way would be if you could post a review of Kerika on the Chrome Web Store.
Here’s a step-by-step guide to posting a review of an app on the Chrome Web Store. (Of course, it’s going to be useful only if you use the Chrome browser, not if you use Internet Explorer, Safari or Firefox.)
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
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
(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
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
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
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
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
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
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!
This website uses cookies to improve your experience. We'll assume you're OK with this, but you can opt-out if you wish.AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.