Student Blogs - Carnegie Mellon Silicon Valley - Carnegie Mellon University

Student Blogs

MS in Software Engineering, Technical Track Blog

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

Rahul is a full-time MS Software Engineering, Technical Track student. He loves traveling, trekking, swimming and is a complete movie buff.
Anthony is a 2nd year part time student in the MS Software Engineering, Technical track program and works at OSIsoft as a Software Engineer. He loves spending time with his family, hiking, biking, gardening, cooking, and sometimes photography.
Suma is an alumna of the MS Software Engineering, Technical Track program. A Mechanical Engineering undergrad, she loves writing and is passionate about music, shopping and dogs.
Minh is a Software Design Engineer at Microsoft and alumnus of the MS Software Engineering program. He is also a Vietnamese community activist, a cat-lover and passionate fan of film music.
Nick is a Software Engineer at Google and a first-year grad student at Carnegie Mellon Silicon Valley. He loves hiking, gaming, and both really extremely good and extremely bad movies.

Friday, October 26, 2007

Software Metrics Before and After (Part II)


Last week we wrapped up the 7-week Software Metrics class, and while I realize that I have learned a lot about Software Metrics, I must admit that this hasn’t been my favorite class. That actually comes as a surprise to me, because I have mostly enjoyed and was even thrilled about previous classes so far.

In this class we were given two problem statements of two fictitious development companies facing software management challenges, and were asked to analyze, and research the companies’ development management practices and propose metrics initiatives catered to them that allows stakeholders to better estimate and predict software development schedules. Throughout this process, we learned about the Goal-Question-Metric process, earn-value charts, burn-up/down charts, how to design balanced dashboards and reports, the social impact of measurement on developers, change management and of course a variety of software metrics commonly used in the industry such as function points, velocity, story points, and cyclomatic complexity.

The class made a point about the importance of software metrics and correct measurements, and how it enables development managers and even non-technical managers to better manage time, money and development resources as well as accurately predict completion dates. Throughout taking this class I kept on thinking about the consulting job I did for my friend. When prompted about the progress of that project I kept on saying that I was almost done. The thing is, I said for four years! I mostly attribute this to my inconsistent velocity (I would work on the consulting project only when time permitted and whenever I wasn’t preoccupied with my non-profit work) and to scope creep or changing requirements. If I only had measured key metrics in the past years, I could have charted these metrics out to see why and when the project kept on slipping.

This class was very different from the previous semesters, for we didn’t do any role-playing. Professors were professors, and students were students. Instead of interacting with faculty as stakeholders, we analyzed the problem statements, conducted research, asked questions, conducted further research, discussed with team members during plenary sessions and then developed a solution in the form of a written proposal that we later presented in 30-minute presentations to the entire class. This problem-based learning approach turned out to be not my strength, because I am used to being able to simply walk into people’s offices to resolve ambiguities about requirements instead of being on my own in making decisions based on only what’s been given to us.

On the other hand, what I liked about this class is that we were introduced to more software lifecycle management. In the first problem statement we concentrated on the unified process, and in the second problem statement we focused on SCRUM. Having practiced SCRUM successfully at my professional work for more than a year, I became the subject matter expert on this in the class and provided my teammates with my experience and even real SCRUM charts and reports from work.

All in all, while I agree that software metrics is key to successful software development management, I thought that the art of designing a report or developing a metrics initiative might be better suited to program managers and not developers. In fact, I even spoke with our dean of education about my feelings toward the class, and he was very receptive to what I had to say. That’s another great thing about this program – there is such strong student support, and the faculty are very keen to take our feedback on the classes as they evaluate the curriculum. With that, I am enjoying my one-week vacation and look forward to the construction class that starts next week. We’ll be doing a social-networking website for smart devices with Ruby and Rails. How cool is that?!

posted by Minh Nguyen @ 3:36 PM  0 comments

Just Getting Started here at Carnegie Mellon West!




Hello, I’m Nick, a first-year student at Carnegie Mellon West, in the MS Software Engineering program. I’m excited to share my experiences with you as I start this two-year program and hope you’ll enjoy reading my stories as well!


Well, here I am, back at Carnegie Mellon, a little bit to my surprise. I graduated from Carnegie Mellon (Pittsburgh) undergraduate in 2006, choosing to accept a job from Google here in Mountain View, over a fifth-year Master's there. I really felt like I wanted real-world experience and a job instead of spending more time in academia. So I came out here to Silicon Valley and started work. Things at Google have been great, but after a few months I realized that there were real skills I was lacking in terms of operating effectively at my job. I knew a lot of about algorithms and theory but not much about organizing a team or design patterns for software. After attending an info session at Carnegie Mellon’s west coast campus, I said to myself, "If they teach what they say they teach, this is exactly what I'm looking for."

This program's goals are extremely functional and real-world. The faculty strive to get you change your mind-set, so its almost like you’re not in an academic classroom – you’re in a work-like environment with a team of people who are all working together to accomplish the same goals. I've already been able to apply some of the things I've learned to my work habits at Google, specifically on how to be effective in meetings. Getting a real experience on how to create good software is something that, to me, is much more valuable than yet another way to solve the traveling salesman problem. I'm sure I'll learn some new approaches to things while I'm in the classroom, but what’s cool is that I learn just as much from my teammates who are all working at other tech companies.

I think I'll get more into the specifics of the program over the coming weeks, but I'll give a brief overview of how things have gone so far. After a weekend orientation to get started (which was loads of fun) we were given an overview of a software program that each team will be expected to upgrade and release as the next version. Teams consist of three or four people, and my team has a pretty diverse background. There's another person who, like me, is about a year out of undergraduate and works for a local software company, a second with several years of work experience who works for an online video advertising company, and a third who has many years of experience who works for a company doing embedded hardware and systems. In the orientation, we started to gel really quickly and have gotten off to a good start. The first few weeks we spent getting up to speed on XP/Agile programming strategies as well as mocking out the UI changes and user scenarios we'll be programming towards. We've just taken our first steps towards coding and I'm looking forward to applying XP to see how effective it is for our team.

In another 2 weeks, we’ll have a brief demo of how far we have gotten the program that we just started modifying a week ago--so it'll be interesting to see if we can get as far as we hope.

posted by Nick Lynn @ 11:29 AM  4 comments

Friday, October 12, 2007

May I present to you… Scotland Yard?



Do you know those technical software engineers that are geniuses in their field, but lack every possible social or business skill? I am talking about those engineers that always know better, but just can’t explain or express themselves. Having worked in Silicon Valley for a while now, I’ve encountered my share of these guys and always find it quite shocking when they dive into a presentation without engaging the audience, providing an agenda or just even setting the stage appropriately.

Well, CMU is aware that many engineers may not have had training in these important skills, so the Carnegie Mellon West program seeks to teach a lot of soft skills that are often not necessarily related to the primary responsibilities of a software engineer. Among those skills are team-building skills, technical writing, being change agents, but an important one is of course the art of presenting effectively.

So, it’s of no coincidence that throughout the program, we are provided with ample opportunities to speak publicly. Often it’s part of the class, where we present some of our deliverables to stakeholders (aka our faculty) but also often to other classmates. I usually do one or two presentations per class, and it usually also involves remote students by use of LiveMeeting. In most of the presentations, besides getting a grade on the material we present, we are also receiving a lot of constructive feedback and critiques—both from our faculty as well as from our peers.

In addition to these class-specific presentations, each Carnegie Mellon West student must also present a topic of his/her choice during a monthly event where local students flock to campus and remote students dial-in on a conference bridge. For reasons that are still unknown to me, this monthly meet-up is referred to as Scotland Yards (the police force of greater London). I suppose it’s named this way, because it is a meeting where members of the same craft come together and share their thoughts and experience about an aspect—in our case about software engineering. I suppose it’s another name besides using the usual “Birds of a Feather” term you often see so much at technical conferences.

Anyways, during Scotland Yards, typically three or four students present for 15 minutes each on a topic of their choice in the field of Software Engineering. I really enjoy those Scotland Yards, because it’s a nice informal evening where local students come together, meet each other over pizza/sandwiches and then get a survey of what’s hot and shaking in Silicon Valley. Topics are extremely diverse, and include for instance content such as working in distributed teams, tool-assisted code reviews, technical interviews, web-deployment, Ajax, usability testing, Java unit testing tools, Adobe Flex, personal experiences with CMMI, enterprise search engines, and requirements management tools just to name a few. For me, these Scotland Yards are often an eye-opener to see what’s cooking outside of my Microsoft bubble (and to realize how much I am missing out being so focused on Microsoft technologies only).

Well, this past Monday, I had the opportunity to present my Scotland Yard about “Internet Censorship and Circumvention.” This was a topic that I have always been interested in given that my own country Vietnam heavily exercises internet censorship. So for the past weeks, I’ve researched internet circumvention techniques, found very interesting tools and techniques and presented them with my own enthusiasm, but also with much interest and participation from the audience. The hard part turned out to be managing the audience’s many questions well enough so that I won’t run over my allotted 15 minutes! Hehe, that was a fun presentation, and I am looking forward seeing the topics that my Class of 2008 peers will be rolling out this year.

posted by Carnegie Mellon Silicon Valley @ 3:55 PM  0 comments

Previous Posts Archives