Does culture matter in outsourcing deals?

In a recent article in Outsource Magazine (http://www.outsourcemagazine.co.uk/articles/item/4051-secret-agreements-on-culture-), Brandi Moore contested the ability of integrating outsourcing with local teams without ‘talking about the cultural differences’ and trying to find solutions.
Esteban Herrera, COO of Horse For Sources Research, rebutted with this article http://www.horsesforsources.com/brandi-esteban.

Reading through both articles one may notice that both agree finally that cultural differences are important in an outsourcing agreement. It’s just that Mrs Moore advocated that most outsourcing providers do not pay attention to it, while Mr Herrera insisted that this is not the case – at least anymore!

Allow me to add here that training (at least 3 weeks preached Mr Herrera) is not something that changes the culture of a person! It helps him understand other cultures, but acquiring a new culture is a life-long experience!
Ancient Greek philosophers defined ‘Greek‘ as ‘anyone having taken part in the Greek education (παιδεία)‘ which is a lot more than a few weeks training in a closed room!

JSF labels and messages from DB

The following is a step-by-step tutorial on how to implement the retrieval of jsf labels and messages from a database instead of the usual message resource bundles.

1. Create db tables

We’ll create 3 tables, one for the messages (MESSAGE), one for the supported locales (SUPPORTEDLOCALE) and one for the web applications that need localized messages (INTERNALAPPLICATION). The Message table should have columns for id, application name, locale (foreign key - the id of locale table), message key and message value. The SupportedLocale table should have columns for id, locale and locale description. Finally the InternalApplication (INTERNALAPPLICATION) table should have columns for id, application name and locale (foreign key - the id of locale table).

2. Create POJOs

Create 3 classes with attributes mapped by the table columns.

3. Create dao and hibernate mapping

Create 2 methods – one for retrieving locales (select * from locale) and one for retrieving messages taking as parameter the locale string (select m from Message m join m.supportedLocale sl where sl.locale=?).

Create messages.hbm.xml file for the mapping.

4. Create service

Create 2 methods that each call the appropriate dao method and return transfer objects as a result.

5. Create message provider class

Create a class that extends HashMap and override method get(Object key).

Call the service method to retrieve all locales and for each supported locale create a map that contains the locale string and a map with the key and value (e.g. localeMaps = new HashMap<locale, Map<key, value>>();). Next, call the service method passing the locale as parameter to retrieve the messages and add the key and the value to the map.

Finally, find the current locale of the application and get the corresponding key.

FacesContext context = FacesContext.getCurrentInstance();
String applicationLocale = context.getViewRoot().getLocale().getLanguage();

value = localeMaps.get(applicationLocale).get(key);

In faces-config.xml define a managed bean with name the resource bundle var and ‘application’ scope and that’s it!!

SOA Antipatterns

Interesting article in Oracle about SOA anti-patterns. I am tempted to add the lack of real knowledge of what SOA really means and requires. Just like a boy who dares saying in front of his mates that he’s not aware of the new football star in town, most IT professionals pretend understanding the benefits of SOA and are willing to work in such an environment, while in reality they do not even know what it is all about.

Solution: Better educate all professionals playing a role in the new architecture or – even better – have them participate in pilot implementations of the new architecture.

Hello world!

Welcome to the official blog of the Upcom Ltd sofware development company! Here, you will find posts from our collaborators, mainly expressing their own view on technological issues they faced recently and raised their attention.

Happy reading!