Blog Home  Sign In RSS 2.0 Atom 1.0 CDF  

  def Softwaremaker() :
         return "William Tay", "<Challenging Conventions />"

  knownType_Serialize, about = Softwaremaker()
 

 Wednesday, September 27, 2006

Red Pill   openquotes.png ... Life is really about moving on.closequotes.png - Oprah Winfrey

Well, what else can I say ? After going through rounds of remote and local interviews conducted by the MSFT Corp product teams as well as the Microsoft subsidiaries and field offices in Asia Pacific for various opportunities and roles in the past year and going through my very own intensive decision-making process (Yes, I have my own methodologies with Spreadsheets and CheckBoxes), I have made a decision.

It wasnt at all easy as some of those packages looked really really good and attractive, especially those that require me to uproot me and my family and relocate. It seems the theme is - The further I relocate, the better the package. But I have to look past the bows and the ribbons and see what is at the bottom of the box.

In the end, I decided to stay home and be with the home team for now. One of the key motivations is that I really have to cut down on my travelling. (which also explains why I cannot be here) While the roles differ a fair bit, I sat down and looked at what I was doing and where I wanted to go. I have been near the front-line for some time (as evident by my post here) but I wasnt measured by front-line numbers. As I sat down comfortably in my seat for some time, I realized I wasnt being challenged enough. I need to learn new skills. I have achieved a lot with my technical ones and there is no doubt that I left a rich legacy behind. This is evident by the emails, requests and engagements I frequently get from Microsoft's customers as well as the Microsoft field offices in APAC (see the evidence of presentations, articles, engagements I have over the past years).

However, the desire to learn new skills is strong. So what if I can architect, design, code, build and configure ? - but Can I sell ? Can I pitch ? Can I talk to CXOs where and when it matters ? What good is a great software if you cannot convince people to buy and use it. I keep asking myself this all the time. Business issues and dynamics always interest me. New skills and new challenges in new environments always intrigued me. I always believe it is the mark of a great person to see how well he adapts to changes and not by the number of lines he can code in a single minute.

I decided it is time to put my money where my mouth is. I need hard numbers and I need to be measured by it. I need more technical breadth and I need to learn new business skills. I wanted more time to pursue and learn other technical interests such as Speech Recognition, Location-Based Services, GPS and other Mobile Technologies, Grid/Mesh/P2P Computing, etc and then learn how to pitch them to businesses. Sure, I will miss those technical and evangelistic activities I have been known for in my area of Web Services and related architectures, but I am sure I will build new foundations again and blaze out new trails. And I am also sure all the communities locally and regionally I was helping grow (as a Microsoft Regional Director and Microsoft MVP) has grown and more importantly, more than apt to carry on by itself. All the mechanisms have been put in place and the torches have been passed to very capable hands who can do a lot better job than how I did.

This blog stays and I will still be blogging about technicalities of software, products, etc. I will still carry on some of my previous activities - albeit of a different depth but more breadth, so look out for new blogging categories. I sure will miss what I have been doing for the past 5 years but isnt that what moving on is all about ?

Tuesday, September 26, 2006 10:36:59 PM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer  Comments [8]
  • Blog reactions

  •  Tuesday, September 26, 2006

    Some people are still questioning my thoughts about what's so good about GUI, WCF and such.

    Take a look at http://firstlook.nytimes.com/ and see what I mean. This NY Times Reader appears to be the best Windows Presentation Foundation (WPF) app to hit the streets. As iterated by Scott here, it was first available to @nytimes.com and @microsoft.com users and now it is available to all.

    It adapts well to your device and screen resolution and I think Scott pretty much sums it up in his post.

    Sex Visual sells, the more erotic exciting, the better. It is not a debatable statement. In the conferences I have been in, audiences will find a visually-appealing demo much more engaging than one that sells plumbings and gnarly XSD'isms. No, I am not saying one is a better technology than the other. What I am saying is that - Eye candy engages - and that, to me, is half the battle won.

    Most people still dont know and dont want to know what goes at the server-end side of things and all those messy EAI, ESB, AIX, HL7 blah blah adapters, protocols and such and they shouldnt. I am betting that SOAP will become as obscure as TCP/IP one day and that SOAP talks will disappear from mainstream technology conference agendas one day. Have you ever seen talks on HTML or TCP/IP these days ?

    While people will wow at the new programming model of Windows Communication Foundation (WCF, previously - Indigo) and the wonderful separation of technical impediments from business contracts and logic (my demo of Reliable-Messaging in WCF usually drives this point home when I changed the bindings from Http to Tcp to MSMQ without touching a single line of code), the audience will instantly applaud the first vector-graphics, 3D Animation WPF application they see. And they could easily do the most complicated GUI very easily with mimimal .NET code.

    To showcase a wonderful WCF application and what transcends underneath the hood and what goes onto the wire, you would still need a good GUI application to show the listeners, dispatchers, plumbings at work. In many cases, you would want to use WPF to enable that for full effects. (Hey, since they have downloaded the .NET 3.0 runtime, you might as well make the best mileage out if it and use all its components, right ?)

    Well, it looks like my friends VittorioB and CraigM has already gone on that path with their amazing WCF Live Service Trace Viewer. Yes - there is a WPF component in there as well.

    Tuesday, September 26, 2006 12:41:41 AM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer  Comments [0]
  • Blog reactions

  •  Sunday, September 24, 2006

    In reference to my post here, plus my very early post here, I have always try NOT to be drawn in all the hype, fluff and marketing innuendos designed to drive FUD and irrationality.

    I try to focus on what users really want and that really is all that matters.

    Coincidenally, bu showed me this Foxtrot comic strip today and it looks like Bill Amend has also echoed my exact thoughts.

    Foxtrot and Web 2.0

    Sunday, September 24, 2006 12:43:42 PM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer  Comments [0]
  • Blog reactions

  • I remembered speaking to some people during an architectural review as well as during a "Meet the Experts" Lounge in the just-recently concluded Microsoft TechED Asia 2006 in Malaysia and I made the comment where I said something to this effect:

    openquotes.pngIf I had to re-live my career for the last 3 years with the hindsight of today's technologies, I would NOT have chosen to go down the server technology route with MTS, COM+, WS-*, Web Services Enhancements (WSE), Windows Communication Foundation (WCF, previously - Indigo), I would have chosen GUI and focus on client-side technologies with the benefit of knowing what Windows Presentation Foundation (WPF) could bring ...closequotes.png

    Some people asked me what I really meant what I said. I do ... and ... apparently, David Chappell has the same thoughts as me as well.

    Sunday, September 24, 2006 10:14:39 AM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer  Comments [4]
  • Blog reactions

  •  Wednesday, September 20, 2006

    WTF ? Marketing

    W T F ?

    I spotted this advertisement across many major lamposts outlining the major roads to the WorldBank/IMF Bankers and Governors meeting held in Singapore this month.

    While the entire country prepares itself to welcome about 22,000 delegates with security precautions, road closures, road re-paving and tons of marketing dollars and campaigns to showcase itself to the world such as this, I felt that the poster above is done in an amateurish way.

    One glance at it and I bet my last dollar the instinctive reaction is that Savvy Bankers use Intellectual Property. While I agree with the context and meaning of the message, I would question how its targetted.

    In any case, I, and the rest of the world, would be wrong. A closer look at the icon on the bottom right corner reveals a Cisco, Inc logo:

    which effectively means, Savvy Bankers use Internet Protocol !?!? That would explain why there portray of an image of a person trying to surf (wirelessly). I would suspect that Cisco, itself, is supplying the networking equipment and infrastructure to make sure anyone and everyone can surf wirelessly around the meetings and events.

    That, however, would not explain the obscurity of the advertisment and its message. Gosh, I would think TCP/IP is an obscure abstract now that no one else would need to know of it even though it is the major underlying internet transport protocol.

    In fact, I would argue - the more savvy you are, the less you need to know about about the plumbings. How many people would (want to) know how their household plumbings work and the standards involved other than that they can turn on the tap and do wonderful things with it ?

    In the same context, I am betting that the SOAP protocol would be obscure one day as well and just be known as "Web Services" or whatever flavour rule the day.

    Now, which would be a better advertisment ?

    Great agile applications use SOAP ?

    OR

    Great agile applications use Web Services ?

    I rest my case - the marketing people who came out with the image shown above should be canned. No questions needed.

    Wednesday, September 20, 2006 7:14:30 AM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer  Comments [1]
  • Blog reactions

  • OMG - Spare me. You have got to be kidding ... Lets just move on.

    Wednesday, September 20, 2006 6:44:52 AM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer  Comments [0]
  • Blog reactions

  •  Monday, September 18, 2006

    One of the things in my job that I have been doing and enjoy doing is engaging the customers. Over the past few years, I have learnt from my mistakes and have seen people fall into serious pitfalls that have caused deals (and sometimes, fortunes) to be lost.

    While this may be specific to technology applications and platforms, it can be applied horizontally cross-breadth. I hope I have time to make this a useful series to help the readers. Here is one:

    --- Begin Exchange ---

    When the customer CIO asked a presenter (of the bidding companies): openquotes.png What platform would you go on ?closequotes.png

    You should never answer: openquotes.png We can do both. closequotes.png

    Worst, if the CIO repeats his questions again: openquotes.png Let me ask again, what platform would you go on ? closequotes.png

    You should NEVER NEVER NEVER answer again: openquotes.png We can do both. closequotes.png

    --- End Exchange ---

    Bear this quote in mind first and I will address how it fits in this entire context:

    Gordon Gekko: openquotes.png You stop sending me information, and you start getting me some. closequotes.png 

    Why ?

    • Listen and Think. Dont just hear and read from a pre-arranged script. By answering the same to his repeated questions tells him you think he is deaf. He is NOT. You are. Brain-deaf, that is. If I was too crude, let me put it in a nicer way. You are hearing, but you are NOT listening. If the same customer CIO or his equivalent in the committee has also asked: "What is the ratio of XXX projects to YYY projects your company has done ?" It is very obvious he is asking for an answer and not a level of indirection.

     

    • Know how the customer thinks, works and is measured. I refuse to believe that a customer CIO has no idea how the world outside functions. He may have no idea how it functions internally, but thats not the point. When he budgets for a project worth xx millions, he knows, pretty much in his head, what he wants as the end-goal. He just cannot put it down in voice and ink so as to play the political battles well and not to offend other people. What he is seeking for is - VALIDATION. That an outside external party thinks the same. The fact that he is there and you are down here means he is smarter, not necessarily capable. Ultimately, see what is at stake. If a project fails because of the wrong use of technology, his job and his pay is on the line and that is probably 3x more than yours. He knows. He just wants someone to sing the same. Do so.

    As an example, I am arguing the customer already has 3 technologies or solutions in mind already before he approaches a public tender proposal situation. He doesnt have none. If he does, the worst thing you can do is assume that. Remember, the product and platform vendors have more resources and more time than you to camp at their site with their marketing agents and lovely legs. Many people dont realize that - Things have already been sold, just not in ink. So when you say, you can do both. Even though it is deemed to be more professional, you are giving away a few things

        1. You are no idea how they work and what is the current state. In other words, you have no intelligence.
        2. You didnt put an effort to discover what is going on in their current environment and the current battles they have. The fact that they are asking for a solution means they have a problem. Find out what that intrinsic problem is.
        3. You cannot make a bet and take that risk. He is, by granting you a project which he is paying millions for. Surely, you can ride that and show him you are taking the same risk as well ?

     

    • Intelligence, Intelligence, Intelligence. Surely, the account manager, whom the team is supporting must be worth the commission he is paid. Gather the topology, the current state, the internal political battles. Who is the customer CIO sucking up to ? Who is buying the customer CIO the expensive red-wine bottle sitting in his office wine-cellar ? Which favourite prodigal son of the IT department is the customer CIO favourites with and what is he/she complaining out ? Find this out. It is likely, you can piece a good internal scenario, which the customer has to deal with in his daily work, your lesser competitors have no clue about.

     

    • Go BIG or go home. For goodness sake, take a bet. We do that, every single day in everything we do and the choices and decisions we make. Why cant you do so in front of the customer ? When a customer CIO, not just another IT person, asked you the question above. Like I said, he is seeking validation from a 3rd party.

    While it may be necessary to sing your corporate tune, remember - you are not presenting to your own CIO. It is the customer we are talking about here. If a customer has got a big flashing "We are an XXX shop" in front of their door, you should sing an XXX tune. However, like I said in Point [2], the CIO is not measured by how much he contributes to XXX revenue. He is measured by the ROI of the millions he is spending on this project and you. So, if you say: "We go with YYY", it is likely he will stop staring blankly at his handphone and his ears will perk up and listen.

    Now, if he is anti-YYY because his mother has just slapped him because a stupid YYY patch failed to make it to her PC in time and therefore has lost all her fav bookmarks. Out of professionalism in front of the entire steering committee, he wont stop you and ask you to get out. But you would have gotten his attention when said those magic words. Getting his attention, out of the hundreds of meetings and other solution tender presentations he has to attend that day, is half the battle won.

    Now if are worth the salt your company is paying you, you would address his concerns and answer them methodically. (Excuse me, but arent you an architect/consultant ?). Most importantly, stand up and be counted for. If you have done Point [3], rationalize your decisions to him and justify why you choose YYY. To take a technology-neutral stand, something like that will always be music to a customer's ears:

    You: openquotes.png We choose to go with YYY's engines for this project because we understand that [repeat what your intelligence has gathered for you in this account. Remember to make sure that your solution justifies what your intelligence has gathered or you are screwed ... ].

    However, we also understand some of the public/users/your concerns with YYY's engines such as the skillsets of your mechanics may be that of XXX's as we noticed that there is a recent M&A of your parent company with an unit of XXX. So if you should decide that XXX is what you want, be very rest assured that our company has the same kind of XXX calibre people as YYY ones. Let me share you what projects we have done with regards to the XXX engines ... closequotes.png

    He may not buy them in the end. But I assure you, he will respect you and your company for standing up for what you believe in and for taking a bet, which he is also doing.

    • Think the bigger picture. Dont miss the forest for the trees. So, what if you lose this deal because you stuck YYY in your mouth ? Likelihood is that, you will also lose this if you had said: "We can do both". If you had said the quotes I mentioned above: "We choose to go with YYY's engines for this project because we understand that ... However we also understand some of the public/users/your concerns with YYY's ..." and still lost, it is obvious that the customer is looking for someone who worships XXX as much as he does. Too bad. Move on.

    If you had not failed your maths in school and understood the theories of Probability, you will understand that, in the long run, you will stand an equal chance of winning YYY solution tenders as much as losing the XXX ones. If you dont make a bet, you will never lose or win, in the run.

    To summarize and I quote one of my favourite fictional movie characters, Gordon Gekko, of Wall Street:

    Gordon Gekko: openquotes.png You stop sending me information, and you start getting me some. closequotes.png 

    Remember, the customer CIO is not asking you for information. He probably knows more than you since he has the benefit of all the application, product or technology vendors camping at his office and singing to him everyday. Validate him, Sing his tunes, even better - tell him something he doesnt know yet. For example, we have reasons to believe that XXX may not be suitable because ...

    He will appreciate that. Even, if you UN-validate his thoughts, Trust me (I have learnt), it is likely he will remember you for future references. By adopting a passive ground and not answering and worst, not listening to his questions and concerns, it is likely he will continue looking at his handphone, hoping someone will call and save him and you will be nothing more than a distant memory in his head.

    Monday, September 18, 2006 5:50:21 AM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer  Comments [1]
  • Blog reactions

  •  Thursday, September 14, 2006

    I dont think the world has seen so much emphasis on a feature of product even before pre-launched. In this context, I am talking about Windows Workflow Foundation (WF) and the emphasis on a non-feature, actually - that it is a non-product and it doesnt come with batteries host included.

    Windows Workflow consists of an activity library and a framework, a runtime engine, and a runtime services components. Most of these will work out-of-the-box and some of them comes with extensibility mechanisms which you can further enhance or customize on.

    All of those must run within a host application process - which you have to build.

    In other words, Windows Workflow is just a framework with managed APIs and not a designed as a product. It would be a lot of work to build your own host, which is why I wouldnt recommend it. You can implement workflows in existing hosts such as IIS6 or a Windows NT Service or soon-to-be-shipped - WAS in IIS7.

    That said, if you want ready hosts of domain-specific workflows with user-customizability, you can always look at Windows Sharepoint Services v3.0. I believe BizTalk 2008 will be a host for Windows Workflows when it ships as well.

    Anyways, one of the key points that confuse many developers is how workflow instances are scheduled by the workflow runtime engine. There are 2 ways - via a Synchronous and an Asynchronous approach. Both of them are implemented via the ManualWorkflowSchedulerService and DefaultWorkflowSchedulerService respectively.

    Obviously, if you dont tinker with the WorkflowRuntime with regards to the Scheduling Services, it will use the DefaultWorkflowSchedulerService service. It creates and manages the threads that run workflow instances in an asynchronous manner on the runtime engine and it supports multiple workflow instances queued in the runtime thread pool. In other words, this default scheduler will automatically queue the workflow to run on a thread from the process-wide CLR thread pool. With this default setting on the WorkflowRuntime, the workflow will always execute asynchronously on a different background thread which, in turn, explains why so many of the SDK samples waits for the workflow to fi