Win a free ticket to the 2020 IoT Innovator Summit in Austin, TX.

Subscribe to our blog to get the latest articles straight to your inbox.

Thanks to the popularity of apps built with Ruby on Rails, most software projects start by building authentication and authorization as the first feature. But there’s compelling evidence that this approach is less effective, and there is a much better way.

Why Your Project Roadmap Shouldn’t Begin with Login 

More often than not, the first action a user will take when using your app is to log in or sign up. But just because that is the normal user flow doesn’t mean that has to be the first feature your development team builds. For your application, login and sign-up are auxiliary features, meaning they do not add much value to users. 

Users expect to login and sign up, of course, but those features are not the main value-add of your app. The reality is that apps built with Ruby on Rails can be built in layers. Even though the first action that a user takes will be to log in, the development team should focus on building the highest-value feature first.

Though it has been a while since I have worked with the Ruby programming language and the Ruby on Rails framework, they were both groundbreaking when they first emerged. Features that traditionally had been complex and complicated to build were made easy. For login and sign-up I could just add devise to my gemfile, run bundle install, and with very little configuration login and sign-up were done… 

But not really. 

The views that get generated don’t have any styling. Each action has its own view which then needs to be refactored to fit the design. In most new applications, login and sign-up are done on the main landing page, so those will need to be updated to be displayed on the same page as well. Also, if the development team is building a single page application (SPA) with React, then even more customization will need to be done. 

Still, all of this work needs to be done, so what’s the big deal? Why does the order in which I do this necessary work matter? 

The big deal is that this is all time spent on an auxiliary feature that does not add to the main value of the application. When doing your project planning, your development team should be focused on building in layers and prioritizing the main value-add features first.

A Better Way to Create a Product Roadmap

Let’s look at the big picture. 

Every software project has key stakeholders, and stakeholders want to see progress. They want to know that their ideas are feasible. They need to use the software to solve their problems. 

The fact of the matter is that login and sign-up are problems that are already solved. They are necessary parts of the application that do not add value. They are features that users feel indifferent about but expect to exist. 

Think about it this way. When your software project starts, that is when you have the most budget available to your team

Therefore, while the development team has the most budget available, they should focus on building the features that provide the most value. Auxiliary features, while necessary, should be built at the end of the project, before it is launched to users so that sacrifices and tradeoffs are made on auxiliary features rather than on the main value-add features.

Additionally, by focusing on the main value features first, those key features truly become the center of your application. They work better because they were built first, have spent more time in testing, and are the springboard for all other features. 

Apps Should Be Built in Layers

Once your most valuable features are built, you can focus on the auxiliary features that also need to be present. Login, sign-up, payments, account management, administration, dashboards, etc. all need to be present in the application, but they are not the reason users are buying or using the application. All of these features can be layered on top of the main value-add features, which will then improve the communication and functionality surrounding these features. 

This approach fits very well with the Agile and Lean methodologies — both of which are practiced by Very’s web development and IoT development team. 

The Agile method prioritizes flexibility, speed, working with cross-functional teams, and continual improvement through iterative development. The Lean method, meanwhile, helps to focus goals and objectives throughout the development process. Lean is all about is figuring the optimum set of features to produce maximum ROI. 

Creating an Effective Project Roadmap

Remember: login and sign-up are not blockers for your main value-add features. Features can be built and integrated into your application when they become absolutely necessary. The most important takeaway is that value-add features should be built first. That way, when the project is approaching the end of its budget, tradeoffs and sacrifices are made for auxiliary features rather than primary features.

The team at Very has a storied history of developing stunning projects using the Agile and Lean methods, focusing the bulk of our time on the features most critical to your product. If you’re looking for a development partner for your next project, send us a note today.