The dilemma of the agnostic software architect

We have been spreading a different thinking in our customers advocating that their products needs to be somehow technology agnostic. So what that could possible mean?

A meeting with my customer put forward an important discussion about whether they should build or buy off-the-shelf components to integrate into the new product release which radically change its environment from to web. I mean from Delphi to ASP.NET.

They were conducting their migration process based only in the ASP.NET available functionalities. They’ve shown a research, comparing a past Delphi solution with a possible .net solution. They pointed out a range of off-the-shelf components like ajaxControlToolkit and many others which they wanted to purchase.

Desktop and web solution are different paradigms indeed and demands different kinds solution and methodologies. They didn’t see that all they need would be simply being done at home.

One may think about limitation of the web, and we believe about the wide range solution the web can provide. Take the example of some industry leaders like Amazon.com and Google. Do you really believe they follow Microsoft & Java framework versions and keep using off-the-shelf components extensively? Actually YOU may use what they provide.

I’m not saying that we shouldn’t use off-the-shelf components, there’s nothing wrong with that. We need to balance about its usage. For example, the Enterprise Library Logging Application Block offer many options to log information into the text files, event viewer, e-mail and databases. But my application only needs to write log in the event viewer. Having many options doesn’t limit my application IF IN THE FUTURE I want to change log directions. Future seems so distance, so intangible that it must be preferable write a small components with fewer lines providing same functionality instead of having a monster component with lots functionalities and overhead. (Have you had time to look their code? Probably not but you may want if your product start to perform badly or if you change from one version to another, or if you may want to use MySql instead of the SqlServer!)

At the end, what we always are looking foward is a clean path to quickly deliver value and avoid spending time working bugs out.

Skype Architecture is example of “consider the context”

Skype is a well know software for communication nowadays and uses Postgre database. Also, some of Skype’s employees are huge contributors to Postgre open-source project. They are a very example about keep essential business logic close to the data where it can work most efficiently. But this is balanced against limitations like difficulties with releasing, debugging and unit testing.
Skype Architect Sourav Mazumder in his article “Learnings from Five Years as a Skype Architect” talks about two things I would like to extend.

  1. One fundamental thing about being a system architect is consider about context where to you are in not in the context of your own preferences. Consider to use design patterns is a professional approach but most of time we need to adapt.
  2. His critic about SOA seems to have no fundamental wisdom about the topic. In fact, SOA is not about solving an everyday software engineering problems right the way. The presented example of company which was unsuccessful about adopting SOA, is classical example about wrong project planning. It has to be with communication not distributed computing embraced about services principles and tools. When he says that this fault is architect’s fault I could confirm that he seems someone which is complaining about something they don’t understand well giving examples. SOA could not be raised by a software architect only. Business people should jointly go in as SOA project leader would work with some consultant as facilitator. Again, the right skill and people involvement result in good communication or project failure.

In the end, I recommend to read Sourav Mazumder’s article. There’s a lot of experience to take from Skype Architect.

SaaS 2.0

Software-as-a-Service provides answer to get speed on deployment, usability and payment process. It increase quality of service allowing user to pay as they go. But it is limited in other respects; it would not be able to deliver on the business process which the company really needed, it couldn’t be easily integrated with the existent infra-structure, it hasn’t liability on performance and security which enterprise customers demanded and finally they only have reporting system and not robots analytics to drive those systems.

Adam May claims that Oracle CRM products transcends Software-as-a-Service (SaaS) 1.0 to SaaS 2.0 in this video.

What’s an Architect?

A stranger is traveling down a road on a hot summer day. As he progresses, he comes upon a man working by the side of the road breaking rocks.

“What are you doing?” he asks the man.

The man looks up at him. “I’m breaking rocks. What does it look like I’m doing? Now get out of my way and let me get back to it.”

The stranger continues down the road and soon comes upon a second man breaking rocks in the hot sun. The man is working hard and sweating freely.

“What are you doing?” asks the stranger.

The man looks up and smiles.

“I’m working for a living,” he says. “But it’s hard work. Maybe you have a better job for me?”

The stranger shakes his head and moves on. Pretty soon he comes on a third man breaking rocks. The sun is at its zenith now, the man is straining, and sweat is pouring off him.

“What are you doing?” asks the stranger. The man pauses, takes a drink of water, smiles, and raises his arms to the sky.

“I’m building a cathedral,” he breathes.

The stranger looks at him for a moment and says, “We’re starting a new company. How would you like to be our chief architect?”

If you’re looking to advanced your architecture thinking style and learn how noble you should be, try this book out but remember, what makes you Architecture the beautiful One is what the other says and how it is easier and faster to learn. Not just what you believe!

Amazon Web Services

Other day I was hiring a dedicated server. In doubt about whether choose between windows 2003 standard or web server. I’ve chosen the standard one. It has message queuing system and I needed it so much. Then stumbled at Amazon Web Services – Then I felt myself stupid. They provide Queuing services and worse – at very cheap price.

That comes as lesson… nowadays we can just architect solutions without take into account the new approach of services in the cloud. Amazon Web Services is just a sample which provides a lots of interesting services like Storage (very cheap), scalable mysql server (not that cheap but considerable if you’re really doing business) and many others.

I know there are other service providers which in my point view still needs clarify what services they provide and what cost is going to be at end. I’ve seen some services about cloud computing which always appear to be more expensive than it should. They also miss details which makes me unable to calculate exactly what I going to need.
How I would know how much processor cycles my application is going to need in month? Still not comfortable these days, hope it get better!

Follow

Get every new post delivered to your Inbox.