Cottleston Pie

Fernando Felman’s thoughts on software development

The journey has begun, or how to become a Solution Architect

Posted by Fernando Felman on July 14, 2010


I’m a developer with lots of experience in the .NET world. I have developed countless of systems for all kinds of scenarios using many different technologies available in the Microsoft solution stack. I want to become a Solution Architect. Can anyone please provide information how to do it?

I’ve seen this question countless of times and it’s usually the same story: you’re a brilliant technical person and now you’ve decided to take the plunge and become a solution architect. Problem is, how do you do it? Where do you start and what do you need to know?

Many times I see people focusing on the technical aspect of the role, suggesting to learn design patterns & principles or maybe a particular architecture type such as SOA. Sometimes, the focus is on the delivery methodology such as Agile or Kanban. I have decided that it’s time to present my view on this matter, which is more holistically and is in alignment to the definition provided by the International Association of Solution Architect (IASA).

It’s no secret that I’m working as a Solution Architect in Unique World, a fantastic workplace with extremely smart people. My view of this topic is really the summary of many years of experience and more recently, the outcome of having a great mentor in Unique World for the last 4 years.

Obviously, before we respond how to become a Solution Architect, we first have to define what exactly a solution architect is. There are heaps of different definitions on the net and probably each architect has his or her own opinion on the matter. I’m no exception, and for me a SA is a person who has all the competencies needed to successfully deliver a solution architecture.

Yes, I know this doesn’t help too much, so let’s break that into what solution architecture entails. A solution architecture of a software project is the blueprints of how, technically, a solution works. It should contain the following aspects:

  • Technology Composition – this is where you define what technologies you’re going to use, e.g. COTS like AD, SharePoint, BizTalk, Office tools, Internet Explorer but also development platform like WCF and WPF.
  • Information Model – this is where you define what information repositories you will have and how information will flow in the system
  • Logical Composition – this is where you define the logical components, including custom development, and how they interact in the system
  • Topology and Environments – this is where you define the service topology (e.g. servers and networks) of your system

Now, in order to successfully deliver a solution architecture, the SA should have a great deal of technical knowledge and be aware of many trends and options available for use. However, that’s not the end of the story. The SA should also possess soft skills and human dynamic skills to successfully communicate with both the business and the technical team, to fully identify concerns and influence-forces affecting the designs.

In essence, the SA must be an absolute brilliant technical person with great communication skills, and have good knowledge of Project Management practices & methodologies. Oh, and obviously, the SA must have perfect abstraction abilities, or else he’s doomed to drawn in the sea of details.

Now that we know what a solution architect is, it’s time to answer how to become one. Well, here the response is much simpler – the aspiring SA needs only to follow the development path created by the IASA , starting from here:

The International Association of Solution Architects (IASA) is the body of knowledge for a SA to align his or her career development with. The IASA identified the skills and competencies a SA should have, and also provide good learning materials and options to get there.

Another place to start looking at the role of an architect is these two articles. Although they are not in perfect alignment of how I see the role of the architect, they do provide a holistic understanding of what is expected from one.

So there you have it. My view of what a solution architect is and what should you do to become one. I would love to hear comments from the community around this topic.

It goes without saying that if you find this information helpful and wish to reuse and /or publish it, please provide the appropriate credit and link back to this page.

Fernando Felman
Solution Architect
Unique World

NB: the response I posted in this thread is the driver for this post.

Posted in Architecture | 12 Comments »

Code Generation, some announcements

Posted by Fernando Felman on March 10, 2009

there has been quite an uproar with code generations lately.

Two interesting announcements caught my attention. First, an announcement was made that the current asp.mvc uses the Visual Studio built-in T4 code generation to drive the scaffolding of the UI. That enables the modification of those templates to meet your unique requirements which is something I always wanted for the Proxy Generation of WCF.

Secondly, the Sculpture project reached version 1.0. This is a very interesting open source project for Model-Driven Development in .NET. In its core, it enables the usage of Molds to support different technologies throughout the range of layers. Here’s a list of Molds available to use in the latest version.

  • Database: SQL Server only
  • Data Access Layer: NHibernate, SubSonic, CSLA and the Data Application Block
  • Service Layer: WCF, Web Services and "just" libraries
  • User Interface, a huge range of molds including Web (ASP and ASP MVC), Windows (Windows forms and WPF) and Silverlight

This is an open source project, and with the notion of molds, I think that there’s huge potential for modifications and improvements, such as adding support for more databases. Definitely worth a closer look, and to start, I’d recommend watching the introduction video.


Code generation is not evil, but it has a risk of going extremely wrong. However, with added support from the development tool (e.g. partial classes) and much better tools out there, I think we ought to take a closer look into what code generations gives us. At the end of the day, if it reduces effort & time, I’ll take it!

Now we only have to see and wait what will Oslo bring to the DDD table with its own capabilities of code generations and extensions… Existing times!

Posted in Uncategorized | 1 Comment »

Understanding performance considerations in SharePoint OM

Posted by Fernando Felman on March 5, 2009

If you haven’t already, go read this article by Andreas Grabner explaining some technical details around the usage of the SharePoint Object Model and their impact on performance. I don’t expect nothing will be of great surprise for experienced MOSS developers, but the clarity in which the information is presented makes it a good source of information for any level professional.

This is also a good opportunity to recommend the hosting site, InfoQ, which has a very good combination of articles, videos and other assets. The site focuses on everything software development: project management, architecture and development. I especially like the e-books and the videos from the QCon sessions (oh, I do hope to be able to attend next year!).

Posted in Moss | 1 Comment »

C# version 4

Posted by Fernando Felman on December 4, 2008

Take a look at this early insight on what’s coming in C# 4.

I really like all of it, but that’s easy for me as I’m happy to see any extension added to the language. Well, as long as it keep the same "feel" of what we’re used to see in C# that it.

So, what we could be seeing from the C# team? A lot!

  • Dynamic Language Runtime (DLR) to enable dynamic lookup (runtime invocation discovery & binding). This feature will enable duck-typing, integration with dynamic languages and a much better COM integration experience. It’s planned to be delivered with an API to support custom bindings which can greatly improve injection scenarios such as IoC and Mockups.
  • Variance and Generalized Constraints support for Generics to enable better inheritance options for generics. The nice thing here is the syntax that is dead simple and self-explanatory.
  • Optional and named arguments. Nice syntax candy.
  • Better COM integration. Many COM-based syntax candies can be delivered based on these new stuff. COM instances can be mapped to dynamic objects, thus enabling support to default methods and properties, and with optional arguments we can have real simple COM integration code. and here’s a good news to all of you Office automation developers – ref will not be required anymore!

While on this topic, it’s also worth noticing another announcement from InfoQ around C# to support code contracts to enable declarative constraints for types. Think of the Validation Application Block from the source code itself.

Posted in C#, Future | Leave a Comment »

The wind of change

Posted by Fernando Felman on December 2, 2008

A fellow colleague mentioned this ultra-cool data centre run by one of the largest ISP in Sweden. How cool is it, you ask? It’s this cool:

Yeah, very cool. But what’s even cooler is that people are finally changing the rather silly perception they have about IT professionals. I mean, will you be surprised to see decorations and non-practical wow-factors added to a museum or a musical hall? No, you’d actually expect it to be so. And why’s that? I think it’s because we have this perception about artists that they’ll appreciate or at least be more tuned to this kind of stuff. IT professionals are usually perceived as pragmatic, "no nonsense" people so why bother adding decorations and other non-practical stuff?

Well, I for one, am very happy this is changing!

Posted in Uncategorized | 2 Comments »

The typealyzer – analysing personality of blogs

Posted by Fernando Felman on December 1, 2008

A fellow blogger mentioned the typealyzer service which auto-analyses personality of authors based on their blog. I ran it over several of my blog-rolls with quite amusing results. Anyhow, here’s what it found for my own:

INTJ – The Scientists

The long-range thinking and individualistic type. They are especially good at looking at almost anything and figuring out a way of improving it – often with a highly creative and imaginative touch. They are intellectually curious and daring, but might be pshysically hesitant to try new things.
The Scientists enjoy theoretical work that allows them to use their strong minds and bold creativity. Since they tend to be so abstract and theoretical in their communication they often have a problem communcating their visions to other people and need to learn patience and use conrete examples. Since they are extremly good at concentrating they often have no trouble working alone.

How about yours?

Posted in Uncategorized | 1 Comment »

SharePoint integration in Visual Studio 10 (and my thoughts around their implied concepts)

Posted by Fernando Felman on November 27, 2008

Visual Studio General Manager, Jason Zander’s, revealed some very interesting announcements around the expected capabilities of Visual Studio 2010 and MOSS at TechEd EMEA 2008. I think this is very much in alignment to an implicit approach Microsoft is shifting to: enabling software development at an architecture and enterprise level, both in more general “tradition” areas but also specifically in SharePoint.

Microsoft launched the Patterns & Practices group for quite a while ago and this group is doing an excellent job enabling architects to develop repeatable-successful solutions using the Microsoft.NET Framework. The group provides reusable artifacts such as the application blocks and design patterns to leverage collective knowledge in order to enable predictable outcomes. In my opinion, this is essential when dealing with enterprise-level applications.

Relying on this managed knowledge means that architects can adhere to successful patterns when handling the overarching concerns of the solutions: we get answers on how to plan for a solution, what products to use, how to provide a build-cycle and what not. And, and this is most important, we are used to this richness of information. We depend on it.

However, when we leave the world of “traditional” technology, RIA, Web Site, Rich Client, Service, etc and we enter the world of Knowledge Management through SharePoint, we suddenly lose out trusty partner. We no longer use application blocks for developing web parts, we do not know how to make our solution testable, and we have to create our own methodology. In essence, we no longer leverage the collective knowledge. Now, you might argue that we have many reusable web parts and heaps of self-proclaimed “best practices” books but almost all of them deal with the technicality of SharePoint solutions, not the bigger picture of solution architecture.

Or at least that was the case in the past. Not so long ago the P&P group released the SharePoint Guidance presumably to bridge that gap, and that’s a good starting. Though I see there are many gaps and holes, especially when you try to bind it with the current Architecture Guide, I think this demonstrates a shift in the approach Microsoft is taking for SharePoint, an approach whose goal is to enable software development at an architecture and enterprise level, especially for SharePoint.

So, going back to the announcements Jason did – I think that these new capabilities in Visual Studio 10 is just another such effort from Microsoft to enable a full software development lifecycle and the VS tool aims to cover the development aspects of it e.g. these capabilities enable multi-members teams working on the same SharePoint solution.

Posted in Architecture, Moss | Leave a Comment »

Unit Testing ShrePoint-Based Solutions Made Easy

Posted by Fernando Felman on November 24, 2008

This is a real candy: Typemock released a mockup solution for SharePoint enabling unit test while removing the SharePoint dependency. Go check it out!

Or using their own word….

Typemock are offering their new product for unit testing SharePoint called Isolator For SharePoint, for a special introduction price. it is the only tool that allows you to unit test SharePoint without a SharePoint server. To learn more click here. The first 50 bloggers who blog this text in their blog and tell us about it, will get a Full Isolator license, Free. for rules and info click here.

I know from my experience unit testing in SharePoint-based solution is a pain so I’ll be difinitely checking it out.

Posted in Moss | Leave a Comment »

Visual Studio extensions for Windows SharePoint Services v1.1

Posted by Fernando Felman on February 12, 2008

Funny, just as I publish the how to install VSeWSS on a workstation, the good guys from Redmond announced the new version. Main changes that I’m keen to investigate: bug fixes and features support. You can download the new version from here which now also comes with a user guide. Just like the previous version, you should install this new extensions on a local SharePoint machine. That is, unless you feel like hacking it.🙂

And while we’re on the subject of MOSS, check out Javed Sikander’s video on OBA Composition Reference Toolkit on Channel 9. I’d really like to see where this thing is going to be in, say, another 2-3 months. I think it really has the potential of bringing forward the biggest advantage of MOSS which, in opinion, is a rich platform for custom collaboration solutions. This toolkit is a huge step towards implementing the concepts I’m used to see from the patterns & practices group to match the SharePoint development world. Very cool.

Posted in Moss, VS2005 | Leave a Comment »

How to install the SharePoint 2007 VS 2005 Extensions on a Workstation

Posted by Fernando Felman on February 11, 2008

SharePoint 2007, or MOSS, is a server product and as such it can only be installed on the Windows Server family platform. I can understand that, it makes sense. What I can’t understand and doesn’t make any sense at all is that I’m not allowed to install the development tools on my new shiny Vista.

The recommendation for MOSS development was always to get a VM to run W2k3 with MOSS and Visual Studio. That’s all fine when you’ve to develop and do cycles of compile-deploy-debug, but what if you want to load an existing web part project with the visual studio installed on your workstation?

If you try to install the Visual Studio 2005 Extensions for Windows SharePoint Services 3.0 Tools (VSeWSS) on a workstation you’d probably fail and get the following error: “This product can only be installed if Windows SharePoint Services 3.0 has been installed first”. So the only thing we’ve to do is to hack the installer into thinking MOSS is installed. How difficult can it be, right?

Before continuing into opening the Regedit tool, be aware that mocking around with the Windows registry is not supported, not recommended and generally considered bad manners.

Now open the regedit and create the following keys and the string value:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0]


That’s it! You have fooled the installer into running on a workstation. Easy. I also recommend adding the core SharePoint assemblies into the CAG using gacutil. Those assemblies can be found by default in any ShaerPoint machine under the folder: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI.

If you’re feeling adventurous enough and want to get the full remote debugging experience, try out this excellent Martin Vollmer’s post.

Posted in .Net v2, Moss, VS2005 | 33 Comments »