What Functionality Does the First Release of an Application Need
Planning an Application
You have an idea for an application or were just hired to create one. What functionality is needed in the first release? How do you decide what features to put in and what features to put in a later release?
The first stage is planning your application. You have an application idea for a social network. What kind of social networking features are going to be in it? After much brainstorming, you come up with the following features:
Users
- Account creation.
- Login and logout.
- Have a profile.
- Connect with other users.
- Search for other users.
Socializing
- Share content with other users, such as text, pictures, links, etc.
- Comment using the same content that is able to be shared.
- Rating posts and comments with a thumbs up or thumbs down.
- Give their reaction to the content using emojis.
- Repost other users content.
- Direct messaging to other users.
This is a lot. How do you decide what to put into your first release? Some of these can even be broken up into multiple features, such as content sharing. Each content type could be a feature.
Planning Your First Release
When planning your first release, you want to take your feature set and ask yourself, "Is this a requirement or a nice to have?" Build both lists, and the list of requirements is what your first release should be. Your first release should only have the features that you absolutely need.
The obvious features you need center around creating user accounts and being able to login. The goal of a social network is the ability to socialize with other users. You could probably get away with not having a profile in the first release. What other features are needed for this? Users will need to be able to search and connect with other users. Once connected, users need the ability to post content and have other users respond to it. That's it.
Breaking down the above feature set, the first release would be.
Users
- Account creation.
- Login and logout.
- Search for other users.
- Connect with other users.
Socializing
- Posting text-only content
- Commenting using text only
This feature set allows you to create a social network. It may not have all the features you want, but that is what other releases are for. By doing the minimum, you can get user feedback and better plan what features your users want. You may have features that you feel are needed, but how do your users feel? Do they need those other features, or is it something that you feel you need to have in your application?
By doing the minimum for your first release, you can get your application out there quick. If your application doesn't take off, you have used only the minimum time and resources.
Planning Future Releases
After the first application release, start getting feedback. This way, you can understand how your users are using the application and be able to prioritize the other features you have planned. Maybe you get feedback about liking the ability to share content, but users wish they could share pictures. Your next release might be to add picture sharing to posts and comments.
Maybe after your first release, you get feedback from users wanting a way to be able to invite people to the application. This is a feature that wasn't in the original plan above but is wanted.
It is best to do frequent releases. Smaller changes help minimize the risks that bugs will introduce. Frequent releases will also help you be able to more easily isolate other issues like performance and scalability.
Conclusion
Building applications is about moving fast and delivering what users want. Only build what you absolutely need first. After that, focus on frequent releases for new features based on user feedback.