Rails Engage: Scoping18 Jan 2015
When you’re making your first app, it’s hard to think about scope because it’s hard to know what is and isn’t possible. Some things that seem easy are hard, and vice versa. Marleigh mentioned an idea to me and fortunately it happened to be exactly the right size for a first-app: complex enough to cover all the concepts you need to be a great junior developer but simple enough to be able to tackle as a junior developer.
I don’t want to give away her project idea, but when she told me what she wanted to build, I was able to break it down like this: Possible to execute in one or two pages, involves at least one API, logic is relatively simple but requires insight that she already has, database is not complex, is something she is personally interested in.
Here are a few things to try to keep in mind when planning out your first project:
- Keep it simple. Absolutely simple. There is a chance it’ll be too simple, but it’s more likely that you will think of something that has a lot more moving parts than you’d expect.
- Can this be done in one or two pages?
- Logic. Can you figure out how to figure something out in advance? If you don’t know the answer, how are you going to be able to code it? One of the first apps I made involved a weather API and logic that would determine whether or not the average threshold for rainfall would exceed a certain limit, so you’d know whether or not you’d need an umbrella in the morning (and the application would fire a text only if that was the case). That was something my team could easily figure out. You’ll be worried about figuring out a lot of stuff, so don’t make a complex problem part of it. There’s nothing wrong with ripping off something that already exists because the important part is your learning.
- Be interested. Be something you actually want to use and be proud of. This is kind of a no-brainer because you’re obviously making this app for you in your spare time while learning how to code, but it’s worth emphasizing. Do something related to what you love.
Scoping is hard whether you are a junior or a senior developer: there’s always going to be hiccups that you didn’t expect or things that were much easier than anticipated. It gets easier, but it will never be easy (kinda like programming, if you’re doing it right).
Bonus points: APIs. This is also good for thinking up an idea: find an API that is well-made and build something based on it. You certainly don’t need to use an API for your app but I can tell you that when I was interviewing for my first developer job out of school, APIs were a hot topic. (A lot of questions about whether I’d made my own before.)