Wednesday, May 14, 2014

Closing thoughts

This semester has been a handful and this class in particular has been one of much growth. I have had to assume the role as lead of a group of very skill programmers. Arguably, more skilled and certainly more experienced than myself. Because of this I had to adapt and take on challenges that I didn't imagine I would be faced with going into the semester. It was difficult at times but everyone managed to work well together.

One of the things I've felt was an important quality in a leader was someone that would give people a general idea but would lead them work autonomously so as not to inhibit creativity. Looking back on this experience, I realize that this might not have been the way to go. About halfway through, I realized I needed to stop being everyone's friend and be their leader. I wish I had this same opinion going into the project but maybe that's a lack of experience on my part; this is likely the case.

On the brighter side, I think our team was able to make a legitimate software product and at the vary least, it is a stepping stone to much larger things. We came together when it mattered and although we didn't always see eye to eye, no conflicts ensued. As for being a leader, I've learned a lot about what that really means this semester and that's probably something I really needed. There are things I could have done better, but this is probably always going to be the case. I think in the end I worked with a very talented group of developers and they taught me a lot and I hope they got something out of working with me, although I can't really speak for them. I would say this semester has been one of ups and downs, mostly ups and in all, a success.

Cheers!

Tuesday, May 13, 2014

Final Presentations

The final presentation went over about how I was expecting, maybe even a little better. Aside from a minor hiccup in the beginning, everyone on the team nailed their part pretty solid. I was concerned that I would forget everything I was talking about at first but that pretty much went away entirely by the time I got on stage, and by Q and A, I felt pretty comfortable being up on stage. Having to present for such a seasoned group of people was pretty intimidating but the positive feed back they gave us at the end was a nice consolation prize.

Overall, I was impressed with every groups presentations. They were all fairly solid and everyone was professional the entire time. Everyone seemed to put a lot of time, effort and care into their projects and pitches which is always encouraging to see. This is especially nice considering I might have to work with some of them one day so it's nice knowing that pretty much everyone is professional and can work on a non-trivial project and have a product ready to ship at the end.

I was disappointed that we didn't win but I don't disagree at all with the judges' decisions at all. Mechanapp and VisualScheduler deserved to win so congratulations to them. In all, I would say that the projects were a success and everyone's pitch was well done.

Sunday, May 11, 2014

Practice Pitch Reaction

The pitch has evolved quite a bit since the first practice pitch. At first it was mainly me talking and Justin going into detail about some of the features and while it wasn't terrible, it definitely needed work. The second pitch was similar in that I was doing a lot of talking, but it had more of a "hey, invest in us" feel to it. We got a lot of good feed back and one of the better things we changed about this last one was that everyone should be involved in pitching our app. After all, I wasn't the only one writing code. It also makes the pitch more personal in some ways since everyone has some input and that will hopefully help the audience to respond in a more positive way. We got the intro down to about four minutes I think and with some minor modification on my part, we should do well. I definitely noticed that I was speaking a little too fast at the beginning which will make our audience feel a little anxious so my main goal is to practice a bit more, focusing on keeping a calm and smooth pace throughout my part. That being said, our team has really come together to make this happen and I was fortunate to work with a very competent group of developers.

Saturday, May 10, 2014

Leadership

Some people are born leaders, some people are bred leaders, and then there's the rest of us. This semester has forced me to consider leadership in a way that I don't think I was entirely appreciative of before now. In the past, it seems like all I remember are moments of me being the main character in some struggle to save the world, usually a zombie apocalypse, because the Resident Evil series is one of my favorites. I do remember moments of feeling completely incompetent, and in fact, it's probably a pretty equal number of moments of feeling like either the hero or the guy with the red shirt on; just another extra waiting to be cast aside. It's easy to consider yourself the leader because that's what is always spoon fed to us growing up. We will be the Robin Hood, we get the girl, we save the world, roll credits, but life doesn't play out like a Hollywood script. Dealing with people isn't romantic the way it's made out to be when we watch Harry Potter. The reality is, we are all the Ron Weasley. Every last one of us. We are all looking for that chosen one to guide us.


When I first started this project, I was completely in shock when it got picked. Now here I am, having to make the decisions about what color the side bar is and if we are using Times or Sans font, and oh yea what size font please. I've actually been multiple positions where I was the smartest, baddest motha' this side of the Mississippi (yes I sung the song to spell it), then I had to manage 3, three, THREE computer scientists, all of whom I hold in VERY high regard. Gulp. How is Ron Weasley going to deal with three Harry Potters?


This semester for me, has been about the metamorphosis from Ron Weasley to Harry Potter, going from zero to hero in no time flat. We were expected to hit the ground running and when this first project start I knew I was on the right track... then post Spring break hit, and it turns out, there isn't much a consumer would be willing to buy. Sure the framework was there and without me I don't think that would have happened. But now comes the time when we have to make a product people will buy and that was where we should have been all along. We should have been there yesterday. I should have been there 5 years ago. And that's when it hit, "you have 4 weeks to make something people want to buy and you have squat." Engage maximum overdrive, we are hacking machines. Slowly, I see that all along, everyone was just waiting for me to deliver that story that would turn everything around, grab this thing by the short hairs and make some moves, and we did.


This project has taught me about more than just working in groups. Group interaction is no doubt important, but understanding ones role in the hierarchy is as important in some respects. I am slowly realizing that people need direction. Especially in a setting like this where everyone has an idea but only one in the groups is picked. When the hand is played, the winner needs to do what is necessary. Before, I was just tricked into thinking I knew what a leader was. Now, I am the leader of a project that, without my teams help, wouldn't have been possible. And while there is always going to be things that shoulda/woulda/coulda/ been better, we managed to pull off a small victory. We worked together and we came up with a novel idea that DOES have potential to be much greater than it is. Without my team, this would not have been possible and without me this would not have been possible. 

Wednesday, May 7, 2014

Final Lecture Reaction

Reality that this semester is coming to an end has finally started to set in. Comparing my thoughts of what software engineering is at the beginning of the semester and now, I find that I have a greater appreciation for ability of such an abstract thing like software to change the world. When I first started doing computer science, and in many ways until this semester, software seemed like such an abstract thing. The program was always specified on paper or in a file or it was an idea I had. That was one of the huge appeals cs had for me. That I could make some abstract thing and have it do something even if it was something as simple as the first "Hello world!". Software was real for me because I could see something on the screen that told me that the program did (or more often didn't) do what I wanted it to. Most of the programs I had written up until this time, while interesting for me, were never something meant to be used by other people, it was always for a grade.

Then we get asked to design a piece of software that will change the world. Even at first I don't think I was fully appreciative of what this actually meant. Now, having learned a new programming language, development framework, written my own proposal, spec and presented my software to a real audience with the intention of having people invest time and potentially money into my vision, I feel like I have gotten a taste of what life will be like working in the software industry, even if it's only the appetizer in a three course meal.

Overcoming the adversities associated with the amount of things I have had to deal with; new framework issues, group interaction, and leadership in order to develop a piece of software for real world use has made me appreciate software's ability to change the world and understand what the phrase "Real programmers ship" means.