I want to be a back-end developer. I know it is cooler to be a "full-stack" developer, but if I never have to write CSS again it will be too soon.
I did not expect that I would feel so differently about front-end and back-end work. With an undergrad degree in Fine Arts and an interest in good design, I might even have expected to be more interested in front-end work. However, after having gotten my feet wet over the past three months at Turing, it's pretty clear that I get excited when I get to think about the structure of databases and their interactions. Maybe even configuring servers, although I haven't done much of that yet.
However, while working on a personal project I learned an important lesson about not ignorning the front-end. My personal project is something I've been exctied about ever since I read about it in HBR - building a performance review app that Deloitte developed in order to get actionable data about employees instead of useless information about managers.
I launched a first pass of this app that I had the tests I thought were sufficient to allow a manager to create the teams that she manages, create employees that work on specific teams, and request that one employee review another. Employees are able to receive the alert that they have been requested to perform a review and then answer questions about the other employee. The results of the review are saved in a database and associated with the reviewee, and available to be viewed by the manager.
That's everything, right?
I'm working with a mentor through Turing. I told him about my project and he was excited to take a look because he'd tried to implement the review tools described by the article with his team. The first thing he did was start a server to play around with it. After about two clicks, he hit an error. And that's when I realized that I actually hadn't produced anything useful at all.
His advice was to be more empathetic to my users. I don't have to care about the front-end, but I do need to care about users. And having drunk the TDD coolaid, for me that means getting better about testing and using seed data.
The problem with my original testing was that it didn't include any sad paths, and the problem with giving even trial users an empty database is that 1) it's just asking to run into bugs and 2) it makes it harder to get to the meat of the project.
So I'm going to scrap this first attempt and start over. With better testing to drive out the sad path bugs, and also a commitment to try the site as an actual user more early and more often. I still don't care about the front-end but I will make myself care more about my users.