Skip to content

Instantly share code, notes, and snippets.

@nerboda
Last active February 9, 2017 21:08
Show Gist options
  • Save nerboda/e9759c2077832f257513ef2795cf1bd7 to your computer and use it in GitHub Desktop.
Save nerboda/e9759c2077832f257513ef2795cf1bd7 to your computer and use it in GitHub Desktop.
What should we build?

What should we build?

Rather than just picking an idea and jumping right into writing code, we think it's a good idea to spend some extra time up front to explore several different ideas, compare them, and choose the one that ranks best based on the following factors:

  • Will the project be useful to at least a small niche of other developers?
  • Can we get to an MVP within a reasonable amount of time (maybe a month?) with the limited amount of time we each have available per week
  • Is there room for continued growth of the project once we reach an MVP?
  • Do the technical steps involved in building the project rely mostly on things we've already learned (thus allowing us to practice and improve our efficiency with our current skillset), while also offering a good challenge for each of us to learn a few new things?
    • These new things could be: more advanced features of the Ruby language, more advanced OO design concepts, or even just having to dig into the documentation for other libraries
  • And most importantly, are we all enthusiastic about the project?

This means the first step is for each of us to come up with a few ideas.

Exploration Phase

Based on these criteria, we had a couple initial ideas about what features/qualities the project might have. These should get our creative juices flowing and also give us some direction.

1. Probably a Sinatra Extension

It makes sense to build a Sinatra extension given that we've all built (and may currently be building) Sinatra apps. Also, Sinatra requires lots of manual setup so it makes sense to try and help developers quickly deal with some of the more mundane parts of that setup and reduce writing boiler plate code.

In the future when we start working with Rails, we can add that integration.

2. Something that provides helper methods to generate html code within view templates

Given the ever increasing wide range of html elements, the fact that dynmically generating html code is at the core of web development, and that developers are always looking for ways to declutter their views (in the MVC sense of the word), a set of easy to use helper methods that focus on generating a specific (or small subset of) html element(s) seems like a good way to go.

3. It should be something that requires a fair amount of programming logic

It can't be a boiler plate code problem that could easily be solved with a text editor plugin or snippet. It must have a dynamic aspect that requires conditional logic, knowledge of the current state of the application, basically things that can't be done with static client-side code (or ideally that can't even be solved purely with client-side javascript).

Regardless of what we build, there will almost definitely be other tools that solve the same problem. We'll just have to do it better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment