User Stories – And Why You Really Need To Write Them!

We’re often approached by potential clients asking how much their app idea would cost to build, except they don’t have wireframes or anything for that matter besides the ideas in their heads. Approaching a developer asking how long and how much for the idea in my head to become a reality, without any real due diligence or architecting, is like approaching a contractor and asking how much the dream house I have in my head is going to cost me and how long is it going to take to build. It’s very difficult to take questions like these seriously. At Alkami we totally empathize with the soon-to-be tech entrepreneur. Two of the best ways to mock-up something a developer could understand are wireframing and user stories. We’ve covered wireframing in an earlier post, it’s great and really gets across what you want. Wireframing could be a little time consuming, and potentially costly if you want to pay someone else to do it, depending on the scope of your app. User stories are super fast and easy to create, and they really help you as a founder solidify how your clients are going to be using your app.

A user story is a tool used in Agile software development to capture a description of a software feature from an end-user perspective. The user story describes the type of user, what they want and why. A user story helps to create a simplified description of a requirement. So a user story basically describes how a user/customer would you a particular feature in your app. All of your user stories combined should paint a pretty accurate picture of your application.

Enough explaining! Using the user story template in the image above, let’s write a few user stories for a news app we would like to create:

As a non-registered user, I want to be able to register, so that I can view the entire article I was reading.

As a registered user, I want to change my email preferences, so that I can receive the ‘story of the day’ in my mailbox without visiting the site.

As a premium user, I want to be able to customize my dashboard page, so that I don’t see sports related articles.

Notice how much information this provides to a developer or anyone really about the features you want your app to have! In just 3 short sentences you conveyed so much. In the first, you specified that you want your app to authenticate(register,login, logout) users, and that not authenticated users will not be able to read entire articles. In the second, you specified that your app will be able to send out emails; adding email functionality to the list along with ‘story-of-the-day’ designation(what determines this designation? surely it’s not random). In the third, you specified that your app will have different types/levels of users each one having different permissions; premium user having the ability to customize/manipulate their dashboard view by showing and hiding content.

Check out how much valuable information just 3 short sentences has provided, now imagine if you create 100 user stories which really shouldn’t take you longer than a few hours to put together. Also, the cool thing about user stories is they don’t only help developers understand what you would like to build, it helps you understand what your customers are going to be doing with your product/service. The more user stories you write the more you begin to understand what you’re trying to build, you begin to think like a developer thinks. Very rarely does a developer just build something without considering the end user experience, this is why UX(user experience) is such a hot field to be working in. Usually in house designers create user stories along with wire-frames before any coding actually takes place; architects have to create a blueprint for a house before the contractors even come into the picture. In the beginning, you’re the visionary you’re the designer. You don’t want to take the time learning PhotoShop so you can create a visual wireframe for your app? Totally understandable! But not having at least 50 user stories for your app? Totally NOT understandable in fact difficult to take seriously.

Rails vs WordPress

At Alkami we specialize in Ruby On Rails and believe that for most of our target clients this is a great, cost effective solution for getting their MVP up and running within a reasonable timeframe. We are sometimes asked what the difference is between building Rails vs WordPress apps. Without fully understand what type of app they want, clients often assume WordPress would be a simple solution.

Many people aren’t aware of the differences between the two. Rails is a Module View Controller(MVC) framework for building things – it gives you a toolset that helps make rich web applications. Rails is built using the Ruby programming language, hence the combination Ruby On Rails. WordPress is an application in itself, built without a framework in the PHP programming language. So if the requirements of your application fall within the boundaries of what’s possible in WordPress then WordPress might be a good choice. But once you step outside those boundaries you will quickly hit a wall of what’s possible.

Rails

ruby-on-rails

Ruby On Rails(ROR) is a web application framework written in Ruby. It is a MVC framework, providing default structures for a database, a web service, and web pages. If you’re trying to build a web based transaction processing system that heavily focuses on generating reports, Rails is the way to go. Point Of Sale(POS) systems are also great for Rails. We’ve also built quite a few e-commerce apps that our clients are very happy with. Rails has an amazing community of developers that post solutions to pretty much any problem one can encounter. Many programmers, no matter what language(s) they specialize in, reach for Rails when it’s time to build a RESTful API. Rails makes it super easy to build an API with minimum amount of code. Many of the coolest most badass applications on the web have been built using Rails: Airbnb, Bloomberg, Couchsurfing, Goodreads, Groupon, Hulu, and KickStarter just to name a few!

WordPress

wordpress

WordPress is a web software written in PHP that you can use to create websites that come packaged with a powerful admin panel. It’s no surprise, if you’re just looking to build a blog you should go with WordPress. Not to say that you can’t build a blog using Rails, cuz you most certainly can but it would take much more time/money to do so. WordPress has a very robust admin panel right out of the box! It would take a good chunk of time to rebuild all these nifty features in Rails. So if you’re just interested in a pure publishing platform that allows you to manage all of your content from an admin panel, certainly consider WordPress. 26% of all websites globally use WordPress.

Final Thoughts

If you’re just looking for a cheap basic website with publishing capability, you’re better off going with WordPress. WordPress has a very large selection of free to low cost themes you could choose from. WordPress also has a bunch of plugins like WooCommerce that will allow you to process transactions. Scaling and customizing your WordPress site is going to be more challenging and potentially more expenses unless you know PHP. Learning PHP, especially as your first programming language, can be very complicated. The community of Ruby On Rails developers is growing like wildfire. Ruby is arguably one of the simplest programming languages to learn. Building, customizing, maintaining, and scaling a Rails application is becoming very affordable. Many startup founders learn Ruby and Rails so they can better communicate with the developers they hire. There’s no right or wrong choice, it just depends on what type of application you want to build. At Alkami we have experts in both technologies and will advise you based on your requirements.