Project Definition
So, you have a shiny new EL/R team! Awesome. Of course, now the question is how we define the project in a way that makes sure you get something delivered that solves your problem, while being achievable by the team in the anticipated duration of the project (which always goes by much faster than it seems!)
This guide is intended to help you figure out how to optimize that experience of initial requirements definition, and avoid some of the common pitfalls and communication issues that arise during that process. It may also help organize your thoughts and your goals for the semester.
(Step 0.) Introductions and Logistics
With any new team, start with introductions. It will help the team to get to know you and your organization, and for you to get to know them. It’s nice if you can personalize this a bit - you’ll be spending a lot of time together, and if they feel like they can approach you, things will go more smoothly! Also let them know the best way to contact you if they have questions or doubts during the semester. It's best to have more than one channel - email is great, but most students are more comfortable in some sort of instant messaging platform like slack, matrix, or discord, and are more likely to both reach out and respond in that context. You also need to determine when and how frequently you will meet, and what the mode of the meetings will be. Note that the expectation is that you meet with them a minimum of once a week, in person. You may want to have a checkpoint meeting or meetings outside of that, and sometimes that is easier to schedule remotely.
Step 1. Set the Vision
It’s important that the team understands what problem it is you are trying to solve, whether it is a research problem or a tactical administrative one.. As they help design and architect a solution, they will need to make countless small decisions that should be guided by your overall vision, the “Why” behind the project. Understanding this will help guide those decisions even if you’re not there to consult, and may enable them to contribute their own ideas that can enhance the project! They (and maybe you) may want to jump right into technical talk, but take the time to help them understand what your goals are and why.
Step 2. Define the Demographic
Who will use your project? What audience do you expect or want to attract? What and how you build for nontechnical older adults is different than what and how you build for experienced professional workers who will be using a tool every day, which is different than what and how you build for twenty-something computer programmers, which is what the development team will likely consist of. Helping them understand the audience will help them ask questions and make decisions similar to understanding the overall vision.
Step 3. Outline the Current Process
What process or application is the project supposed to replace? What are your future users doing now to meet the same needs? Maybe you have an old system you’re looking to update to a mobile app. Maybe you have a paper process, or a batch of spreadsheets that you want to automate and streamline. Maybe you are building something entirely new, and hoping that it will drive new behavior that didn’t exist before! In each case, understanding what happens now, and what the problems with that process are, will help the team understand how to improve it with the new project. If you have resources that may help them understand current or future state (a test login to a current system? Competitors offerings that may be similar and give them an idea of the concept? Paper forms that you want to automate?) it’s great to put together that information for them to do some research.
Step 4. Decide What’s Most Important
This is a difficult step; almost certainly, you would love to have more features and exciting bells and whistles than can be done in the first semester. Trying to take on too much usually ends up in a bunch of things that work poorly, rather than a few key things that work well. What features mean that you can actually use the project to start achieving the goals in the vision? Which ones will make things better, but aren’t mission critical? The minimum set is often smaller than you think; after all, if you’re currently using paper or email, improving on that is pretty easy. Your guidance will help the team decide how to prioritize the work, so that the most important things are done first.
Step 5. What Does Success Look Like?
Finally, what outcomes will cause you to consider this experience a success? Is it data being collected by grad students on research subjects through some new interface? Is it a website that is available for your audience to access? Is it a library of python scripts that you can plug in to another application? Is it the definition of a technology stack and a proof of concept that you can continue to build on to solve a larger problem? Each project will have a different definition of success, but if you don’t know what yours is so that you can share it with the team, it makes success difficult to achieve!
(Step 6.) I’m Sure There Was Something Else…
There always is. As the project advances, you may discover things that weren’t part of your initial plan. Something may turn out to be technically infeasible, or take too long to implement. You may see an initial prototype and decide that you want to change priorities, or exchange one feature for another on the “must have” list. This is normal, and one of the strengths of the EL/R process is that it is designed to go past the bounds of a semester, so you don’t have to have it perfect on day one.