Over the past year I have delved deep into the world of software development and have worked on several pure SaaS MVPs.
Prior to this nearly all of the software development I’ve been involved in was for service based models. And in each of these businesses I hired product managers to drive the entire process forward.
Taking on the product owner role (along with being the entrepreneur) in multiple SaaS MVPs has been a herculean undertaking. I’ve failed forward along the way and have learned many important lessons. In the end we successfully launched all of the MVPs and while we are still optimizing, the end products are viable.
In this article I am going to discuss the best practices I’ve found when working on an MVP and provide some general disciplines to adhere to.
The Players Needed
Product Owner – this is the most important role and I believe you, the entrepreneur, have to take on this role.
Here’s the definition: The Scrum product owner is typically a project’s key stakeholder. Part of the product owner responsibilities is to have a vision of what he or she wishes to build, and convey that vision to the scrum team. This is key to successfully starting any agile software development project.
Scrum Master – A scrum master is the facilitator for an agile development team. Scrum is a methodology that allows a team to self-organize and make changes quickly, in accordance with agile principles. The scrum master manages the process for how information is exchanged.
I believe that the Scrum Master can also play the Project Manager role in MVP development, unless you are dealing with a very large MVP where a separate project manager is needed.
Next to the Product Owner, this is the most important role as having an agile framework for development will ensure your code releases are released faster and with fewer bugs.
Project Manager – The Role of the Project Manager. A project manager is a person who has the overall responsibility for the successful initiation, planning, design, execution, monitoring, controlling and closure of a project. … Most of the issues that impact a project result in one way or another from risk.
Again, I believe that the Scrum Master can also play the Project Manager role in development for MVPs, however if/when the project grows, it is worth hiring a Project Manager to ensure that all facets of the platform are being pushed forward at the same time.
Business Analyst – Business analysts working on team often help their peers groom the product backlog. But as grooming is a team effort in Scrum, analysts working on the team take on additional responsibilities, for instance, working closely with the testers or the technical writer.
The key for a business analyst is to document all of your code so that if new developers join, they can read the documentation, understand what code is what, and start jamming on your code base right away.
Quality Assurance Expert – QA in an Agile Environment. Software quality assurance (SQA) is defined as a planned and systematic approach to the evaluation of the quality of and adherence to software product standards, processes, and procedures.
Basically the QA will test all code releases on desktop, tablet, and mobile. The tests are also done in all internet browsers, including many versions of internet explorers, Google Chrome, Firefox, and Safari.
When hiring a QA, it is so important that all code releases are regression tested, ensuring nothing was broken by the release.
UX/UI Designer – I believe there are many designers out there that can handle both UX and UI designs for your platform. Also, a good UX/UI can also handle basic graphic design work.
UX Design refers to the term User Experience Design, while UI Design stands forUser Interface Design. Both elements are crucial to a product and work closely together. You’ll need just 1 UX/UI on the team.
You can usually get away with 1 UX/UI full-time for part of the project then drop them to part-time.
Front-End Developer – A front–end web developer is responsible for implementing visual elements that users see and interact with in a web application. They are usually supported by back-end web developers, who are responsible for server-side application logic and integration of the work front–end developers do.
For most MVP development, having just 1 full-time front-end developer should suffice.
Back-End Developer – A back–end web developer is responsible for server-side web application logic and integration of the work front-end developers do. Back–end developers are usually write the web services and APIs used by front-end developers and mobile application developers.
For most MVP development, I would recommend 2 full-time devs.
Jira – Jira Software is an agile project management tool that supports any agile methodology, be it scrum, kanban, or your own unique flavor. From agile boards to reports, you can plan, track, and manage all your agile software development projects from a single tool.
There’s a lot of project management systems out there, however Jira has worked the best for my team. We’ve switched from Wrike to Jira this year.
A good Scrum Master will organize Jira so that you run your project in 2 week coding sprints, addressing PBI’s (product backlog items) and ensuring that your devs estimate the time to work on each item in the sprint.
BitBucket – Distributed version control system that makes it easy for you to collaborate with your team. The only collaborative Git solution that massively scales.
In the past we used to use FTP to upload code to our platform. This was a colossal mistake. With BitBucket you gain the ability to approve code review more efficiently and revert to previous versions if you need to very quickly.
Confluence – this is the software your BA works in to document all facets of your platform.
In Confluence, content is organized into spaces. There are two main types of space:
- Site spaces, sometimes called ‘global’ spaces, are areas on your site where you can create content and collaborate with other users. For example, you might create a space for each team or project in your organisation.
Personal spaces belong to specific users. You can keep your personal space private, or open it up for other users to view or edit. Personal spaces are listed in the People Directory.
Here’s a great video of how Garmin uses Jira and Confluence: https://www.youtube.com/watch?v=I3qBLsX13_U
*Jira, BitBucket, and Confluence are all owned by Atlassian.
PaperTrail – this tool is mainly used by the devs for log management. Here’s a great article that describes the importance of log management in development: https://www.itworldcanada.com/blog/why-log-management-is-absolutely-critical-for-it-security/377711
BrowserStack – a cloud-based cross-browser testing tool that enables developers to test their websites across various browsers on different operating systems and mobile devices, without requiring users to install virtual machines, devices or emulators.
Our developers along with QA use BrowserStack, however we’ve found QA to be most effective when using the actual device. For instance we’ve had major errors on iOS devices that don’t return errors on BrowserStack but do return the error on the actual device.
Nevertheless, it’s a great program for team members to use as its reliability is as good if not better than most of the comparative platforms out there.
Inspectlet – I personally love this tool and have found it to be enormously valuable. Inspectlet records all sessions users have on your website so you can see exactly how they interact with your platform.
That way, when there is an error or you want to gain deeper insights into UX from consumers, you can watch videos from Inspectlet that recorded the sessions.
Intercom – this is the best responder software for website visitors. If you use this properly, you can use Intercom to drum up a lot of leads and help users on the spot when needed.
Snaggit/Screencast – Snaggit easily captures screen shots and allows for recording. Then you can make notations for your devs…for video you then seamlessly upload to Screencast and get a link automatically copied that you can share on Jira/Slack.
Laravel – the most popular PHP framework for developing platforms. In the past we used Codeigniter, however for the foreseeable future, all dev will be done in Laravel.
Slack (don’t use Skype) – slack is a messaging tool similar to Skype, however is much more robust for development teams. It gives you the ability to create channels to organize discussions, easily search for previous messages, upload files, and direct message people on your team.
Also, you can easily switch to entirely separate projects on Slack to have discussions on completely separate subjects.
I also love the notifications portion of slack and the ability to track the messages that you haven’t read yet.
On the right hand side of the screen you can see one of our Slack Channels. You’ll notice that we don’t have too many channels. It’s important to keep channels to a minimum otherwise you can find yourself searching too long for messages, wasting time and making dev less efficient.
Agile – Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. These principles support the definition and continuing evolution of many software development methods.
In basic terms Agile is a set of principles to manage software development. Hiring a Scrum Master to put these Agile disciplines in place makes a huge difference in running a truly Agile platform.
I highly recommend this training video for Scrum/Agile: http://scrumtrainingseries.com/
Senior Developers Only – don’t waste your time hiring junior developers. It’s better to hire 1 senior developer with a proven track record than to hire 4 junior developers.
I’ve found very skilled developers in Ukraine, Romania, Greece, Spain, USA, and yes, even India.
Go In Funded – don’t try to build a platform on a $5k budget. Go in funded and be ready to fail forward.
Less Features/Stay Focused – Don’t build feature rich MVPs, instead focus on 1-2 core features and then drive as much traffic to the platform as possible. I know too many entrepreneurs that are “feature focused” instead of “traction focused.” Stay traction focused and seek to get traction early on…and if you’re not getting any traction it’s likely because the 1-2 features you do have are not that good.
Think Instagram, FB, etc. All started doing 1-2 things really good…then expanded out. Keep it simple.
We don’t reveal our sources, but rest assured that talent is everything. Invest heavily in people and when you find great people, treat them great to keep them. We put people first.
A special thank you to our investors that kept the faith along the way and have continue to commit the capital to make the MVPs a reality.