Thursday, June 24, 2010
Using Team Foundation Server 2010 from Visual Studio 2005 and 2008
Tuesday, February 23, 2010
The endless debate on "what is an architect"
The discussion started with the following comment:
This is what is killing Enterprise Architecture…
Quote from "John Zachman" article..;-)
This is what is killing Enterprise Architecture… every computer programmer, systems designer, software architect, solutions architect, technology architect, computer operator, PC owner, data architect, database architect, network architect, business analyst, systems analyst, enterprise architect, service architect, object architect, project manager and CIO calls whatever they want to or maybe, whatever they are doing, “Architecture.” It is chaos. No wonder we don’t have Enterprises that are coherent, integrated, flexible, dynamic, interoperable, reusable, aligned, lean and mean and working.
And I thought I'd add my bit as well.....
I love this discussion, if only because it goes round in circles so much. Getting back to the original point though:
"....calls whatever they want to or maybe, whatever they are doing, “Architecture.”"
This gets to the nub of the problem. Quite simply, you are an architect if the role you perform is "architecture". However, people do indeed hijack the term to make their own role sound better. We cannot rely on some higher authority to define for us what an architect is and then impose a set of criteria to test against. Instead it is incumbent upon all of us who consider ourselves to be architects to explain what architecture involves and if we suspect others of "job title inflation" we should ask what they have done that qualifies as architecture.
As a marker, I think there are some fundamental aspects of architecture that we should be able to agree on:
* Architecture is a high-level design activity. The output of architecture is a design of some sort, although this can vary enormously in the level of abstraction. Architecture is the synthesis of a design that satisfies a set of requirements.
* A secondary activity of an architect is communication of the design and the supervision of the detailed design and implementation to ensure that the design intent has been captured.
* Another secondary activity of an architect is to communicate to those creating requirements what the impact of their requirements will be on the design and to advise on improvements.
Someone whose primary role is development / implementation / operations is not therefore an architect. I think "enterprise" architecture vs other types of architecture is a red herring in this regard. These are all valid disciplines - there are indeed "data architects", there are indeed "infrastructure architects" and there are indeed "enterprise architects". The key thing is that in each case the primary goal of their activity is design.
You've got to love it. I haven't seen a more circular debate since the old artists vs scientists one that you have at university!
Thursday, January 07, 2010
User-Defined Functions for Today and Tomorrow in SQL
Wednesday, December 09, 2009
Note to Self: MQSeries
Initialization of resource 'amqmsrvn' failed, rc=0x8000401a
The server process could not be started because the configured identity is incorrect. Check the username and password.
exitvalue = -4
Thursday, November 05, 2009
Use of generic types in BizTalk and XLANG/s
namespace AndrewGenerics.Components
{
[Serializable]
public class OrchestrationInstanceHelper<T>
{
public void UpdateInstance(T objectInstance)
{
// Some code in here
}
}
}
namespace AndrewGenerics.Components
{
public static class OrchestrationHelper
{
// Note that this uses the collection type
public static void UpdateItemsInCollection(MyClassCollection collection)
{
// Some code in here
}
// Note that this uses the generic type
public static void UpdateItemsInCollection2(IEnumerable<MyClass> collection)
{
// Some code in here }
}
}
public static IEnumerable<MyClass> GetCollection()
{
Collection<MyClass> coll = new Collection<MyClass>();
coll.Add(new MyClass());
return coll;
}
myCollection = (AndrewGenerics.Components.MyClassCollection)AndrewGenerics.Components.OrchestrationHelper.GetCollection();
- You cannot declare generic type in an orchestration because you can only select types in the type picker. If you select a generic interface that does not have the type assigned you get some crazy errors.
- In order to use a generic type you can create a class that implements the generic type. This will then be usable by BizTalk.
- When a helper component uses generic types in the interface the types get baked into the interface and can be used by BizTalk.






