DEV Community

smilesforgood
smilesforgood

Posted on

There is Always Room for Improvement - a Rails Story

Before I ever considered software engineering as a career, I suggested meeting a friend for a workday at a coffee shop. At the time, I was pursuing a career as a contemporary dancer and in the midst of planning movement and music for a new dance piece that I was choreographing. My friend already worked full-time as a software engineer but also worked on freelance software projects. At my suggestion of a workday, he said “there is always more work to do” and that he could definitely use a work buddy. At the time, I didn’t think much of his wording; every field requires plenty of work. But a year later, as I transitioned to software engineering myself and enrolled in the Flatiron program, I found that phrase bouncing around in my head more and more. As I completed my third project with Flatiron — a Ruby on Rails content management system — I kept coming back to it.

There is infinite room for improvement in software development. As I planned out my application, I had a ton of ideas for really cool features. I wanted my content management system, called Cafe Directory — a user moderated resource of cafes and coffeeshops throughout the US — to have useful functionality that would allow a user to find the exact cafe that they wanted at any particular moment. I wanted it to rival GoogleMaps or Yelp, but with user generated content, a la Wikipedia. Of course all of these big names that provided inspiration are maintained by whole teams of people with significantly more knowledge and tools at their disposal that myself (at the current moment). I quickly realized that I probably couldn’t create a Cafe Directory that would allow a user to do an open-ended search by location, hours, speciality, keyword, etc in merely a few weeks. Even gathering data on all of these details would be fairly time consuming. Rather, I could create a cool application that would allow a user to filter or search by one thing, in order to practice implementing scopes. Eventually, with more time and knowledge, hopefully I could return to the application and add additional search features.

Eventually, I came to the question of “what is the point of completion?” After adding multiple validations, editing Rails form helpers, and fiddling with CSS for many hours, I decided that “completed” could be considered to be “reached” once the application met the project requirements (with a few added details that I was personally very excited about) as long as the code was fairly DRY. So about two weeks after generating my Cafe Directory Rails application with the command rails new cafe-directory, I submitted my final git push to GitHub and closed my text editor. I look forward to moving forward with my studies at Flatiron and increasing my knowledge. Perhaps as I learn more languages and frameworks, I can circle back to this app and some of the additional functionality that JavaScript enables.

** Originally published March 23, 2021 via github.io

Top comments (0)