Last night Steel City Codefest wrapped up at the Ace Hotel in East Liberty. This was the fifth year of the Codefest, and it seems to be a well-established opportunity for developers to take on challenges and create some very cool products for groups who really need them. There were 95 coders who participated this year. My bootcamp, Academy Pittsburgh, sent many, many participants from Session 3, the session that is currently attending the bootcamp. They are on their seventh week of learning and were just introduced to HTML and CSS this past Monday. There were five of us from Session 2 participating and we were divided into two of the three Academy PGH teams to work with the Session 3 folks.
I was away for the kick off and was able to join a team on Monday, when I returned. The group was aiding a nonprofit called the Pediatric Palliative Care Coalition. The app the organization was looking for was one which would allow parents and caregivers for medically fragile children a place to manage all of their many appointments, medications, hospital stays, health checks, etc. Currently, PPCC is offering parents a binder filled with pages for them to write this information. An app makes so much sense as a way to help these parents. It would be easier to organize and search. It could be shared among family members who could be updated in real time about events. It would be more likely to be used and referenced and less likely to be lost. I was really excited to be able to use my new found coding skills to help an organization like this. Frankly, that could be my dream job.
Anyway, life does not always work out as we hope.
The team had met a lot over the weekend and had come a long way with wireframing. They had many professional graphic designers in the group who had come up with beautiful pages and a sensible UI. Someone in the group was very organized and had created a Trello bulletin board of tasks and lots of documents and files pertaining to needs. It seemed like a smart, talented, and organized team. I was very excited to attend the first build night on Monday evening at Google to meet the team and start to build actual pages with code and make them have the potential to hold data.
Our teacher explained to me that he hoped I could make the front end work and he would handle the back end, and I would use that API. This sounded fine to me. We had previously done something similar with an app for Replay FX, something I will probably write about another time. So, I decided I would use VueJS and the Quasar boilerplate/ UI component library. I had used it before and thought it was very easy to learn. I got some help from Ben from Uber, who was assigned to Academy Pittsburgh, to redo our Github repo and help me make some decisions. Ben was awesome, by the way. He seemed frighteningly young, but good skin can do that. He was knowledgeable, patient, helpful, and quick to catch on. He didn’t know anything about Vue, but helped me make the decision to use it when I wasn’t sure if that was the best choice.
Now that our Github repo was set up, our team moved to a room with a projector so I could walk them through creation of a page. I had high hopes that I could set them each up with a page and they could use them as components — create data and process it in the HTML and include CSS at the bottom of the page and then we could integrate them. That didn’t even begin to happen that night. Maybe it was because it was 82 degrees in the area we were working. We were told the temperature could not be adjusted. And the lights kept turning off. I guess Google really does try to encourage their employees to go home after a certain time. Maybe because of that or because they had not had a lot of experience working in Git or because of some other reason that I don’t know we barely got through them cloning from Github and then it was 11:00. It’s all a blur now. No problem, right? We still had several days.
The next day, Tuesday, my Session 2 partner (henceforth, Partner) and I arrived at Academy Pittsburgh ready to work. I set myself up in Chromecast and was ready to show the group VueJS and explain how to add components. Unfortunately, I was having a little trouble with Stylist, the type of CSS Quasar uses, and while I was fiddling with that, the group fell to talking. I think I set them off in the wrong direction. Then, when I was ready to go and starting to show them what to do and how Vue works, after about one minute, one of the group members was casting from his computer to show his HTML. I really don’t remember why. I do know that the reason made no sense and did not help anyone begin to make pages that worked.
That distraction devolved into an argument that continued for about 2-3 hours. Partner and I could not get the group’s attention back. I believe they were arguing about design and who created what and which image should be used and other such things. These are not areas that interest me at all so I don’t recall exactly what the problem was. I just wanted to get started making the thing work.
At this point, I realized we had the problem on our hands that I explained in the first blog post. The team was so set on making a perfect and comprehensive app, that they probably would never build anything. They didn’t just want a car, they wanted a flying, driverless car. Meanwhile, they didn’t even have a wheel and had only drawings of the car. They were arguing about what kind of music would be playing and what color the lights would flash instead of thinking about what they could reasonably build with little experience and three days. I was not capable of correcting their path. I am not sure what I could have done differently. I wish I had been able to convince them that they were on the wrong track. A combination of certain personalities and their inexperience were too much for me to take on.
After that meeting when I was ready to pull out my hair, Teacher let us in on a secret. He had framed out the whole thing in dotnet’s MVC and had pasted in the team’s latest HTML and CSS designs for the Navigation and Header. Maybe I should have done something similar. It was Partner’s idea all along to do the whole project in MVC. Perhaps because I only have access to a Window’s computer as a loaner from my brother-in-law, it didn’t occur to me. The way he did it was by having one of the controllers just return views. So, finally, finally we got started. It was down to four of us: Partner, a very nice young man from session three, me, and Teacher. Partner started working on all of the pages except medications. She was making the base HTML/ CSS using Bootstrap for as many pages as quickly as she could. She is a front-end queen and super designer. She was in the zone and was really cooking. Young Man and I used the teacher’s computer to work on the medications page. We created a JSON object and Handlebars JS and its “each” built in helper to display a table of medications from our JSON object. I finally felt like I was doing something and was excited to learn about Handlebars, something I had not used before. Young Man caught on very quickly and was a faster typist than I, so we pair programmed with him typing. We had just set up a modal to display full medications when we realized we were the very last coders at Maya and all of the organizers were just waiting for us to finish so they could close up shop. Oops. But time really flies when you are happily coding away. I loved working with Young Man. He is a bright affable person with a breadth of interests. It’s so fun to pair program and work on a focused team. I really miss it.
The next morning, again stuck at home, I asked on Slack many times what I could do to help, what they needed, but got no response. The launch was in the afternoon and I think the group probably felt they had everything under control and didn’t want my interference when I had never been much help to them in the first place. I added some features anyway and after doing pull requests with no response (do they even know what pull requests are? I wondered) I just incorporated them myself. Those changes were never acknowledged and after about 1/2 hour, they were overwritten, maybe accidentally and maybe on purpose. I could not tell who had overwritten them as the push came from Teacher’s computer, which I am sure was used by someone in the group who had a Mac. I asked on Slack why that was done but received no response. I think everyone was too focused on making their last minute changes. I would have been fine with this. They are a smart group of adults and had made the app work somewhat as a demo. I was discouraged later to hear that someone in the group was complaining to one of my Session 2 colleagues that he though Partner and I were no help to them. Sigh.
I am still really processing this episode. It is interesting to compare our experience with that of the other group who had three men from Session 2 as their mentors/ leaders. The other team built a fantastic app and the Session 2 men were excellent leaders and really helped their group learn.
I don’t know if it was just the personalities in our group, but I felt like Partner and I got very little respect from our team from the get go. I know in many ways I deserved that lack of respect as I was unable to get them started and frame everything out for them in a timely manner. I was unable to physically be there a lot of the time. I am not good at managing people. I just am not. It is why I left teaching. I don’t like making people do what they don’t want to do. I wonder a little bit if it is that we are women. . . Anyway. . .
I learned that I am far from ready to manage a team. I learned that I need to be physically present to work with a new team unless everyone is used to people being remote. I learned that project managers can be very important if they focus on the right things and know what they are doing, but that they can be harmful if they don’t. I learned about HandlebarsJs. I got to know Partner better and really enjoyed spending time with her. I liked getting to know most of the team members of Session 3’s group. I loved participating in Steel City Code Fest. It is an awesome, awesome event, and was run so well. I imagine that the lessons from this experience will continue to manifest themselves for a long time. I doubt you read all of this, but if so, please don’t hold it against me. Remember that I am making mistakes and trying to learn from them. Perhaps even writing about this experience is one of those mistakes.