“Do you need that fancy feature?” and 11 other learnings
4 years already! Our 8th round of funded projects is in the starting blocks, and applications for the 9th round are open. During the last years Prototype Fund has accompanied 140 projects on their path to a functioning prototype and we have learned a lot from all those projects — not only about technology, but also about the patterns that can cause teams to lose time, energy and motivation.
Because we want you to be able to make the most of your funding time, here are 12 learnings we think can be useful to anyone who wants to build something new — before applying, during funding or more generally in Free and Open Source development!
1. Know where you’re going
When asked about their vision for their project, most developers describe what tool they are building. “I am building a tool that does XYZ” is the standard answer. While this is a totally valid statement, we always try to push our funded projects a bit further in defining their vision. Think big picture: What does a world in which your project exists and is used look like?
Take a step back, and try to put words on the why, not only the how. Having a clear vision of what you are trying to accomplish will not only allow you to communicate clearly about your project, but also help you to not get lost in extra features and other dead end paths.
2. Do you need that feature?
Most funding comes with a deadline — at Prototype Fund projects get 6 months to work on their prototype. While half a year can sound like an eternity, when you are trying to build something new, time can fly by quicker than expected. Every few weeks, take time to reflect: How many milestones have I accomplished? Will I be able to implement all the features I have planned until the end of my funding time?
If the answer to this last question is no, consider giving up on that extra fancy stuff you have been dreaming of and reduce your plan to the core features. A simple tool that works well will bring you further than a multi-function tool that barely works.
3. Documentation is key!
It’s one of those phrases we can’t repeat enough: Make sure to have time for documentation! We understand that this step can be time-consuming, yet we believe there is no way around it: When you explain your project, or how your code works, you make it accessible to other people who then can use your project or contribute to it.
Documentation can take many forms, depending on what kind of project you are working on: You can document your code itself so other developers can understand it, use it and contribute to it. You can publish blog posts that explain how your project works. You can write clear admin documents that will be helpful to admins who want to set up an instance of the tool you built. Or you can produce tutorials that will help end users.
4. Don’t ignore ressources
The great thing with Open Source is that you’re never really alone. Creating Open Source software means that you are part of a wider community, with many people potentially willing to help you. Funders usually try to support projects with useful information and extra resources; for example at Prototype Fund we provide coachings, informations about funding, events and other useful tips, and try to introduce you to the right people for your project.
While it can be tempting to stay focussed exclusively on code, don’t forget to take advantage of the resources you have access to. Spending a few hours in a design coaching can help you identify major flaws you couldn’t see without external help; presenting your project, even unfinished, at an event, can provide very useful feedback; taking time setting up a nice website can bring you new users or contributors. Code does not make up a whole project!
5. Build your team strategically
Working with a team is a great way to bring extra skills to your project. At Prototype Fund, once your funding period starts, you can’t change your team anymore, but missing a skillset in your team can seriously delay your project — so building the right team from the start is particularly important. Think carefully when you apply:
- What kind of people do you need to build a strong team?
- Do you have all the necessary skills on your own?
- Do you need someone who understands design, or security, or has any particular skills in your team?
Investing time and energy in finding the right team members will prevent you from losing time and energy down the road.
6. Diversity is strength
Teams are not only about skills, but also about people, their experiences, and the way they approach your project. When you build your team, always aim for as much diversity as possible. People from different backgrounds will have another way of looking at the same project — and a diverse team will be better at understanding the needs of a large, diverse user group.
In order to make the most of your diverse team, try to establish a healthy communication culture in the team, ensuring that all those different approaches and opinions can be heard. Your project will only grow stronger!
7. Think of your users
You know it: Your idea is great, and people need it. But have you actually tried engaging with your potential users? Making sure the tool you build is needed and can be understood is essential, and we can’t stress enough how helpful it can be to conduct user research before getting started, and user testing as soon as you have a version that can be tested (and that can just be a paper prototype). And don’t forget to plan for some time to implement changes based on that feedback you’ll get!
8. Build (or join) communities
Open Source is all about communities. Whether you bring a new stone to an existing building (like for example an existing operating system) or start something new, being part of a community is the best way to build a sustainable network of contributors. Introduce yourself and your idea as early as possible to communities close to your project and benefit from their experience; ally with people who are potentially working on similar tools, and find contributors that complete your team’s skills.
9. Find partners
Like communities, reaching out to potential partners early enough can be very helpful for your project. For example: Are you working on a health tool? Reach out to hospitals in order to plan for common testing and get feedback from health professionals. Working on an education tool? Talk to teachers, ask them for their needs and make sure your tool is actually useful to them. Universities, NGOs and museums have also proven themselves very useful for some of our projects in various fields.
10. Don’t reinvent the wheel – but check the pressure of the tires
The Open Source ecosystem is a world built of bits and pieces you can recycle and adapt, like for example packages and libraries. Why lose time trying to recreate something that already works pretty well when you could be building something that doesn’t exist yet?
So, take some time before you apply for funding – or at least, before you start writing code – to get an overview of the dependencies your code will need (for example with libraries.io). This will allow you to be more efficient down the line and avoid losing energy on things that already exist.
Instead you’ll have more time to build something new, improve or update existing code, add that fancy feature you have been dreaming of, squeeze in some more user testing, or prepare a nice talk to present your project. Can you really afford to lose that time?
However, keep in mind that recycling takes time too: Interfaces don’t always work as intended, new implementations may be necessary and some features are not always compatible. In the spirit of Open Source, contribute to the upstream and help fix those issues! But don’t forget to make sure that these maintenance tasks fit into your milestone planning.
11. The future comes soon
Having funding for 6 months is very nice and comfortable. But what will you do after that? While some tools can be maintained by communities of volunteers, many projects need money to survive. Whether you want to find more funding or you plan to build a business around your project, don’t wait to run out of money before looking for your next income. Ask yourself which future you want for yourself, your team and your project before the funding time is over, and try to build a sustainable model. So, what’s next?
12. Take some rest!
When you are building something new, there is so much to do, and so little time for it. It is easy to start running after time and forget to listen to yourself. But don’t forget to take that day off you need, and to plan for some well-deserved breaks. Your body and your mind will thank you for it and you’ll be able to enjoy working on your project even more!