Rails are a powerful framework for building web applications, but it can’t make your customers happy. This article gives some reasons why people churn and what you can do to fix these issues (hint: most of the time nothing).
Mastering Rails Design Patterns: Peter DeCaprio
Rails have been around for over 10 years now and brings with it a few patterns that are common in many web apps. By design patterns I’m not talking about creational, structural or behavioral patterns (e.g. factory, singleton, bridge), but rather about how Rails organizes its code into processes that lead to good practices and ultimately fewer bugs in the long term ([SOLID], [GOF], [GRASP]). Writing clean code is hard, but it leads to fewer bugs. This book will show you how to write clean code.
Why are people leaving your app?
At the end of 2015 I worked on a project where about 1/3 of users stopped using our service after their first session. That means one out of three users would never come back, which is rather worrying if you rely on having new users coming in regularly (side note: subscription models only work if most of your customers actually use and like your system). We figured we had two options: ignore this and carry on as usual or try to understand why they were churning and fix those pain points. We decided to go ahead with the latter option because we could afford dedicating time for a 1-day project (you can too if you open source your code).
Designing features with the “out of sight out of mind” approach leads to buggy and difficult to maintain apps, I’ll show you how to avoid this.
The friction points in most online web applications are somewhat universal; most people expect registration steps before they can use you product (and often signup is silent), but most will leave if the process feels tedious ([ASPIRE]), really good UX designers find ways to mask these barriers or make them invisible, but there’s no escaping that they’re still there. If users don’t like signing up for anything then they won’t use your service so it makes sense to spend some time on making the experience better.
It’s also important to note that in many applications the differences between features is very subtle, but they can make all the difference in conversion rates. We found that when users added multiple favorite places (think of these as bookmarks) then half of them would come back at least once more within 2 weeks ([EMPTY]). Now if you’re thinking “wait, why weren’t we already doing this?” I’ll explain later on.
If you want your app to be successful and provide value to your customers, you need to know why people are leaving your application. If you know what the most common issues are then it’s easier to prioritize which ones should be fixed first or even design new features with existing problems in mind.
I worked on a project where the business side was very interested in understanding user behavior to provide better insight for their executives. I also had access to 1-day to fix any friction points so it made sense to take some time and figure out what needed improving.
I kept track of everything so that you can benefit from my experience, this article will walk through the problems we found and how they were fixed, which could work as a checklist if you’re starting on a new project or want to analyze existing features. By no means are these metrics representative of an entire population, but it should give you enough information to get started.
About The Online Book That Guides You To Mastering Rails Design Patterns And Solving Real World Problems!
Mastering Rails Design Patterns provides 40+ examples of real world problems that you will face in any non-trivial Rails application. This book will teach you how to write code that is easy to maintain, extend and test. You’ll learn the thought process necessary to take otherwise complicated designs and express them in clean Ruby code. You’ll master advanced topics such as concurrency, testing strategies, debugging Rails applications, security issues and database design using current best practices.
I’m hoping that this article will give you some insight on how to get started and what to look out for. I’ll start by explaining each problem we found, why it was happening and how we fixed it. Then I’ll summarize the process so you can try it with your own application or experiment with other use cases.