A group blog from members of the VB team
All, I recently went on a trip to 3 Asian countries, and thought I would share the notes.
Here’s my summary of the recent trip a colleague and I made to Asia. The trip was cut short due to a typhoon in Manila, which was a real shame: my colleague and I were very much looking forward to seeing the Philippines. However, the trip was still excellent. My notes below are written semi-formerly, to make it a more interesting read.
Well, Hong Kong is certainly a bustling place.
I arrived just before midnight on Saturday, and there must have been a few of flights arriving at the same time, because the luggage carousel was absolutely jam-packed with bags. So many bags that they became stacked on top of one another, and an unfortunate lady standing near the loading chute failed to notice the backlog. The bags forced there way onto the carousel and a couple of bags fell on her, something I haven’t seen before. She was fine though, if a little dazed.
On Sunday, my colleague and I met for lunch. She had booked at a traditional Cantonese restaurant, which was extremely popular. The only issue was that we had to wait for our table for a while, and the waiting area was extremely small, and crowded with people waiting for tables. My colleague joined the folks peering over the counter to see there name on the list, and had to be extremely aggressive to get the seating-person’s attention. Of course, that’s one of those cultural differences you need to get used to here I think: being aggressive brings you success. Perhaps there’s a business mantra in the making…
Hong Kong if you haven’t been here, is an assault on the senses. People everywhere, cars going in all directions (aggressive is the name of the game here also of course), far warmer climate than I’m used to, far more humid than Seattle… it has it all. They only have compact cars, I don’t think they know what an SUV is: I love it! The taxis are deceptively roomy however, there’s always plenty of space in the backseat for people with long legs.
Schedule for the week
Morning: customer visit with customer, presentations at Hong Kong TechEd
Afternoon: presentations at Hong Kong TechEd, customer visit
Morning: travel to Taipei
Afternoon: customer visit, customer focus group
Whole Day: presentations: 800+ people
Morning: travel to Manila
Afternoon: customer focus groups (2)
My colleague went directly to the convention centre since her presentation was in the morning, while I went to the first customer meeting of the week.
Customer Meeting 1
The first customer does a LOT of java development. However, we talked to a specific group within the company, who developed only in VB: currently vb6, and looking to move to vb.net. It can be eye-opening when meeting with customers, to get first the overall approach for the enterprise (which in this case, gave me the impression they would be adversarial), and then meet a specific group, and realize that that group is extremely different from the overall enterprise. It can give you a bit of insight at what it must be like to be the Evangelist working with that customer, and how you might manage the relationship. In this case, keeping a specific group inside the company happy and approachable was the approach being taken.
We met with three gentleman. This was an exceptionally friendly meeting, since the account leader, wanted specifically to know about migrating the company’s existing VB6 applications to VB.NET. They had 10 existing applications, with a small team of developers, and the lead wanted to migrate the team. I simply took the lead and his team through the standard migration story, taking some time to demonstrate the available tools to help them with the migration. It was interesting because The lead was clearly willing to move his entire team to .NET, but was definitely concerned about the cost, and trouble of migrating. I encouraged his team to take a considered approach, and start with only moving 1-2 applications, or simply starting some new application development in .NET. The lead had heard about the interop form toolkit, but was pleased to see it demoed, and warmed to it immediately. He also liked the upgrade assessment tool, and could clearly see how to get his team working on .NET. They planned to be moving to .NET early next year.
We didn’t really need to discuss much else, and the customer had no specific reason they were staying on vb6, beyond the historic. All in all, one of the easiest customer visits I’ve ever had.
Colleagues’ talk: 3 MVP’s
At my colleague’s talk, there happened to be 3 Microsoft Partners who sat behind us who we got chatting to: one for VB, one for C#, and one for ASP.
Favorite new features:
- VB guy: definitely click once. He mentioned that this really took away one of the biggest pain points in developing applications, and was fundamental to making proper applications
o He did make a side comment that we need to do a far better job at ensuring we make vb as accessible as C#. There’s still too many things getting released by the company in C#, but not in VB. He mentioned that the insders list can help here of course, but we still give the wrong impression when C# code is available, but the equivalent VB code is not
- C# guy snippets, refactor, and the class diagrams. He said that the snippets and refactor were awesome because they speeded up his development. Indeed, refactor is something he mentioned, has become critical for his development, he can’t imagine developing without it anymore.
- ASP guy: couldn’t pick one particular thing he liked about Whidbey. Instead, he simply talked about how much of an improvement Whidbey was over .NET 1.1, and how it really lowered the barrier to entry for customers, by making developing asp applications easier
My colleague and I gave a total of 3 presentations (WinForms, TipsNTricks, Upgrading VB6 apps) at Hong Kong TechEd. All went well, and I even got a good laugh from the audience for my ‘tip and trick # 11: have an email address for someone in Microsoft’ (I gave them mine).
Evening meeting: Customer 2
Like the customer in the morning session, this meeting was about showing them the migration tools, and discussing best practices for upgrading their existing VB6 application, to VB.NET. Their application was very large it seemed, a million lines of code was mentioned as if it were a drop in the bucket.
The meeting went exceptionally well, mostly being me showing them the tools available, and then them asking the odd question, or piece of advice. There was no issue that they WANTED to upgrade their application, they simply wanted to get over the hump of ‘how’. We went through the various options from rewrite to fusion, and the main business manager focused very much on the benefits and difference between rewriting their application, vs. upgrading their application. They especially loved the assessment tool, warming to it as soon as we showed it: they could clearly see how to use it to get an initial gauge on the size of the effort they would have to undertake for a migration.
As with customer 1, the atmosphere was friendly, and it was more of an ‘instructive’ session, than a ‘sell me’ session. The business manager asked if we were available to come back and provide advice and further assistance (which we took as a very good sign), and it took a while for us to explain that we worked on the actual VB product: we didn’t simply travel the world providing consulting. The concept that we weren’t available as standard consultant personnel was clearly a bit alien to the management.
Reasons they wanted to move to .NET:
- Employee satisfaction: the business manager made the point that for new employees, working on VB6 was simply out of the question. It was impossible to hire new recruits from college, and sell them on coming and working on VB6, even if it might be slightly higher pay. As she put it, ‘VB6 just isn’t exciting’.
- Customer demand: units consuming their application were beginning to demand a shift to .NET, to better leverage services and new technologies. It was clear that the SI unit was under increasing pressure to begin developing applications using .NET technologies. We talked to the evangelist about this afterwards and it became clear that a critical hump has been passed by a LOT of business in the area, and that .NET is really starting to take off. This was great to hear
Consideration as part of the move to .NET:
- One of the key decisions it seemed, was whether to remain as a forms application, or to move to a web based application. The idea of ‘thick’ clients was clearly concerning, partly for deployment (so we gave them the good news on click-once. Again, it took a bit for the story to be accepted, but once it was, it was met with big grins), but partly also because the hardware people had to run applications probably couldn’t cope with a thick-client anyway. We unfortunately didn’t get to discuss this in much detail, but I asked them to contact us so I could forward them on to the asp team, so they can give success stories about forms to asp.net migrations
Cultural Tip for the day…
A senior colleague had mentioned to me before we left that there’s a particular etiquette to giving out business cards. You hold the business card in both hands facing the person you’re giving it to, and you give a little bow (or any sign of respect) as you hand over the card. The other person of course, does the same. I assumed that he was playing a little joke on me, and that I would be busy handing out cards this way while people stared at like I was crazy. So of course, the first meeting of the day I flipped the card at the customer in the standard, nonchalant manner. Imagine my surprise when this etiquette was a very real phenomenon! However, I was soon double-handing business cards and bowing with the best of them. Note that the same rule applies to giving someone money, receipts, or other goods purchased.
Day 2 on the tour saw us rising early to leave the hotel at 6am, and be at the airport early to travel to Taiwan. The trip was short, just a 90 minute flight. From the 2 regions I’ve managed to see, Taiwan reminds me of Seattle. Rolling hills, and lots of trees. After checking in and a short 20 minute slot for lunch, we were immediately whisked off to see a customer.
Taiwanese companies are sincere about physical security it seems and it took 30 minutes for us to be cleared by the front desk. We also had to put on some rather fetching blue ‘dust’ booties (which fit over our shoes), because they don’t want any additional dust being draped through the office: it can interfere with the manufacture of chips and hardware. Permanent employees had a special anti-dust sandal.
We presented and talked to 30 employees for 2 hours, on upgrading from VB6 (which is becoming a most common theme throughout the tour, it’s clearly the favorite topic), and new features in ASP.NET 2.0. The presentations were received warmly, although not many questions were asked in English by the group, who was very quiet. As they started asking questions in Chinese, more and more questions were asked, so I sat back and let my colleague do the talking ;-).
The questions asked in English were:
- If I drop an image on a master page, and then I have a page that inherits that page in a different directory from the master page, it can’t view the image properly. How do I fix this?
Some image, shown on master
Some page inheriting master
Doesn’t show image correctly
Some page in same dir as master
Shows image correctly
- A very specific question about a potential memory leak in ASP.NET 2.0, where the machine running ASP would crash after 30 days. The customer will be contacting us about this issue via email
- A feature request for math.max/min that takes an array of numbers, not just 2.
After talking to the customer, we returned to the city and had another 2 hour customer session, but this time, with 20 people from a variety of customers, not just one company. This was another opportunity for customers to ask questions, and again, they were most comfortable asking in Chinese. So again, I sat back, and let my colleague do most of the talking. From time to time, the odd issue would be raised in English, or translated for my benefit:
- One customer had a specific issue with the compatibility of his vb6 library. It used to work on Win2K, and he had moved to winXP, and his app no longer worked. We explained the support policy, but also indicated that he could send us a repro and we’d see what we could do
- One person asked for us to differentiate VB from C#, so we walked through the focus for VB (ease of use) and a few of the differentiating features (My, intellisense filtering, etc.)
- LinQ was raised, and there was a bit of a stir: LinQ clearly raised a bit of excitement in the group. There was a question around it’s performance, with the assertion beig that unless it was performant, it clearly wasn’t going to be much use. We assured them LinQ would pay a minimla overhead, and bring a much improved programming model
- A customer enquired if they could take their existing usage of office in their application and transform their apps to .NET? Of course!
- One customer asked if we had a c# to vb translation tool. It turned out the reason they wanted this was to translate C# samples provided by us, into VB. In no way did the customer mean to be attacking us here, but this particular query cut me deep. Essentially, it’s yet another person indicating, in an even more subtle way, that we continue to send the wrong message publically about the support for VB. We have to do a better job at ensuring samples and code are available in VB! Another example mentioned was samples for Enterprise libraries!
- One customer enquired about dynamic languages, and support for scripting, and competing with RubyOnRails. We mentioned that the VB team is always interested in this space. This is the first time I had heard this question on tour, it will be interesting to see if this comes up again
Day 3 was our first full presentation day. We gave 4 presentations to an audience of 800, followed by a session of questions/answers to the audience. The sessions for the day were:
- Tips And Tricks
- Windows Forms: What’s New
- Upgrading VB6 to VB.NET
- Question/Answer session
The day went exceptionally well, with a very positive response from attendees, and organizers. The crowd was attentive, and mostly quiet throughout. They were responsive enough that we could make the odd joke, and they got an positive response, with the exception of a New Zealand sheep joke I made that no-one seemed to get: I had to try it out though.
Today, from the various questions customers asked in between breaks, and in the question/answer session, three very real themes came through:
- Give us samples in VB please!
A number of customers throughout the day made this request directly to us. But other customers asked us indirectly, by asking for a C# to vb code translator, and one customer even asked for the ability to embed C# code in VB (which I interpret as a request to allow him to take C# code he can get his hands on, and use it cheaply in VB). While everyone was well-intentioned in their response, I’m frankly, sick of hearing that as a company, we continue to be doing a poor job at serving our customers in this area. We have to figure this space out, and as the VB team, it’s up to us to ensure that we’re delivering this message right. We need to be ensuring that for product releases, including betas and formal releases, VB samples abound, so people don’t need to ask for language translators
- We’re ready and willing to move to .NET!
I have to admit, that a year ago when I did a customer tour, people were positive about .NET, but they just didn’t seem to have reached the ‘hump’ at which they had committed to shift. The feeling on this trip has been different, and while a lot of customers are still on VB6, they clearly have made a decision to move. When I give the upgrading session, the section on ‘why should you move’ is listened to, but it’s clearly not the most interesting part of the talk to customers: they’ve already decided to move. Instead, they’re most interested in tools to help them move, and then, the capabilities, and functionality available in .NET. Seeing our low-code demos (ease-of-use) goes down particularly well with customers
This sentiment was echoed by the Taiwan office, who commented that customers are at a point where they are now worried about falling behind their competition, therefore moving to .NET is becoming an accepted ‘next logical step’. And it’s certainly not grudging, people are happy to be moving. They just want help in doing so. We need to keep the migration strategy and message coming through loud and strong, to help keep the barrier to crossing over for customers low
- Differentiate VB from C# for us
A number of customers commented that they initially moved to C# because they were told it was more powerful and flexible (I didn’t get a chance to clarify, but it seemed they were saying the company told them this, yet another way we seemed to have stepped wrong) than VB. With the release of 2005 they’re now learning that VB is powerful and flexible too. This is a GREAT trend, and was very positive feedback. But we need to continue to do this. We especially need a core set of things we can point to and say ‘this is why you want to move to VB’. My, easier syntax, Just My Code, filtered intellisense, these are all good. But we need to build on this even further. There’s still a prevailing attitude that C# can do things we can’t, and that it’s more performant than we are. We’ve got to bang the ‘productivity’ drums really loud, and back it up with demonstrable, differentiated features
Question and answer session
All of the questions we received were written down on paper. However, here’s a shortlist of the questions I got pre-translated, so I could participate actively in the session:
Lowlite of the day
A customer approached me with the picture that had been provided for the printed marketing material, and commented to me that ‘you look just like a fat Bill Gates!’
Highlite of the day
Another customer who I was talking to at the end of the day, was trying to summarize the event, and after some time struggling with what to say, simply said ‘you’re a magician!’, shaking his head, and not knowing what else to say. This made me feel somewhat better.
Day 4 saw my colleague and I flying from Taipei to Manila in the morning, and then 2 focus groups in the afternoon in Manila.
Unfortunately, the trip was cut short very abruptly when our plane to Manila turned around 2/3s of the way to Manila, because a typhoon was ‘attacking’ Manila (‘attacking’ was the term used over the intercom. I had a comic-book like view of what this entailed in my head at the time, with a big swirling many armed beast wreaking havoc). After exploring our options back in Taiwan, it became clear that we wouldn’t be making it Manila this week. This meant our trip ended here ;-(.
In my attempts to learn Chinese, I have learned 5-6 symbols. One is the phrase for ‘exit’ which to me, looks like a cactus, and then a symbol for a moon. My colleague assures me that actually, the symbols are for ‘mountains’ and ‘mouth’ which I’ll have to concede, makes a bit more sense (apparently there IS a symbol for a moon, but it’s a sliver, or a half moon, not a full moon). ‘Mountain’s mouth’, or what I think of as tunnel, seems a fair enough term for exit. ‘Cactus moon’ doesn’t make much sense at all. The best I could reason was ‘Exit, because there are cactuses all over the place and it’s night-time, so you won’t be able to see them’. Not very plausible
I guess I’m not that good at interpreting Chinese: I did try though!
| | | |------|
|---|---| | |
| | | Exit
| | | | |
hello VB team...If ever you can come back to the Philippines, let me know and I'll tour you in our island in Bohol..It's the #1 tourist destination in the Philippines. I am a huge fan of the .NET,..I think, this is the right direction..the right thing to do. Long live .NET...Form always reigns supreme!!!