At Quick Left we work on greenfield projects a lot. Greenfield projects are new projects where previous work such as project scope or design hasn’t been carried out. Those who wish to build a greenfield app are interested in developing a new system for doing something and they’ll come to Quick Left with an idea, but need help designing or developing the application.
When building greenfield apps, oftentimes we work with teams who don’t have technical expertise in-house. For example, a publisher might operate in the publishing space without providing technical solutions to their customers. What should they do if they’ve discovered a new idea for an application they want to deliver to their customers? As someone who isn’t a skilled programmer or doesn’t have a development team in-house, how can they achieve the goal of developing a technical product in order to meet the needs of their customers?
Luckily there are many options to choose from when deciding how to produce an application. In this blog post I’ll highlight some of the options a non-technical team should evaluate when choosing to develop a mobile or web application.
You can become a developer. You can build an app! It may be hard as hell but it’s not impossible. The most important thing to consider is, do you have the time and resources to become technical at the speed in which you want to develop your app? From the front-end tech-stack and the back-end tech-stack to developing the architecture of the app and implementing detailed features like storage and search, it’s a big project to say the least.
If you wish to build an app yourself consider the fact that building an app is not a one-time deal. In addition to scoping out a timeline for initial research, design and development, you’ll need to architect your app in such a way as to ensure scalability, usability and maintainability in the long-term. Building an app requires that you plan for future development. Include checkpoints and deadlines for meeting your goals.
Note that development always begins with design. Storyboard your idea or develop a simple prototype using a tool like InVision or Sketch. Project management tools like Jira and Flowdock can help you write out the app features while considering time. Keep in mind that it’s rare to find someone who specializes in both development and design, oftentimes two teams will work on a project together so that the best ideas are flushed out from a programmatic perspective as well as a creative one.
Learn about the Agile Manifesto so you can quickly build your app by iterating on your ideas and the features you’ve developed. Things in tech move fast, so staying up to speed with trends and competition is imperative.
There are a lot of tools and online communities to help you develop programming skills. Learn to code using tools like Codeacademy and Treehouse. These frameworks will only get you so far though, so consider enrolling in a fast-paced developer school like Turing School of Software & Design or Galvanize to ramp up quickly on what it takes to become a developer.
But hey, remember, you are not going to become a dev overnight. If you need to devote your efforts to the other services your company provides, don’t have the means to invest in learning to become a developer, or see an application as a side project, consider hiring a team.
Hire an In-House Development Team
Hiring an in-house team can benefit you in the long-term since your development team will be set in place for years to come. With a team in place, knowledge is housed under one roof. Your team can devote their efforts solely to the product at hand and build a foundation for future projects and development. Technical knowledge will remain within the company and information is less likely to get lost in translation.
As a manager, you’ll have complete control over the time, activity and the quality of the work. If you happen to hire a skilled group of developers and someone to manage them effectively, this could reduce costs associated with your project. By “happen to” I mean that it is likely you don’t have the experience hiring technical employees to make those critical evaluations. You especially take on hiring risks if you end up hiring a team that is more junior. Whether you hire a skilled team of senior developers or a junior team with room to grow, it’s crucial that you find a strong technical lead to effectively manage your team.
Hire a Freelancer
If you don’t have the resources to hire multiple developers, are working on a small project, or have a long timeline to complete your project, hiring a freelancer can be a great option. You may save money since you don’t have to hire multiple people.
Since time is usually of the essence in software development, a big downside to hiring a single developer is that if they get stuck on feature development or realize the app requires a framework they don’t know, it might take them longer to ramp up learning, since they won’t have a team they can get assistance from.
One of the biggest risks you take on when hiring a freelancer is their level of commitment to your organization. They aren’t tied to a business like employees are, so it’s easier for them to jump ship when the going gets rough. It’s important to go through a thorough hiring process to make sure you’re bringing a committed person onto your team. There are many resources available online that can aid you in your hiring process such as Freelancer, Upwork, XPlace and Guru.
Hire a Consultancy
Hiring a consultancy can be beneficial because of the technical expertise the developers in the company can bring to a project. Since the developers are regularly working closely with one another on a variety of projects, each developer has their own expertise to bring to the table. Because of the diversity in skill level and skill sets, developers can run ideas by each other and get help understanding technologies they’ve never used before. The ability to harness the brainpower of every person in a company is invaluable.
One of the fears in working with consultancies is that once a project is complete it has to be handled internally, and if you don’t have an internal team, preparing for a hand-off and the maintenance of an application can be daunting. When choosing to work with a consultancy it’s crucial that you have a plan for handling your project after the consultancy has finished their work.
Make sure that your company processes and the consultant’s processes align. There are two high-level ways to go about software development, waterfall and agile. Research these software development methodologies in detail because if you’re mis-aligned and you don’t realize it until the project is underway, you may get deep into an engagement and realize that the deliverables you receive at the end of the project are not what you expected.
No Option is Absolute
You’ve got tons of options! You also don’t have to stick to one. You may choose to start with a consultancy and then hire an internal team once the MVP of your app has been created. Or, you may consider building a team in-house and outsource part of the project if things go awry. You might have the consultancy start the project and help you hire a competent team to take it over when it’s complete. Ultimately, it’s up to you to decide which is best for you and your business.
Are you considering outsourcing a new development project? Do you want to build your app in-house? Drop a comment below.