Student Blogs - Carnegie Mellon Silicon Valley - Carnegie Mellon University

Student Blogs

MS in Software Engineering, Development Management Track Blog

Wondering if a Carnegie Mellon degree is right for you? Read about our students' experiences through the MS in Software Engineering, Development Track program.

Linda is a first year part-time student in Carnegie Mellon's MS Software Engineering, Development Management track. She is a Software Developer at Electronic Arts in Redwood Shores, CA. She likes to dance and sing and her favorite videogame is The Beatles RockBand. She enjoys Indian, Japanese, Thai, Italian and Mexican food. She comes from Mexico City, and has being living in CA for the past two years.
Pras Sarkar is a second-year part-time student in the MS Software Engineering Development Management track. He works in Yahoo! Labs. His responsibilities include materializing ideas and concepts into engaging prototypes and demos, some of which ultimately mature into products that Yahoo! visitors use everyday. He is interested in emerging web technologies, social interaction over digital mediums, and creative interfaces that push the boundaries of human computer interaction.
Vineet is a Lead Developer at Boeing and a second year grad student in the part-time MS Software Engineering, Development Management program. He loves reading, playing with his daughter and pursuing the religious aspect of his life. He is an active volunteer of Vedic Cultural Center, a Seattle-based organization dedicated to promote the Vedic (ancient Indian) arts, culture, music and dance.
Truc is a second year part-time student in Carnegie Mellon's MS Software Engineering, Development Management track. She is a Software Engineer at Lockheed Martin in Sunnyvale, CA. She loves food and enjoys anything related to food: going to different restaurants, cooking, watching the Food Network, and of course, eating!

Wednesday, June 27, 2007

Architecture and cross-team communication


I’ve had a lot of things going on lately… I have reconnected with a long-time friend; my first work project is officially going to be complete this week, and I get to enjoy the one-week break between both architecture “minis” (our Architecture course is broken up into two “mini-semesters,” or “minis” for short). Which are all very good things, by the way.

Anyway, I wanted to talk about my experience with the first Architecture mini. You have to understand how the curriculum works: as students we are arranged in teams that get shuffled around each semester. Since this is our third semester, and therefore, the third time we’ve had to go through all the pain and the fun of working with new classmates; we thought we were totally ready to jump into the same routine of figuring out meeting schedules and work styles.

What we weren’t been prepared for - and I guess that’s also part of the fun - was that our team would have to work with another team. That’s right, our faculty threw a wrench in our plans - not only would we have to deal with the logistics of scheduling our own team’s meetings, but now we also had to consider the schedule constraints of another 5 people.

And I think that’s where the whole “real world” experience kicks in. In the corporate world, not only do you have to deal with your own team, you also need to worry about other teams, you need to rely on them for some things even though they have different methodologies, different schedules…

At the beginning of the mini, I have to admit that our communication with the other team was pretty bad. For the longest time, we weren’t really able to discuss things together. It was more like we were playing a ping-pong game: we get an idea as a team, send an email to the other team telling them our findings. They respond collectively, we respond collectively… We didn’t have hard feelings toward one another, after all, some of our former teammates were now on the other team we had to work with. But you could definitely sense some tension when we were trying to communicate with one another. And cross-team meetings were so big that we hardly got anything done.

That’s when we finally decided to create a sub-team to work on these deliverables. That’s to say 2 people from each team would get together and focus more specifically on the cross-team tasks. The good thing about this is we ended up with a much smaller cross-team. The bad thing is we still had to keep people in the loop.

Now, does that sound familiar? To me it does. That sounds very much like those hierarchical meetings: some higher-up goes to a meeting for people at his level, he comes back and relates his findings to people in his group, who relate what happened to people in their own individual groups… and so on and so forth.

Of course, we had to do this while simultaneously working on our other deliverables, meaning we had to keep the overhead of this new form of communication to a minimum if we still wanted to be successful within our team. And I think that’s where I learned something: Processes can always be changed. When things don’t work out the way they should, the source of the problem can usually be identified as either people-oriented or process-oriented.

People problems can be hard to solve, process problems should be easy to solve: if the process is broken, fix it. Create a better one; tweak it so it works better for you. There is always room for improvement but nothing is ever going to be done unless YOU take charge.

We had never communicated outside the boundaries of our team, we had quite a bit of work that had to be done while working in parallel with another team on an unrelated deliverable. When we saw the schedule the first time, we were all scared and didn’t know what to do. Then little by little, we found a way that worked for us and that helped us achieve our goals.

I learned something new, and that feels pretty good. Next time I’ll talk about my first impressions about being a team lead (I’m going to be team lead for the first time since the beginning of the program).

posted by Carnegie Mellon Silicon Valley @ 10:47 AM  0 comments

Monday, June 4, 2007

Being a remote student at Carnegie Mellon West


For this blog entry, I will write about something a lot of people I talk to ask me about: How can you be a student at Carnegie Mellon and live so far from there.

My response is usually twofold. First of all, I attend classes at Carnegie Mellon West, which is Mountain View, CA and not in Pittsburgh, PA.

Second, I am a remote student, which means I don’t go to campus every day or even every week. So far, I have gone to campus a handful of times (I used to live in Sacramento and could justify the 2-hour drive), only 2 of which were mandatory.

Now, if I don’t go to campus and I don’t even have real lectures, is that even a real degree? The answer is YES, it is. It’s challenging, interesting and so far I have learned a lot of no-nonsense software engineering principles and ideas.

The truth of the matter is, I don’t think I could be a remote student and sit in a “virtual conference” with a teacher lecturing and me listening. I mean, when you are in person at least you have peer pressure to keep you coming and staying in class quietly. In CMU West’s case we have better than that: interesting courses and assignments.

Being remote, I have never been on a truly local team, but I have been on mixed teams, and have had to work with local teams. And it seems like the experience local and remote teams are having are very different. Local teams will try to meet in person at least once or twice a week, and when they do they will usually spend a LOT of time together. I have heard some teams work for 5 or 6 hours straight over the weekends, but of course, when you’re meeting together in person, you tend to do more goofing around and hanging out mixed in with the actual schoolwork.

Remote teams on the other hand tend to meet more often (usually 4-5 times a week) but for shorter amounts of time (we usually limit our meetings to 30 minutes to an hour). This means we also want to make the most of our time when we meet: we always want to come prepared to our meetings, have done our readings and we are coming to make decisions or split up work. Don’t get me wrong, we debate and argue but only those points that make sense and we always try to stay on topic.

Most of the time, the whole team is not working on the all the deliverables but tasks are assigned to smaller groups (usually 2 to 3 people), and when that happens we try to find a schedule that works for all of us. I also really enjoy having to work more closely with people as I get to know them a little more personally: we can usually spend a few minutes talking about our personal lives and what’s going on at work.

I also enjoy being able to work (mostly) whenever I want and not having to follow somebody else’s work routine (I usually do school work in the morning before going to work, unlike many people who prefer to stay up at night).

If being remote is so great am I missing anything not being local? Well, for one I feel like I am missing mostly on the social aspect of school: we all try to put our pictures up on IM and on our student wiki pages, and after a while we can all recognize each other’s voices. And usually by the end of the semester I feel like I know my teammates fairly well. However, I don’t know many other people outside my team: I miss on most (if not all) of the meeting events that are organized outside of the coursework.

For example, we have a monthly presentation where some students talk about a Software Engineering subject of their choice. Attendance is mandatory for everybody, but by attending virtually, I miss out on the opportunity to share pizza with and talk with other students.

Overall, I think being remote is an opportunity: I can work out my schedule the way I want, still have a social and a family life (I have a 5 and a 1 year old) and get a higher-grade education at the same time. What else could I ask for? Maybe some rest, but I knew those 2 years of school were going to be a pretty big commitment – however I think in the end it will be worth it.

Next time: I will talk about what has been going on in the architecture class so far and cross-team communication.

posted by Carnegie Mellon Silicon Valley @ 11:35 AM  3 comments

Previous Posts Archives