I have worked in large enterprises and as a freelancer for small businesses. One key ingredient for success in both of these environments is having clear goals for the project.
Large enterprises generally have extensive resources and can have business stakeholders, product managers, engineers, designers, and other professionals work on a project. These project team members have the expertise to ask the right questions before a project begins to increase the likelihood of success.
Small businesses and individuals who hire freelancers often have a general idea of what they want, but no clear goal that is actionable. This can be true of large enterprise projects, also but the team of professionals present on most large projects can quickly ask the right questions to make the goals and objectives of the project very clear before development begins. In the case of a small business there may be only one or at most two people who can fulfill all of these roles. This can lead to a project starting with only vague goals and becoming a prototyping exercise rather than a project that delivers production ready code. Prototyping and POC (proof-of-concept) projects are perfectly fine, as long as the person(s) hiring the freelancer expects a prototype at the end of the project. This is often not the expectation.
Some critical questions to consider before hiring a freelancer include the following:
- What is the goal of the project?
- What is the expected deliverable?
- What assets or resources will be provided to the freelancer?
Let’s take a closer look at these questions.
What is the goal of the project
This is the single most important question of any project. Here are some questions that should be asked about the project goal.
- Is the goal of the project to produce a part of a larger project?
- Is the goal to produce a finished product that will be used by consumers?
- Is the goal to produce something that will be monetized?
- Is the goal to increase brand recognition?
Some basic steps that should be taken are:
- Identify the stakeholders. That may be just you, but if there are others, make sure they are included in some of the early discussions. Make sure all stakeholders are in alignment regarding the project goal(s).
- Identify any known risks and let the freelancer know early. Goals may need to be adjusted based on risks. Identify these if possible.
What is the expected deliverable
This may seem like it should be obvious to the business or individual hiring a freelancer, but often it is not clear. I have often heard clients say once we have started a project, that “..I don’t know what I want, but I’ll know it when I see it…”. In cases such as this, it is probably in the client’s interest to think through what they actually expect to be delivered. This may require them to create some prototypes or hire someone to create prototypes and concept applications for them. This can help in the journey to defining a clear deliverable.
What assets or resources will be provided to the freelancer
What will the freelancer be starting with when taking on your project? If the project includes a front-end, will UI assets be provided? If the project requires some sort of remote data storage, like a dating app or financial app, will that be provided upfront? If the freelancer is expected to provide these things for the project, this will increase the scope of the work, which translates into higher costs and longer timelines.
Plan Template
Key Stakeholders
| |
Key Goals
| |
Anti-Goals
| |
Roles and Responsibilities
| |
Scope of work
| |
How will project be managed
| |
Risks
| |
Initial Backlog or Stories/Tasks
|
Free and Inexpensive Resources
There are many free and inexpensive resources for managing a software project. If you hire freelancers on sites such as Upwork, Fiverr, etc… you can use the free tools they provide on their respective platforms. I describe some free and low cost third-party tools below.
Project Story/Task Management
Trello is a very flexible tool for managing user stories and streams of work. It can be used free of charge for small projects.
Source Code Repository
The source code repository is where code should be kept during the development process. This allows you and the freelancer to have access to the code at any point and time during the project. Some Git repository options are listed below:
Communication
Slack has become the preferred communication tool in the development community in recent years. Slack offers free accounts for small teams.
Slack - https://slack.com/
Zoom is the tool of choice for quick developer real-time collaboration. I have found it vastly superior to other collaboration tools on the market. Zoom allows small teams to use a free account for 20 minute collaboration conferences. It includes text chat, audio, video, and screen sharing.
Other Resources
The resources listed above should be more than adequate for almost any small business software development project. Other tools that can be used include Jenkins, CircleCI, or ConcourseCI for continuous development and continuous integration and delivery.
If you have more than one freelancer working on your team, you may want to consider doing weekly retros using a tool like Funretro to see what worked, what didn’t, and what should change week to week.