20 Years of Visual Studio: #MyVSStory

Today Microsoft is marking the 20th anniversary of Visual Studio, their integrated development environment. To celebrate, they’ve released Visual Studio 2017! Over the last month or two, Microsoft has encouraged developers to share their Visual Studio story on social media. Here’s mine!

Microsoft Visual Studio .NET

I became interested in programming at a very early age and started playing with BASIC on our computer at home. I remember writing a program that asked you for your name and favorite color and then printed something like “Hi Name!” in that color to the screen. I’m pretty sure I tested it on my younger brother, but he was much less interested than I was. I thought it was magical.

One day I was in my Dad’s office and found a box for Visual Studio 97, the first release of the product. He let me take it home to install on our home computer and that started a long and fruitful relationship with Visual Basic. Though I started to learn other languages too, it was VB6 that I really enjoyed. When I started my software company Paramagnus back in 2000, it was VB6 that we wrote our first programs in.

While I probably did use Visual Studio 6.0, the second version that Microsoft released, it was Visual Studio .NET that came out in 2002 that really changed things. I was able to transition my VB6 knowledge into VB.NET and became smitten with the new .NET platform. I remember reading a magazine article about something called “COOL”, a new “C-like Object Oriented Language” from Microsoft that was kind of like Java. Well that became C# in Visual Studio .NET, and it wasn’t long until I switched from VB.NET to C#. It became my primary language and remains so today.

Microsoft Visual Studio .NET

In the early 2000s, I was involved with a .NET user group here in Edmonton. I remember meeting developer evangelist John Bristowe through that in 2005 when he came up from Calgary to show us “Whidbey” which would become Visual Studio 2005. I always enjoyed John’s presentations and his passion for Visual Studio, which he often called “God’s IDE”. That always stuck with me!

From 2003 until 2005, during my time at the University of Alberta, I had a side job as the Alberta Student Representative for Microsoft Canada. Part of my role was to organize and deliver presentations for students, and in 2004 I became an Academic MVP. That brought some nice perks along with it, including an MSDN subscription which meant all of a sudden I had access to everything!

Tech·Ed North America 2010
With the Channel9 guy at TechEd North America in 2010

It’s safe to say that Visual Studio has had a big impact on my life. Everything from my profession to some really rewarding personal experiences. I competed in the Imagine Cup student programming competition in 2003 and represented Canada at the worldwide competition in Spain, for instance. Along the way I’ve met some great people and learned a lot from some excellent developers.

I still use Visual Studio every day, though not always the IDE. These days there’s Visual Studio Team Services, which offers a place to store code, plan work, and test, build, and deploy software. I also use Visual Studio Code, a lightweight, cross-platform code editor. In fact, I’m writing this blog post inside Code because it is such a fantastic Markdown editor. I can’t wait to see what the next 20 years bring.

Happy birthday Visual Studio!

Imagine Cup goes green in 2008

Post ImageThe winners of Imagine Cup 2007 were announced yesterday in South Korea. The winning team in the Software Design invitational was from Thailand. The team members are: Prachaya Phaisanwiphatpong, Vasan Chienmaneetaweesin, Jatupon Sukkasem, Pathompol Saeng-Uraiporn.

Yeah, I don’t know how to say their names either! Imagine Cup is truly an international event. Dickson and I participated a few times, winning in Canada the first year back in 2003. The competition is for students, so I can’t compete anymore, but I still like to read about it.

Next year’s event will take place in Paris, France, and the theme is hardly surprising. Yep, you guessed it, Imagine Cup is going to tackle the environment in 2008: “imagine a world where technology enables a sustainable environment.”

Actually, that’s probably a fairly difficult theme for software development. It’s easy to come up with ideas for healthcare or education related software, but much more difficult to build something that helps the environment. Here’s a decent article on the topic.

Congrats to all the 2007 winners!

Read: Imagine Cup

Imagine Cup Canada 2006

Post ImageIt’s getting to be that time of year again! Microsoft’s annual Imagine Cup programming competition is starting to heat up, with thousands of students from around the world already registered. If you’re a Canadian looking to enter the Software Design Challenge, time is running out:

The Software Design Challenge is the most high profile Imagine Cup competition. This year, teams of young technologists are challenged to create the an innovative, impactful, and elegant piece of software to help people live healthier lives.

Register your team for the Software Design Challenge – you can register until April 7, 2006. Create your executive summary and submit it using the required submission template to ICcan@microsoft.com by midnight April 7, 2006. THIS is all you need do to secure your team a place in the most high profile category of Imagine Cup 2006.

Having competed in the past, I can honestly say that the Imagine Cup is an excellent experience for students who want to do some .NET programming (as in my experience, most schools do not teach .NET or C# or anything related). In addition to the Software Design invitational, there are also invitationals for IT, Short Film, Algorithm, and Interface Designer, plus the Project Hoshimi Programming Battle. Lots of ways to participate!

I think Dickson and I will be entering a team again this year, as it is our last year of eligibility and we think we have a great idea too. Of course, it is related to podcasting, but that’s all I’ll say for now.

Read: Imagine Cup Canada

Follow-up: Imagine Cup Canada

It has been a few days now since I posted about the problems facing Imagine Cup Canada. First of all, let me say thanks to everyone for the feedback on that post, online and offline. It was reassuring to know that some of you share my concerns, though not unexpected. Thank you also to Daniel, for making yourself immediately available to discuss my concerns.

So what happened? Well as you might expect, my post prompted some people at Microsoft to spring into action. Like I said to so many people, it just takes someone to stand up and say “we have a problem, let’s do something about it.” I am proud that I was able to make that step – I think it will go a long way towards improving the Imagine Cup. Let me explain what I mean by that.

The Imagine Cup teams, both in Canada and Redmond, are now aware of my concerns, and are committed to improving the experience for students. Daniel sounds enthusiastic about incorporating some feedback, proclaiming “let’s improve it tenfold!” In fact, Daniel has agreed to provide conference call facilities so that any interested student can take part in a feedback session with Daniel, and possibly members of the Redmond team. Here’s the details:

WHO: You, me, and the Imagine Cup team
WHAT: Conference Call Regarding Feedback for IC06
WHEN: May 31st, 2005 at 4 PM EST
WHERE: Phone/Internet Conference (LiveMeeting)

I’d rather not share the conference details on my blog, so if you are interested in taking part, please email me and I’ll send you everything you need. Keep in mind, only the first 20 students to attend will be able to take part, so if you want to join, make sure you’re there on time! If you won’t be able to attend but still have feedback you’d like to offer, drop me an email, and I will be sure to voice your concerns! I’ll be on MSN Messenger for the duration of the call as well.

Some of the big things on my mind are transparency and worldwide consistency in judging, some sort of written feedback to participants about their entry, and improved access to local competition information. How about you? What would you improve?

In Response
I had the opportunity to speak with Daniel after I made the original post. Here are some of the things I was able to learn:

  • The winners in Canada for 2005 were announced the day after I made the original post. Congratulations to the winning team if you are reading this! One of my biggest complaints was that participants did not receive any feedback regarding their entry, and so the opportunity to learn from the experience was lost. Daniel has promised to talk with any interested participant on the phone about their entry. All you have to do is get in touch with him (and he said he’ll work on being more available too).
  • Reducing the number of judges to two for this year was done as an experiment. In previous years, it was felt that the larger number of judges meant that not everyone’s entry was being fairly judged. This year, by having only two judges look at every entry, it was felt the process would be more fair. That may sound perfectly fine, but the problem is not with having too many judges. The problem is not having standard and very clear judging criteria! A good judge can fairly score an entry if their criteria is made reasonable clear.
  • Everyone generally agreed that communication was not very good. Daniel has said he’ll work to improve, and is open to ideas like a Canada-specific website for information. There were also some things that were, understandably, out of Daniel’s control.

I’d like to point out that everyone I spoke to at Microsoft seemed very concerned that things got to the point where I would post, Daniel included. The general feeling was that in experimenting to improve the competition in Canada this year, the opposite result was accomplished. That said, I am very encouraged by the opportunity to provide feedback and suggestions on how to make the Imagine Cup better!

Read: Imagine Cup

Imagine Cup Canada: A world of problems

I have been pondering whether or not to post anything about the Imagine Cup in Canada for some time now. I believe the competition is a wonderful idea and has great potential, but unfortunately the people in charge of the competition in Canada are destroying it. There are so many things wrong, I’m not even sure if it should all go into one post. Recently, I decided that it would be best to share my observations and analysis on the problems, in the hopes that they can be prevented in future years.

Let me first make it very clear that I have nothing against Microsoft whatsoever. I am one of the biggest Microsoft geeks you’ll find. I have been an MVP, I’m a member of the MSDN Canada Speakers Bureau, I’ve been the Student Ambassador to the University of Alberta for two straight years, I run the .NET user group in Edmonton, and most importantly, I won along with Dickson the first ever Imagine Cup competition in Canada back in 2003. I’m probably the last person that wants to see the Imagine Cup fail.

Perhaps to start, a little background. For those of you who are new to the Imagine Cup, it’s a worldwide student technology competition. The first competition was held in 2003, with the finals taking place in Barcelona, Spain. Last year the competition was expanded, and the finals moved to Sao Paulo, Brazil. This year, the competition was expanded again, to nine different invitationals and another three specifically for high school students. The finals will take place from July 27th until August 1st in Yokohama, Japan.

Going Downhill
As I mentioned above, Dickson and I won the first ever Imagine Cup competition in Canada back in 2003. At the time, the only invitational was Software Design. Looking back, I can see that the Imagine Cup was run very informally in Canada, but given that it had never been done before, things went quite smoothly. Canadian participants were given a deadline by which to email their submissions. There was excellent communication between the organizers and the participants (I have the email logs if anyone wants proof). After our submission, judges even contacted us to ask questions as they were trying out our solution. After the competition was over, we were given a scorecard that showed exactly how our entry was judged. In fact, the only major problem in 2003 was that the judging in Canada was not consistent with the judging at the worldwide competition.

Let’s compare that to last year. Dickson and I again participated in the Software Design invitational, and we placed fifth – a ranking we only found out after hounding the organizer to tell us. Apparently, participants were no longer allowed to know where they finished, nor were we given a scorecard. While the submission process was handled very similarly to 2003, the judging was not. Judges did not contact us, nor were we told anything about the judges. We relied on server logs to determine if our solution was being accessed (it was). We had high hopes that 2004 would be a lot like 2003 with improved judging consistency to the worldwide competition, but it turned out to be a step backward.

If 2004 was a step backward for the Imagine Cup in Canada, 2005 is like dropping everything and running in reverse. The person in charge, Daniel Shapiro, Microsoft Canada’s Academic Program Manager, has made sure of that. Emails and instant messages have been ignored probably nine times out of ten. When we decided we wanted to participate, we contacted Daniel to find out about the competition, as we had some questions about the rules and regulations. Unfortunately, Daniel never got back to us, so we made some assumptions and proceeded anyway. There was virtually no information about what to submit before the deadline, nor was there any information about what would happen after submission. A few days after the submission, we were told that we’d be required to do a demo, so we needed to schedule a time. Finally, something that sounded like a step forward! Oh, how we were wrong. Scheduling that demo was like pulling teeth. We’d send an email, and the reply (usually like four days later) would be one line, and it was as if our email had not even been read. It was extremely frustrating. After finally getting the demo scheduled, we found that we were presenting not to judges, but to Daniel himself. Turns out, he thought it would be wise to get rid of judges this year, so he was the only judge. Daniel may be a smart man, but there are certain aspects of the competition that require appropriate qualifications to judge. Daniel is not a developer, how can he judge a programming competition? But what choice did we have? We went with the demo. It was clear that Daniel had not read our specification document. Additionally, just prior to the demo, Daniel mentioned that one of the Academic Developer Evangelists was also going to be a judge, yet he was not present at the demo, nor did we have any communication with him whatsoever. What followed was weeks of silence, ignored messages, and general frustration.

But wait, it gets worse!
We noticed things had been going bad, so when Dickson and I made our submission this year, we only attached the Design Specification document, and provided links to the code and other resources. We figured that so little was being shared about the judging in Canada, we’d at least give ourselves the server logs to determine if our solution was being accessed. It has now been over a month since we submitted, and guess how many times our submission has been downloaded? Zero. You can imagine how much faith I have in the judging. You can’t judge something you haven’t seen!

We finally got a hold of Daniel on Friday, and he assured us we’d find out about the competition this weekend. Well it is now very late Sunday night, and we’ve heard nothing. According to the Canada-specific timeline, the results should have been announced on May 1st. If we were forced to stick to the submission schedule, surely it’s not unreasonable to expect Daniel and his team to stick to the announcement schedule.

Problems in 2005
Let me make it a little easier to see the problems of this year for the Imagine Cup in Canada:

  • Communication has been abysmal. Emails, instant messages, and phone calls are constantly ignored. There is no website to communicate Canadian specific information on.
  • There are no judges. How can you have a competition with no judges?
  • Judging criteria is not made public. How is the ONE judge determining who wins? There is not enough transparency.

General Problems
Folding the Imagine Cup website into theSpoke was a terrible idea. theSpoke is just a very poor website, in all respects, and so it severely limits the usefulness of the Imagine Cup website. More importantly, Canada should have it’s own Imagine Cup website. With Canada-specific submission rules, judges, deadlines, etc, it only makes sense to have a website to communicate this information. As it stands right now, finding out anything specific to Canada requires emailing those in charge, and if you’ve read this far you know how effective that is.

As I said I’ve been a Student Ambassador for Microsoft Canada for the last two years. I am not going to get into the specifics of that, but I will say that I think the way Imagine Cup has been promoted has gone backwards as well. Why not learn by example? The United States has set an excellent example – they have a national competition, where the competing teams are flown to Redmond. Why not do something similar in Canada? I’m willing to bet interest would be much higher. More importantly, how can we promote something that is so very broken? Why would I want to subject another student to what I have dealt with as a participant?

Judging should be consistent across the board! The judging in Canada should be done in such a way that the best possible entry is selected to compete in the worlds – using the same criteria. There is no reason to have different criteria in each country.

Final Remarks
I have absolutely no problem mentioning Daniel in this post by name. He has been given more than enough opportunities to make things right. What I’d like right now more than anything is for Daniel to reply with a comment or post of his own giving good reasons for everything that has happened. Unfortunately, that doesn’t seem likely at all, because I don’t think there are any good reasons. At the very least, I hope by making this public a discussion will be started. In order for things to change, someone has to speak up and say “hey, we have a problem here.”

I hope at least some of you reading this are at Microsoft, and hopefully you can help. Whether Dickson and I win the competition this year or not, I’d really love to see the competition improved for the students who participate next year. Having said that, I would be completely in favor of delaying the results by a couple weeks to have the entries properly judged. I really believe the Imagine Cup is an excellent initiative – it gives students the chance to compete with and learn from their peers all over the world. I also hope some of you reading are students who have participated in the Imagine Cup, this year or in previous years. If you’re in Canada, I am sure you share my frustrations. If you’re in another country, what are things like there?

Basically, the Imagine Cup in Canada has been terribly run. It’s participants have been treated very poorly. Something has to change. Perhaps Microsoft Canada should outsource the managing of the competition – where can we submit a proposal? At the very least, let’s make sure things improve for students next year.

Read: Imagine Cup