group projects this week. came in and pitched our ideas. i pitched building an api for impact dialing, but didn’t get enough bites. wasn’t excited about much of anything but signed up for my favorite, a tool to help groups make decisions. spent the afternoon whiteboarding the product. really glad we did - so many different ways to approach it. trouble was, we didn’t really have a good grasp of how people would use it, and under what situations. so we just made some assumptions about who our users were. one frustrating part was that i wanted to make decisions lean-startup style, by putting out an mvp and getting feedback, but obviously we don’t have that ability, so we just have to decide to do things one way. oh well.
started building and realized it was really difficult to coordinate between two pairs when we didn’t have an existing codebase. the other pair started setting things up with a rails template while we did i don’t remember what. once we had the code we tried to start building, but again it was tough when we didn’t yet have the core pieces we wanted to be building on. in hindsight, we could have built some static views with placeholders for the dynamic pieces.
next day we were supposed to do curriculum in the morning. i wasn’t too interested, and we didn’t really like all of the stuff the rails template threw at us, so i rebuilt the app by hand. took a bit longer than i expected but easily completed it by lunch. but when i was moving the actual functionality the other pair had built over, realized they hadn’t test-driven it and that they had generated a controller that left a bunch of extra stuff. started to test drive it to see how long it would take to get to that spot and then gavin came over and paired with me. later apologized to the other two for throwing out their work and brought up the issue of testing. i’m definitely the most into testing in the group. pushed everybody else to get on the tdd train.
pretty hard to work in a group and get everybody on the same page. there are a lot of things i don’t like to compromise on, like tdd and clean code.
finally got the pieces together for the base of the app. the other pair worked on another piece of the user flow. by the end of the day they were very frustrated with tdd and felt like they hadn’t gotten much done.
at some point in here wednesday rolled around. the morning workshop was on conflict and frustration. unfortunately i don’t remember all of it, but here are the two big parts. first, we got in our groups and said on a scale of 1-10 how we were feeling about the project. our lowest was 3 and highest was 8. then we went around and said why. nobody really liked the problem we were working on. that was a bit of surprise to me. we came back to the big group and shared a bit about what happened. steve had our group come up in front and talk about our issues. he also had one person come up who was having conflict with his group and talked with him. the other piece was that we paired up and talked stream of consciousness about how we were feeling, and also commentated on that stream of consciousness. it was very steve. my pair and i both had some similar feelings about not being super into some of the steve stuff but trying to keep an open mind and finding some of it interesting at least. then we paired up with someone else and told them what we really thought of them. that was pretty interesting. my pair and i beelined for each other and had some slightly surprising things for each other. there’s something to be said for this radical honesty, just say what’s on your mind approach. but there’s also something to be said for feeling things out with people, for non-verbal communication, for letting things evolve organically. there’s a reason we do things the way we do. it’s not perfect, but don’t throw the baby out with the bathwater, etc etc.
that afternoon my group spent a couple hours trying to figure out something better to work on. we couldn’t agree on anything, and the best choice was to continue doing what we were doing.
the next day i switched to the code they were working on. some pieces were really broken. there was a lot of weirdness around things being saved that shouldn’t have been, tests not running correctly, helper methods not acting right… finally we got a TA to come help us. he removed spork, which he says can cause weirdness, and it started working, then put spork back and moved a few things around until it worked. these are the kinds of things you can never learn online. but i wasn’t satisfied because i didn’t actually know what the issue was and why some things needed to be in certain places in spec_helper.rb, and he didn’t either.
kept moving through and getting things working and in the right places. hit another issue with using a devise helper and robert walked us through that, eventually deducing that it must just only work for controller tests, not integration tests.
the next day i got a chance to work on my own for a bit to wrap up the loose ends. created my own helper method to replace the devise one, cleaned the code up, rearranged and deleted things in spec_helper.rb until they were working properly, had no duplication, and had no unnecessary requires, and got all tests passing. thank god.
the rest of the week was just working bit by bit through the different pieces of the app. really slow going. realllly slow. i often feel like my teammates are moving really slowly. i think they feel that way, too, which is why they don’t want to test. but i think testing is such an important skill. it’s not testing that slows us down; it’s not knowing how to test, and learning that as we go, that’s slowing us down. and even when i’m frustrated by pairing because i know i could go much faster on my own, i still really appreciate it for helping me think through things i wouldn’t have otherwise, and catching my syntax errors and other dumb mistakes.
it’s the end of the week and we have very little to show for it.