May 2007 - Posts
In the article, A Profile of Don Ferguson
, in the Microsoft Architecture Journal
was featured the month before).
When asked what makes a good software architect:
Firstly, at IBM we had an architect board in the Software Group, which helped me form a network. It took me a while to understand the importance of a network. Being a New Englander, I tend to be a little taciturn and by myself. You should never underestimate the importance of a social network. You don't know what you don't know. You don't know what someone may say to you that can push the reset button in your brain and make you think differently.
Secondly, as a software architect, never stop coding. I write code. It's not good or particularly deep code, but I do code. A lot of it is educational and related to my spare-time activities. For example, recently, I've been working on a portal that connects my family using TikiWiki and PHP. I installed the products, but they didn't work for me right out of the box. So, I had to go in and hack them. It was cool. Another example is the nursery school that my daughter attends. They asked me to set up a Web site using [Microsoft] FrontPage, which was another learning experience.
Thirdly, communication skills matter. They really do. It's really important to understand how to write well and how to present well.
Finally, the most important thing is to connect with customers. Spend as much time as possible with them. Learn what they are trying to do, and look at what works and what doesn't. Help them use your products. There's no substitute for spending time with customers and helping them solve problems. Doing this, we often learned that customers used things in ways that we never dreamed they would. We also came up with amazing new ideas.
On a similar note, What Does a Microsoft Program Manager really do? blog post by Farshid Sedghi has some really good points. Chris Sells did a similar set of postings on being a PM.
- Confidence - includes knowing your stuff inside out
- Impact and Influence - If you can't have any impact and influence in the work, it probably is a good sign that you are not a good fit for the job or your position should not exist.
- Cross-group collaboration - Whether you like it or not sooner or later everybody here has to do some of this and you better be good at it.
- Interpersonal awareness
- Be smart and get things done - Also goes without saying.
101 LINQ Samples
... for future reference.
This annoucement by Microsoft and leading telecoms companies
recently to better integrate the hardware phone devices
with the desktop software space looks set to push things forward.
Most companies already have Voice Over IP (VOIP), Computer Telephony Integration (CTI) and use of conference calls for global team working and integration of address books from the PC to the phone is great.
“Today’s office phone is marooned on an island, separate from the rest of the
communications tools that information workers rely on to do their jobs,” said
Jeff Raikes, president of the Microsoft Business Division. “By weaving the
business phone together with e-mail, instant messaging, presence, conferencing
and the productivity software people use most, we are putting voice
communications back into business.”
The UI on the phones makes more sense than alot of devices I've used in the past.
I think presence should be thought of separately from instant messaging alot more, embedding it into line-of-business applications where user context\communication might be required. This can be done by leveraging the Office Communication Server SDK\APIs
The upcoming release of Microsoft Office Communication Server 2007
(rewrite of Placeware) looks set to incorporate 360 degree video conferencing using hardware developed by Microsoft Research.
But the level of complexity in libraries like dojo
and Microsoft ASP.NET AJAX
can be a huge learning difference.
So this article in MSDN Magazine, Create Advanced Web Applications with Object-Orientated Techniques
, is a great read.
, which has good tips around closures and memory leaks towards the end.
Aside from the Silverlight announcements which seem to have stolen the show so far at Mix07.
A couple of other interesting pieces to watch, codename: Astoria:
The goal of Microsoft Codename Astoria is to enable applications to expose data as a data service that can be consumed by web clients within a corporate network and across the internet. The data service is reachable over HTTP, and URIs are used to identify the various pieces of information available through the service. Interactions with the data service happens in terms of HTTP verbs such as GET, POST, PUT and DELETE, and the data exchanged in those interactions is represented in simple formats such as XML and JSON.
And codename: Jasper:
Project Jasper is geared towards iterative and agile development. You can start interacting with the data in your database without having to create mapping files or define classes. You can build user interfaces by naming controls according to your model without worrying about binding code. Project Jasper is also extensible, allowing you to provide your own business logic and class model. Since Project Jasper is built on top of the ADO.NET Entity Framework, it supports rich queries and complex mapping.
I'm finding the what's being released when and with what ship vehile is getting confusing/complicated, with .NET 3.5, C# 3.0, Visual Studio Orca beta 1, ADO.NET EF, Linq, etc. and I'm not the only one.