May 2006 - Posts

Continuing this thought, one of the more interesting answers that came up at teh TechEd Architecture panel by Guy Ron is that the Software Factories initiative is most likely to fail from the evidence thus far. He mentioned a big project for the healthcare industry (HL7 Software Factory) and how, even today, a long time after it started, it still has not finished. Microsoft was trying to build (with third parties) the full object model of the HL7 so that applications can be built against it.

For now, it has proved too complicated to come up with such generic components to be reused in “factory floor” applications, which may be a testament to upcoming difficulties that the software industry will face when trying to get on board with this methodology.

Guy mentioned that it may prove useful for only smaller scale projects and domain (like UI) and not for “real world” domains.

That’s an interesting thought that I had not considered and I can certainly see the logic behind it. Personally, I’m not sure about Factories. I think they are a step, some step, forward. We’ve only been doing this for a few decades. We have a lot to learn. Software is still a craftsmanship, and not a manufactured product. How do we move to that
Posted by Royo | with no comments

Q: Software Factories and UML

Has Microsoft Abandoned UML?

Is the Domain Specific Language path so different than UML?

Can they be combined?

 

From what I’ve seen so far, and from talks I had with various people (including Steve Cook, from the original UML Team, now at Microsoft), Microsoft have sort of “adapted” an easy to use and understand version of the UML. They took the basic idea of shapes and arrows and made it work on the level of a specific domain which is in turn used in a Software Factory.

Most people I know have done *some* UML, but most only know how to use maybe 3 or 4 types of UML Diagrams, let alone using UML Protoypes and such stuff. The main problem people face with UML is that using it to draw shapes, it then makes you give *specific meaning* to those shapes in your own domain using prototypes.

Instead of using proptypes on the UML (which are very time consuming) Microsoft has taken some of the simplest ideas and made them part of the tooling strategy. So when you draw a shape, you’re actually drawing some sort of *real* entity in your domain. You can then manipulate it and use it to build real code, and it (should) reflects changes in the real code.

The notion of a software factory is, to me, taking the UML shapes and giving them real meaning inside the tools. Not only that, to be able to create meaningful shapes for specific projects easily.

 

I still use UML to a degree – whenever I draw shapes on the whiteboard I draw UML. Whenever I want to make some interaction clear I draw some sort of interaction diagram. But that’s basically it. IN projects where you are forced to write so much documentation and use cases using UML it usually turns out to be a very complicated set of design docs that developers have trouble reading. When they finally get to reading the whole thing its usually way out of date anyway and one has to talk to the man who actually wrote the thing. See? *Communication* always wins.

Instead, what I try to do is have less documentation (butt enough to get things going) which can help start good conversations with the designer/architect in that project. In an XP project that’s could be the team lead.

 

So, in short – UML is too complicated, most people don’t know even half of it. Microsoft tries to make it simpler and more usable in the real world of its tools.

Posted by Royo | 3 comment(s)
   

On the first day of Tech-Ed, on the assembly Talk (the one that takes two and a half hours), Steven Sinofsky, the new manager of the windows division, went up on the podium to talk. He was on after a couple of short films (whihc were funny) and a short introduction from Lior Tzoref (the official teched blogger who won't take comments). There was magic in the air as 3 thousand people watch Steve go up onto the podium to talk about his vision for a better windows.

This was the main assembly at the conference. Surely there were going to be some amazing demos of Windows Vista, XBox, or anything else that has the word "cool" as an alias these days.

 

Then Steve said something like "I'm pretty much new to Windows division, but I'm coming from Office, which I know much about". Silence.  I got the weird feeling that this talk was not going to be as great as I'd hoped.

 

Then Steve said something like "so let's talk about the new XML features in Office Server intropdkj standradslsdfjnsdfsc...". That was not a typo. There was so much noise in the great big tent where we were sitting that I couldn't hear what he was saying. People were moving their chairs backwards and started leaving the tent.

 

It was awful. From a full tent of 3000 folks, probably less than 1,000 stayed on to hear Steve Talk. I was not one of them - I left with a good excuse. I had a talk coming up later that day that I wanted to get ready for, and this was simply a big waste of time.  

 

So why did people leave?

  • The Israeli Crowd is a big mess of impolite rude people who don't have an ounce of patience to hear something they are not interested in. That said - their actions have reflected the awful truth - this was a very bad judgment call on Steve's part.
  • You *don't*, you just don't, talk about Office and XML features in a main Assembly of TechEd, where "cool" is supposed to be uttered every 3-4 minutes by the attendees.
  • You don't let people out during the main assembly.
  • You don't save the Vista demos for the end of a 2.5 hour talk.
  • You get more videos and "cool" stuff going.
  • You make sure there is good wireless reception in the tent, so that people will at least check their emails instead of leaving searching for a hotspot.
  • You expect a crowd of people, many of who are not that technical after all, to sit and listen to a talk about XML and office while there is a pool, hotspots and beautiful girls outside the tent?

 

For once, I agreed with the crowd and went on my way. Even so, that's 30 minutes out of my life I'll never get back.

Posted by Royo | 2 comment(s)
Oh.My.God.
What a great experience this Tech-Ed Israel has been!
My Session about Deep Reflection went very well, if I do say so myself. It felt smooth ,and the only thing I'd change is that I'd take less questions from the audience next time.
 
First, here are the slides and demos for this talk that you can download and play with.
Here are resource links from the talk:
 
It's funny how, in this 400 level session, a guy came up to me right after the talk finished and said something like "you didn't explain what Reflection was". After explaining to him that my session was meant for people who already know some reflection (as I mentioned at the beginning of my talk) he said "OK, so you can tell me in a sentence what Reflection is?". I did. And he said "Great talk" and left.
I'm not sure if he was just polite, but it was a weird experience after all.
 
My talk finished with a sentence my wife actually came up with (ain't it fun when you wife is a developer too??!!) which goes something like
 
"We are standing here in Eilat, where the mountains Reflect beautifully on the water during sunrise and sunset. The next time you witness a beautiful, romantic sunset, I want you to think about Reflection, And me."
 
It certainly left an impression, and seems to be just about the only thing people remember from that talk ;)
 
In any case, if you were in my talk, I'd *love* to hear your comments (good or bad!) about it so that I can either feel good about it, or get better for next time.
 
Posted by Royo | 1 comment(s)
Here's what you look like to your parents when you explain to them why your new laptop was worth $2,500:
 
I swear, it's sad as it is funny.
Posted by Royo | with no comments
"PowerShell" ?What a stupid name for a product known as "Monad"! Sounds like one of the things I'd download at TuCows for $15, doesn't it?
Posted by Royo | 2 comment(s)
Scott is so totally wrong - it hurts to read. He thinks  FAR and xplorer2 are the best explorer replacements ever, but personally I think once he tries Total Commander, he'll never go back (the UI looks like an oldie, but it has more features than both combined, methinks)
 
Oh, and have I mentioned how much I like Larkware yet? I like it a lot! Unfortunately, I haven't had enough time lately to check it out, so here's a collection of links posted there in the last month or so, which I find interesting:
  • cl1p.net - Make up your own URL, paste in data, go to another machine, visit the URL, copy the data back. An easy way to use HTTP to transport data between computers.
  • csUnit 2.1.1 BETA - This unit-testing tool for .NET now supports .NET 2.0 and Visual Studio 2005.
  • Automise - VSoft has released their general-purpose automation utility, with a GUI based on the fantastic FinalBuilder. You can download a 30-day eval copy here, or license it starting at $195
In other news
  • NUnit 2.2.5 Released
    This is an update to the recent 2.2.4 release, the first new production release of NUnit in over a year. See this blog entry for a summary of features and links to the release
  • Ohad keeps making his Beat-Box Demo cooler and cooler.It's for Tech-Ed Israel and demonstrates creating a beat mixing application that uses EntLib for all it's backend stuff.  I saw this live and this is indeed a demo for the books. In fact, he should distribute it after Tech-Ed Israel with source, because this is one cool demo!
That's it. Nothing else interesting happening out there for us .NET techies.
Really. I swear.
Posted by Royo | 2 comment(s)