Emerging Architect Roles

A blog post on Microsoft's Developers Network (MSDN) caught my attention. I found it via InfoQ's article What is an Architect anyway?.

My own post about the topic was titled The architect role in Agile Development and appeared on my company's blog. In it I was saying that there is no need for an architect in an agile team, but it makes sense to have a coach available. Now the members of the Microsoft Architecture Strategy Team propose three different architect roles in their own post:

DiegumZone in Software Architecture: Past, Present and Future:

What is exactly software architecture? Do we really need it? Why have we only recently been discussing it? Is there suddenly a contagious fever about software architecture infecting those who claim to be architects? Who are they actually: gurus, just senior developers, or maybe smooth-talkers?

[...]

Emerging Architect Roles

The considerations of economical changes like globalization and technological achievements like the Internet’s impact on the digital economy, pressed for formalizing software architecture as a discipline.

Although there is not yet a definite agreement in the distinct roles, we can sketch three major personas:

  • Infrastructure Architect. These define the platform and other environments (hardware, basic software) to provide for business applications’ high availability. They must also work with developers to define mechanisms and standards that allow applications to achieve the security, reliability, manageability, transparency, and policy compliance essential to the modern business. It’s expected that the natural evolution of a senior IT professional is an Infrastructure Architect.
  • Solutions Architect. These are responsible for the design of one or more applications or services within an organization, usually within the scope of a division (and for that reason also known as Application Architect). Examples of such applications are: Internet banking, companywide knowledge sharing portal, and distributed point of sales applications. A senior developer is a good candidate to become Solutions Architect.
  • Enterprise Architect. Their job is to keep the business and its IT systems in alignment. They strive to maximize the return on IT investment by making sure that IT spending is prioritized towards business opportunity, and by optimizing the impact of investments across the organization’s portfolios of services, resources, projects, and processes. They must be a bridge between business leaders, development, and operations to ensure that mutual understanding is achieved, goals are realistic, and expectations are properly managed. Enterprise Architecture is about the big picture — how people and technology work together to produce world-class, long-term results. For that reason, this persona is also referred as Strategic Architect. What is expected is that a Solutions Architect or Infrastructure Architect becomes Enterprise Architect.

These job descriptions, essentially that's what it is, sound like calling for another manager role. It awfully sounds like creating unchangeable rules and mandating platforms and technologies from a defined set of vendors. Let's look at these job descriptions in more detail.

Infrastructure Architect.

The proposal calls for a senior IT professional to evolve into an Infrastructure Architect. It doesn't mention a developer who can evolve into that role. So what is an "IT professional"? To me that sounds like someone from the corporate MIS department who has been installing and maintaining desktops, servers and networks with lots of help from the vendors. Those who work in MIS department are smart folks. But in my experience their view is limited to an experienced user's view. They usually don't have time to fully understand networking or operating systems concepts. They have to follow the manual and best practice articles. To me, given that my job is to develop a software, such a senior IT professional would be a great source of input to learn more about the technical difficulties the organization faced in the past. But I would not put such a person in a position to define implementation details for the developers. The risk is too high that in the end it will be a decision pro or contra a certain vendor's platform (e.g. Windows vs. Unix) and not something that can be considered architecture.

Instead it's the job of a developer - we are not talking about programmers who simply implement a specification - to be well versed in questions of security, reliability, manageability, transparency, and policy compliance.

Solutions Architect.

To me the design of applications is not something that a single person might be able to accomplish. Instead it's a process comprised of a dialog with the stakeholders to learn their business, their ideas, and their requirements in combination with a team of experienced developers creating software in iterations and actively proposing solutions. What the Microsoft team writes sounds more like someone who creates Product Requirements Documents, UML diagrams or another kind of formal instructions for the implementers.

Enterprise Architect.

In my opinion that Enterprise Architect simply should be the CTO of the company. A large organization needs someone providing oversight to all the different projects going on. Not to mandate certain technologies or to prefer a certain vendor, but instead to make sure everything that gets deployed can interoperate with each-other. This person should be able to leverage the specialized knowledge of technology consultants without following a single one blindly. His job is to avoid vendor lock-in and silos, but not to limit the use of anything upfront.

Tags :

Re: Silicon Valley is looking to do business in Latin America

This post is in response to a blog comment I received.

Henry Johns in his comment to Silicon Valley is looking to do business in Latin America:
The challenge of getting South and Central America competitive in offshore outsourcing is two fold. Available talent pool, and available talent pool with English language proficiency. It is easy to staff a project team of 50 developers in India. Try doing that in Panama or even Brazil without leveraging English speaking project managers or team leaders with Portuguese speaking developers. Sounds like a plan except many of the developers will not be able to read the project support documents.

The language barrier certainly exists in all places and India has been lucky to have adopted English as an intermediary language even amongst their own citizens. Being fluent in English is definetely their primary competetive advantage. Still I believe it all depends on the type of work to be done and who the clients are.

If the goal is to extend a company's workforce, then the offshore workers need to speak the same language as their onshore colleagues. English helps Indians with the American market. But their advantage diminishes in Europe, as not all and every European speaks English well enough or feels comfortable working in English for that to work out.

I cannot speak for businesses like call centers, help desks, systems support, etc. My topic is software development. Based on experiences with my clients my opinion is teams that were assembled ad-doc by recruiters or other staffing organizations usually don't work well. As in sports a good team needs some time to train together and learn how everybody ticks. Nobody in their right mind would hire a group of guys who have never played together and expect them to win the World Cup. It doesn't matter whether all players are superstars within their respective home teams. Still in software development exactly that is done and then people wonder why it doesn't work and projects fail.

Not everybody on a development team needs to be able to discuss details directly with the customer. But everybody should be listening to what the customer has to say. Not necessarily has this to happen in a classic meeting or conference call in real-time. In my opinion customer feedback is best processed after it has been written down and be read several times regardless whether it's been written in one's mother tongue or a foreign language. And not only is it easier for humans to truly understand the meaning of written text, it can also be machine translated. It's amazing how good Google's English/Spanish machine translation is. I expect it to work even better with more formal content than newspaper articles or blog posts. What is usually missing is a tool that helps the English speaking stakeholders and the Spanish speaking developers to communicate effectively.

My company is working on an agile project management tool called Savila. We are currently investigating how to integrate machine translation for user stories.

Henry Johns adds in his blog comment:

Many countries in Latin America could do the same thing as Microsoft is doing in Canada. Bring in foreign high tech workers to jump start small offshore outsourcing businesses. I get resumes from professionals in India often who want me to sponsor them with an H1b work visa in the U.S. Why not bring them to some place like Panama?

This refers to Microsoft's move to open a development center in the greater Vancouver, Canada, area - just on the other side of the US/Canadian border across from Seattle where Microsoft's headquarters are.

That's certainly an interesting idea. But the language barrier still exists and it is probably even higher. Actually there is a group of Indians teaching computer topics here in Panama. They are employees of the Indian outsourcing and consulting company Tata and their presence is kind of a gift from the Indian government to the government of Panama. All classes are given in English and I have some doubts whether that's entirely useful. For someone without years of speaking a foreign language it's certainly easier to receive the initial training in the language they've grown up with. It's hard to learn two things at the same time and even harder, if thing A is the condition for mastering thing B.

What indeed might make sense is to offer the English speaking Indians a place where it's easier to immigrate to than the US and still be closer to the US than India. Certainly a better idea than to anchor a ship off the coast of California.

Panamanian supermarket: Taking pictures is prohibited

Now this is something new in this country of never ending stories that is called Panama. A supermarket in the capital of the Chiriqui province David posts a sign on the door telling you that it is not allowed to film or take pictures inside the store.

Don Ray in Have Camera - Need Permission To Take Photos:
I have gotten into the habit of carrying my camera everywhere I go. I never know when I am going to see something that is of interest to me. Sometimes I go to a location planning to take photos, such as when I last went to Parque Cervantes, but normally a photo opportunity just occurs. The other day, I went to Super Baru and was greeted by this sign at the entrance door.

It says that you are not permitted to take photos or film inside without permission by the management. To me this is a major annoyance.

Sure. It is their store and they can come up with whatever policy they feel appropriate for their business. After all the store is private property and who owns it sets the rule. There is no doubt about it. So there is nothing to claim about. But still it leads to some thoughts.

What's the motivation of the store's management to do all the effort to post that sign? Are they afraid of the competition checking out their in-store displays or their prices? Do their employees feel threatened by all the new residents who are moving to David and Boquete and wander the streets of their newly chosen home country exploring all the curiosities one can find when new to a place? I don't know that you think about this. Still it's a bit funny - don't you think?

Don Ray goes on to tell on his blog:
Just the other day, I had a reader tell me that they had sent the photos I had taken of the El Rey supermarket to their friends, in the US, so they could see what high quality supermarkets were available in David. El Rey is proud of their store and it shows.

Go figure ...

Update: Looks like Don Ray has more luck taking pictures at a local PC repair shop. The technician shown in his picture is a happy man and proud of his work. Nice.

Tags :

Re: Is the SCM system an agile developers' enemy?

A few days back I was lamenting Is the SCM system an agile developers' enemy?. A reader left a comment to this post saying:

...and in Subversion, you do not know who, if anybody, might also be working on the same file(s) as you, nor can you easily track changes across branches after merges. Both of these things are extremely useful to a huge class of projects, both 'Agile' and not, and Perforce is light years ahead of Subversion here. I agree with you that's Perforce's process of moving files around is annoyingly cumbersome.

So the question basically is whether it's important to know who is editing a file before you can open it. I've used other SCMs before and I remember doing phone calls to other people in order to ask them to check in a specific file so that I can open it for editing.

My point is that software development is something different than working on configuration files or documents. In many cases I agree that it's a useful feature to let only one person at a time make changes. But to a software developer that's not entirely a good thing. Where is the problem that Joe is making chances to method foo() while Jim is doing something to method bar() that are both in the same file? That happens millions of times a day in every project and is completely normal. What's needed to deal with this is not a tool that limits changes, but a tool that makes merging easy.

Joe and Jim should be allowed to make changes all over the place with no restriction at all. That way they can work away and experiment with different designs, which allows them to find the best solution for the problem they are working on. When each of them is done and wants to share the new stuff with the rest of the team, they tell the SCM to compare their changes to the version of the files in the repository. The SCM should show a side by side view of their version of the file and the one stored in the repository. Now it's easy to decide what to move or where conflicts are. If there are conflicts those can be dealt with before the next merge attempt. Have a look at one of the major Java IDEs (IDEA, Eclipse, Netbeans) and you find exactly that kind of merge editor I just described.

Again, there is no need to prevent people from editing the same file in a software development team. Software development is a creative process and whatever limits or restricts creates a boundary for the creativity. The result of imposing limitations by using the wrong tools will be software that looks and feels just like the limitations its creators suffered from. Please read about The Windows Shutdown crapfest to see how such a thing can look like. It should open eyes.

Tags :

Write emails on Apple TV soon?

From my last trip to the US I brought home a brand new Apple TV and connected it to our big screen. It instantly found my WiFi network and started sync'ing to the Mac Mini that was connected to the TV before and now has moved to the home office. The Apple TV fulfills its duties as a big video iPod quite well and my wife loves it to not only watch movies and TV shows we download from iTunes, but also to fill our living room with Salsa rhythms. Sure it's a bit unusual to switch on the big plasma TV when all you want is listen to music. But on the other hand the cover animation used as a screensaver is nice and makes us switch to another track because we remember it by seeing the cover of the album it is on. So all in all the Apple TV is a nice addition and it just works.

Now reading my feeds I came across this:

Alasdair Allan in The Daily ACK: The new iMac:
Want to make a bet that that that refresh for the Apple TV that Steve hinted about during the Q&A yesterday means that you can use this new lap-friendly lightweight keyboard to do a lot more than you used to be able to do with the Apple TV than you can now?

Here is an image comparing the two keyboards:

The prospect of using a wireless keyboard with Apple TV is compelling. Maybe that "video iPod" gets extended to include at the very least Safari to browser web pages on the big screen. Then such a small keyboard and a wireless both would make great sense. Unfortunately the technical specifications for the current Apple TV doesn't list Bluetooth and I doubt a bit that it's already integrated, but deactivated. We'll see ;-)

Tags :

Web businesses targeting Hispanics

It is interesting to see that more and more people are thinking about serving the needs of Spanish speaking people within the U.S. and in Latin America.

François Schiettecatte in GigaOM Introducing, Boston Start-Ups with Hispanito «:
Derely says that the Spanish speaking community is very under served and most of the social networking sites are targeted to English speakers. The popularity of Fotolog, Google’s Orkut and Hi5 in some parts of Latin America indicate that targeted consumer services focused on the Latin American market can become thriving businesses, even though only 20% of Latin America has access to the internet. The internet connections are growing at a rate of 30% a year. At present there is about 8.2 million broadband connections in the Latin America. Derely feels there is a lot of room to grow but it will take 2-3 years to really pan out.

As readers of this blog probably have noticed I live in Panama and run a software development business there. Panama and other Latin American countries have a lot of talent interested in this line of work. And of course there are a lot of potential customers. The only problem I see at the present time is that on one hand people don't have the money to buy a lot of services and when they do they can't pay by credit card. So there is a need for other payment mechanisms and services have to be cheap. Further one should keep in mind that the majority access the Internet from public computers in Internet Cafe's for about 50 cents per 30 minutes.

It will take quite some time to come to the point that a significant number of people - first of all - own a computer and then can afford broadband Internet. For example here in Panama a 256 Kbit/s (yes, it's that slow, but still called broadband) connection costs about USD 25 monthly. For the same price you can have dinner for two at a nice restaurant. To put that even more into perspective: most people earn a monthly salary around USD 600. It really is not that easy to afford a computer with Internet access when you need the money to make ends meet.

The opinion, as expressed in the cited article, that it make take 2-3 years to make a service grow successfully, which means generate enough revenue, might be a bit too optimistic. The amount of disposable money won't come up that fast in Latin America.