How to Launch a New Technology Service

Software companies must stay informed of the latest trends and technologies to remain leading edge with their work.  Avantica is no different.  How do we do it?  How do we bring new technologies into our service offering efficiently?  We have 3 main phases we go through before customers are offered a service or technology.  Let’s go through them one at a time.

Step 1 — Vision

The first step for any new technology is for someone to have a vision about the benefits of the technology to the industry and the company.  Someone has to champion the topic so to speak and raise awareness of the potential.  We’re lucky that our company is loaded with early adopters and an abundance of technology geeks.  Chances are if it’s new and hot, we already know about it.  Knowing about new technology is not the same thing as having a vision or seeing the market potential however.  The visionary must be the advocate or the champion to drive interest within the organization.  Let’s look at a couple of our recent examples.

While everyone in the US was going crazy for iPhones and Android, the adoption rate for nearshore providers was a bit slower.  Our CEO recognized that mobile would be big and so would mobile as a companion for Web.  In fact, he was given an Entrepreneur of the Year award for his vision and for recognizing the potential long before others.  I am proud to say that with Ruby on Rails, I was the one who recognized the power of doing things the “Ruby-way”.  I started learning language several years ago and attended industry events like the 2008 Rails Conference in Portland, Oregon.  We’re several years into our Ruby on Rails practice and truthfully it has been very successful and continues to be one of our fastest growing market segments.

In both of these cases, we recognized not only the power of the platform but also the potential of the market.  We investigated further and determined this was a good place to focus our leading edge people.  Then, we championed the idea to start to build momentum.

Step 2 – Research

Your CEO or CTO says this is a business to be in, now what?  Simple really.  Call in the gurus!  We have these people in our company that generally serve as  architects and leads on projects, but part of their time is set aside for research and exploration.  You know the type of engineer I am talking about.  These are the people who look at a blank white board and know what to draw.  They can look over an SDK and compare to the 5 other similar ones they already know.  Truthfully, we think this is something that sets us apart from more traditional outsourcers. Our senior guys are really into technology.  It’s a hobby and a way of life in addition to a job.

Our leading edge engineers explore the new technology and validate the vision.  They study the internals and create sample products and solutions to see how the pieces fit together.  Once they are proficient, these technology leaders work to bring the rest of the organization along.  They provide links to Web sites and articles that explain all angles of the technology.  Our best engineers go so far as to develop classes like the one pictured below to teach our teams the new technology.  That person in the front is one of the aforementioned gurus by the way.  We even do internal projects for teams to learn.  For example, we did a Ruby on Rails project called RubyNearShore to implement a community site with expert exchange functionality and social networking based on Ruby on Rails.  The site was only viewed internally but served as a great project for people to work on real implementations of the language.

Step 3 – Opportunity

At some point, our research validates the technology and we have enough trained engineers to field a team.  We start marketing our new capability and looking for clients who need a product based on leading edge technology. Generally, the companies we engage with are start-ups and technology companies looking for a competitive edge.  For example, when Ruby on Rails first emerged, the attraction was speed of development and that lead many venture funders to push their new companies to launch on a new language.  Over time, the technology matures as our customer base grows and eventually we end up with a stable practice that we offer to new and existing customers.

We’ll see who in our company has the vision for that next great technology movement.  Perhaps we’re already seeing that in location-based services or maybe even high volume messaging.

Avantica Mobile Development Leader Ronald Hernandez

We interviewed our head of mobile development Ronald Hernández about his group and what they are working on.  Read his comments below.

What are the goals of the mobile group and what are you trying to achieve?

Obviously there is the goal of getting some great products out there.  We are trying to expand our knowledge and put in place some processes that will make mobile development run smoothly.  As a group we are a functional unit inside Avantica, meaning that we would have a whole set of resources dedicated to this specific area, like an independent group that provides services not only to external clients, but also to Avantica’s internal projects.

What types of applications does Avantica have experience with?

I guess we’ve been pretty much across the board in types of apps: Finance, Entertainment, Lifestyle, Health and Fitness. We are talking to a new client about a music application that should begin development shortly.  The apps that we’ve worked on vary a lot in terms of functionality and what it takes to piece them together to have something the client will be satisfied with.  We’ve developed them in all platforms: Android, iPhone, Symbian, Blackberry, Windows Mobile, so I can say we have experience across the whole board in both categories and platforms.  We’re never shy to go ahead and expand that.

How did you get involved with Avantica’s mobile group?  What interested you to lead the group?

I think that I’m a very technical person.  I love to work with gadgets and play around with stuff, so, all mobile things and working with small devices comes really natural to me.  Henry [Avantica Director of Development] came to me and asked me if I was interested to get the group going.  I did a couple of applications and the company saw that there was potential to get into this line of work.  Ever since then, I’ve grown to like the experience.

Can you describe a favorite project your group has done?

One of my personal favorites is a news app we developed for La Nación, which is an important Costa Rican newspaper that has the largest circulation in the country. It’s a personal favorite because it took a big effort to get it done, it’s a really cool app, and I think it pushes the boundaries in the UI side more than what we have done in the past.  It meant working with a very important client in Costa Rica and it’s going to give us a lot of exposure as a development company.

What mobile platforms seem interesting to you and what technologies are you looking at?

Every day is a new learning experience for us.  We try to cover as much as each SDK has to offer. We are investigating cross platform options like Phone Gap or Mono Touch to be able to go ahead and build mobile applications from other types of frameworks.  That is interesting to us because then we can generate apps in a lot less time across all platforms than if we create different applications for each platform.

From the Graphics point of view, I would say iPhone and iPad are very interesting to us. Obviously we don’t want to outcast other platforms, but seeing an iPad and the real estate that it offers, the possibilities we can explore are very interesting to us.

How do you envision Avantica´s mobile division in the future?

I see it growing in size.  Our engineers need to be fully trained in a whole suite of platforms.  Obviously I want them to be experienced in iPhone, Android, Blackberry and all major platforms.  Also I see us as a unit that generates content and learning material so that we can give back our knowledge to Avantica and all its resources, so that if they are not directly involved with the unit, at least they know what we are doing.  And from then on I also think that at one point we will be able to be recognized as experts in the area and we will be able to give back and share our knowledge to clients and the regional mobile community via seminars.

What is your favorite device and why?

My favorite device at the moment is the iPad.  It just rocks! It’s a tool that helps you with your every day activities. I’ve been using it for work, to write down notes, check out websites, check out trends and new apps coming out, that’s pretty cool. I carry it with me all the time. It’s great and it has given me an excuse to not carry my laptop around anymore, and that is always welcomed.

If a person is interested in mobile development, what do you recommend they do?

Read a lot.  Scour blogs and forums because it is an ever-changing environment and new stuff comes out every day.  Just being able to browse through the information that the Internet offers is a great start. Certainly, mobile is something that is flourishing at this moment.  Not all the rules and standards have been written down and there is new stuff coming out every day so just keep up with the trends and all that is going on.

I would recommend that if you are looking to get into mobile development, to start only with one platform and then move on to the others. If java developers are serious about doing mobile they can start off with Android or Blackberry because they can actually do java developments in there.  They just have to learn the quirks, nuts and bolts of how to do the application, but they already have the skill to start with.  If they want to do iPhone, I would suggest they get a book.  There are a ton of really good books out there that feature the craft.  Just keep in touch with other developers and what they are doing.

Any final thoughts?

Mobile devices are adding more functionality every generation so consequently apps will get more and more complex.  That gives developers and users lot of opportunities.  Faster processors, larger memory and bigger display screens are giving great opportunities to get creative and we are getting to a point where the sky is the limit to what you can do.  It is only going to get better with time.

I would encourage companies and developers to go ahead and jump into this. It is very interesting in the technical side and is something that the end user is going to be craving, especially with the proliferation of smart phones. It’s good business-wise and is also great progress from a technological and scientific approach.

Avantica Ruby on Rails Expert Christian Segura

We interviewed our most senior Ruby on Rails expert Christian Segura about this growing technology movement.  Read his opinions below.

When did you start learning Ruby on Rails (RoR) and what interested you about it?

I started learning RoR more than 2 years ago based on the fact that I am a web developer specialized in scripting languages and at that time I used to work mostly with PHP. The forums, discussions and the web in general terms were pretty hot regarding the Ruby programming language and its most popular framework Rails.

What type of applications is RoR suitable for?

In general terms, RoR is suitable for most types of web applications that currently exist. However many people have been using it for quite a long time in apps such as e-learning systems, content management systems, blogs, CRM, social networks, e-commerce solutions, web services and API connectivity applications among others.

Do you think there is a real benefit for customers who choose RoR?

Indeed they are going to perceive real benefit from the start.  RoR allows you to set up a basic application literally in minutes, which makes it great for the customers that enjoy watching results sooner than later (what customers don’t like that?). In that same line, Rails gems and plug-ins allow you to add core functionality into the application (authentication, pagination, etc.), that have been used by many applications and even more important are being tested around the world, so you can focus on development of customer specific business rules.

What are you favorite parts about working with RoR compared to other languages and frameworks?

I have to say that what I like the most from RoR is the fact that it is based in a pretty solid language. Ruby native core functionality provides developer with powerful tools such as metaprogramming and reflection which makes it really flexible and effective in some tasks that in other languages would be painful to accomplish.  I think definitely Rails has an advantage over other frameworks because it is based in simple principles like convention over configuration, DRY and even the Model/View/Controller pattern (MVC). Any developer with the notion of MVC will feel comfortable working with RoR.  The ramp up process for new developers that join an existing RoR project is clearly minor than with other languages/frameworks.

You are now the company teacher about RoR.  Can you tell us how you train new engineers?

I like to start by taking a look at the powerful functionality that the language provide.  Ruby has many interesting features that any developer can take advantage and that definitely is worth it to teach first. Also, I think it is important for developers to recognize where the programming language ends and the Rails framework starts.  After that, I like to teach the basics and theory behind the framework: Active Record, Action Controller, Action View, etc. After some basics, I like to combine theory with the creation of a project from scratch since it is great for developers to see before their very eyes how fast they can build an application.  At the very end, I include other more complex topics/tools not only from the framework but also that help to create better products.

What is interesting about upcoming changes in the language and framework?  Do you like the direction it is going?

The next major milestone is going to be Rails 3.  It’s really interesting because they are also merging the Merb framework (another popular Ruby framework) into Rails, and the core dev team is going to receive great input from Merb.  Besides that, I think some of the interesting features are going to be ActiveModel which is going to allow the use of validators and other ActiveRecord functionality into regular classes, Responders which will allow to set specific business logic to be wrapped when you are sending a result back from controller to views (like the format of response, etc) and also performance improvements among others.  They are also planning on defining more standards to have better API integrations, for example, new ActiveModel would make easier to include a particular ORM’s (by following the standards) instead of ActiveRecord if needed.  The direction I think is the correct one.

Why do you think engineers like RoR so much?

I’m one of them!  I can say that in general terms we like the flexibility that Rails and Ruby allow without leaving out important topics such as security or performance.  Definitely Rails facilitates the learning process when you need to move from one project or application to another since you don’t need to learn the whole stack and architecture from scratch.  The conventions will show you the way to go.  One thing that every human being appreciates is having an easier life.

Cultural Similiaries Costa Rica and US

We often mention that Costa Rica and the US have significant cultural synergy.  Clients give us instructions like they want a site like Facebook but with LinkedIn groups and forums like StackOverflow and our teams understand what that means because they are on-line savvy and familiar with what is happening in US markets.  To prove the point, I walked around the office on my last trip to Costa Rica and took pictures of anything I was likely to find in a US office.  Here’s what I found.

We get our news and information about the industry from the same sources.  The latest Wired was sitting on a desk in an office.

We both care about our health and eating right.  This post about healthy eating was on a common bulletin board.

Wii is fun in any country.  Who hasn’t participated in a Wii tournament at this point!  This was on that same bulletin board as the health information.

Raising your kids to do well in school is important.  Most offices have family pictures in them.

And of course, Costa Rica is into the same cultural icons and trends as we are.  Take a look at what I found on cubicle shelves around the office.

I can’t believe someone had a Mr. Potato Head!  That just made my day.

I guess there is something to that cultural similarities point after all.  We’re concerned about the same issue like health and education.  We’re all really into technology and having fun.  And truthfully, Homer Simpson is funny in any language.  Doh!

Happy Birthday Henry, Director of Development

Just because we work under tight deadlines does not mean we can’t have a little fun now and then.  Happy Birthday to Henry, our Director of Development and one of the longest standing employees of Avantica!

Refreshing a URL After An AJAX Call

This technology post was written by Jorge, one of our engineers in Peru who is also a .NET expert.

A few days ago I was facing a little problem.  How can I update the browser’s URL after an Ajax Callback?  Well I started doing some research and I found an easy way to solve my little problem.  Before pointing you to the solution I want to let you know the context of my situation.

I have a gallery with many thumbnail images.  If you click one of them you will be sent to a page where I will show you the original image.  The first time everything is OK, because you will see the correct URL.  Let’s say I clicked the photo with ID = 1, the URL you will see something like this: http://mydomain.com/Page.aspx?GalleryID=1&PhotoID=1

But what would happen if I click on previous and next buttons? Of course doing an Ajax Callback you will see the right image, but the URL still remains the same.  I mean: http://mydomain.com/Page.aspx?GalleryID=1&PhotoID=1 is always shown even if I clicked the next button twice (if I did so, I’m supposed to be at PhotoID=3).

Well the solution I found is to use a nice Jquery plugin jquery haschange event thanks to the contribution of Ben Alman: http://benalman.com.  Download the source code and just copy and paste it in your page or in a js file.  I recommend you to create a js file.  The source code can be found at: http://github.com/cowboy/jquery-hashchange/raw/v1.2/jquery.ba-hashchange.js

Refer your script file at your page, something like this: <script language=”javascript” type=”text/javascript” src=”<%= ResolveUrl(“~/js/jqueryHasChange.js”) %>”></script>

Create a new javascript section:

<script language="javascript" type="text/javascript">
$(function(){
$(window).bind('hashchange', function(){
var hash = location.hash;
var array = hash.substr(1).split('&');
galleryId = array[0].substr(array[0].indexOf('=') + 1);
selectedPhotoId = array[1].substr(array[1].indexOf('=')  + 1);
});
$(window).trigger('hashchange');
});
</script>

And that’s it, you’ll see the magic in action. The code I listed here is for the following URL: http://mydomain.com/Page.aspx?#GalleryID=1&PhotoID=1.

Also don’t forget if you have a link for previous to do something like the following, in this case for a Ruby on Rails application: <a id=”navigateRight” href=”#GalleryID=<%= GalleryID %>&PhotoID=<%# GetRightPhotoID() %>”>Next Picture</a>.  Notice that for “href” you need to include “#” then the parameter and that’s it.

Enjoy it and happy coding,

Jorge.

An Example of How Graphics Enhance Your Message

Graphics such as clip art, colors and text can turn a boring message or chart into something visually interesting that people remember.  When your viewers walk out of the room or surf to a new Web page, will they remember what they learned?  Graphics can help increase the chance they will if done right.

I was on-line the other day and I came across a graphic from this post that was noteworthy for all the wrong reasons.  Take a look below.  The aesthetic is not too bad and you see a nice style to the art work.  But if you’re like me, you had to do a few double-takes before the core message revealed itself.

I just didn’t pick up the the purpose of the graphic from this image.  If not for this post about graphics, I would never have taken the time to think about the message let alone remember it for later.  The actual intent was to represent what is essentially a bar chart like the one below.  Take a moment yourself and see what elements from above communicate this chart.  You can ignore the chickens as I did when I first saw this.

Most artists rely on the fact that the eye, in conjunction with the brain, does inherent pattern recognition.  They introduce graphics to make images more interesting while trying not to obscure the patterns the eye must see to appreciate the primary message of the image.

What happened in this case?  The pattern the viewer is expected to recognize is that the hill and trees represent increasing values over time.  This didn’t work so well for me probably because there is too much noise on the image and too many changes from left to right.  The eye needs similarities and some level of consistency to make the desired connections.

Let me demonstrate what I mean with an example you may have seen before.  Look at the silhouette of a face below.  You notice a head, hair, eyes and lips as elements of a face even though you can’t see the actual person.  Your brain easily recognizes the pattern of a face.

Now look at two people facing each other using the same exact image.  Is this two people in black or is it a white vase on a black background?  The more you stare at this, the more you will notice that some times you see people and some times you see a vase.  The dual image creates a challenge for pattern recognition because the image equally represents both two faces and a vase.

Graphics can provide the visual clues people need to see the right pattern.  For example, depth, color and secondary graphics such as flowers push the eye toward the vase pattern as with this next image.  Most people would not even see the original faces.

Back to our graphic, the artist could help the viewer make the right connections while creating something aesthetically pleasing with just a few small changes.  The following version of the original image preserves much of the aesthetic, but introduces some consistency and effects to help the viewer register the core message.

Here’s what was changed:

  • The background is one color so it stays in the background and the eye is not distracted moving left to right.  The hill is one color as well.
  • The trees are more similar in shape and color to help the viewer see they are related. The left tree is unchanged though to keep some playfulness and because it didn’t impact the overall message.
  • The font of the amount increases left to right and the last tree is thinner to make it appear taller.  These changes, along with the previous two, help the viewer’s eye connect to the pattern of increasing amounts or values over time leading up to the 1.2 billion dollar amount.
  • The white text is now a single title at the top to clarify the purpose of the chart.  The labels at the bottom are in a similar font to make them more noticeable.
  • There are far less paths and rocks and bushes and markers.  In fact, I didn’t even realize the coloration on the hills represented paths until I started making changes!
  • And finally, I put in a jogger and a family on bikes.  A family out for a weekend ride creates a nice image, and the active people reinforces the message this chart is about walking and biking programs.

Interesting and playful graphics definitely create a nice aesthetic.  Pleasing imagery increases the chance your viewers will remember your message provided you don’t over power the message.

Run Mac OS X on PC Hardware

This post is from our software engineer Hugo (pictured below).

You can now run Mac OS X in PC and thus gain immediately the benefits of costs and space saving at home or work. Just VMware software and a pre-installed Mac OS X is needed. Here is my story and the required steps.

When the time to start learning a new technology based on a different hardware platform came, I faced the necessity to migrate and leave the comfort of using a very familiar environment as Linux is. One solution to this matter was going to be software virtualization, so I began a research consisting in trying to boot a virtual machine with a pre-installed Mac OS X. Unfortunately, my Dell laptop and other Dell models wouldn’t work since the VMware software was responding with the following error message, “Mac OS X is not supported with software virtualization. To run Mac OS X you need a host on which VMware Workstation supports hardware virtualization.” (See the image below)

Many boot and even Setup-level options had been commented by (IT) people in forums and blog posts, but they wouldn’t work either in my attempts. However, the last chance was waiting for me. The brand new Dell Optiplex 380 resulted to have a full hardware virtualization support built-in, and I could confirm this by booting successfully the Mac OS X on it!

So now I’m working with both Linux (as my base/host system) and Mac OS X (as guest system) running on a same PC, with no need of a Mac machine (nor Mac devices).

To achieve this, the following steps should be enough (allowing you to run a pre-installed virtual machine with Mac OS X in a PC Dell Optiplex 380):

Steps:
1. Install and open VMware Workstation or VMware Player.
2. In the Home section, click on “Open a Virtual Machine”.
3. Choose the .vmx file (in my case, “Mac OS X Server 10.6 (experimental).vmx”) and accept.
4. In the section opened for the selected VM, click on “Edit virtual machine settings”. A window will appear.
5. In the Hardware tab, click on the “CD/DVD (IDE)” option.
6. At the right side, click on “Use ISO image” option, click on the “Browse” button, and select the .iso file (“darwin_snow.iso” file, which is in the “bootloader” directory, in my case).
7. Save the changes and click on “Play virtual machine”. The VM should start booting.

There are still more tests to do within the virtualized Mac OS X, but at least we have more than the basic functionality of this system running on our PC (see image below).

Avantica engineer Hugo, author of this post.

Costa Rica Hosts Global Outsourcing Conference

This guest post was written by Diego May, our Director of Business Development.

I recently attended an event organized by Procomer in Costa Rica called the Costa Rica IT Alliance Summit.  As the head of business development for Avantica, I am often provided opportunities to be involved in conferences and events to see how the technology industry is growing in Costa Rica and Latin America.  Proccomer is a government agency charged with connecting Costa Rica technology companies with US and other companies.  Avantica is a regular participant at their events.

For 7 years now I have been involved with the development of Costa Rica´s technology and services sector. I had the opportunity of contributing to the first Costa Rica Technology Insights event back in 2004. After that initial event, and always with the Verde e Inteligente slogan (translation: green and intelligent), Costa Rica has continued these conferences and its international positioning. With these events and the networking coming out of them a lot of interesting companies have risen and grown and the outsourcing industry has matured.

The event was held July 7th and 8th and was a good evolution of what has been happening for the following reasons:

Very interesting visitors – It was nice to see companies from US, India, Trinidad, Dominican Republic and other countries coming to this event. Prior to the event lots of meetings were pre-arranged and with that level of preparation the 30 minutes sessions were really productive and to the point.

Diversity of players – In a couple of days we were able to interact with some potential direct US clients, professionals in the US advising companies about outsourcing and nearshoring, and companies in India and in US really interested in moving forward about partnering. Very interesting people and very valuable meetings to understand how are the different types of players in this interesting industry evolving over time.

Learning about how market is evolving – Two meetings I am pretty excited about were with companies that are advising other companies on how to best approach outsourcing. It is interesting to see how the outsourcing industry is evolving and how it has become clear now that there are a lot of variables that have to be taken into account in order to find the right outsourcing for the different project types. There are people who have experienced different types of outsourcing engagements and are offering valuable advise to companies thinking about this important, potentially cost-reducing factor. I look forward to following up with these two companies to convey the nearshore value proposition.

Seeking nearshore partnerships – While we met with different potential clients and advisers we also saw clearly how there were also some interesting services boutiques that are seeking for the right partners to scale their businesses. Nearshore and outsourcing in general has matured and these small companies offering great value to their clients can now see that a solid nearshore partner can really help them scale their business. We´ve seen that happen with some of our partners and we look forward to following up with the potential partners we met during the conference.

On a very professional perspective it is nice to see how after some iterations of these events we got to highly productive sessions that in a few days allow its participants to sense what is going on. From direct clients, to partnerships and general industry knowledge, in this event we were able to get a lot of value. Thanks Procomer for such great organization.

On a more personal perspective, as the Argentinean and proud Costa Rican I am, it is fantastic to see how the synchronization of some people some years back and some good intentions well-organized and directed can have such an impact. Today Costa Rica is a well know hub for the IT services industry and it is clearly seen as a top provider of nearshore development services and perhaps 14 years back it was hard for anyone around the globe to think about Costa Rica hosting an Intel Operation.

Pictures from the conference:

Diego May, Director of Business Development, Avantica (far right)

More information about the conference and Costa Rica’s outsourcing industry:

Nearshore Americas link

Costa Rica IT Alliance site

Procomer: The foreign trade corporation of Costa Rica

Peru as a Software Development Center

Avantica has development centers in two countries, Costa Rica and Peru.  I was always a bit curious why Peru had been the first choice for expansion beyond Costa Rica over say Brazil or Argentina.  Peru is a country rich in culture and history.  That makes it a great place to visit.  But what about engineers?  Near shore engineering after all is driven by one key factor: talent.

Technology is a fast growing industry and the best place we have found to identify and train engineers is at universities.  Did you know that Peru has the highest educational attendance rates in all of Latin America according to UNESCO, World Bank, and the Inter-American Development Bank as mentioned in this post on Wikipedia?  That’s right, engineers and students in general in Peru are in class more than any other country in Latin America.

What does that tell you?  Simple, that kids are dedicated to learning and education is seen as a way to achieve in life.  This reminds me of India, where I spent some time working with development companies and learning about their culture, and how the competition over the best schools was part of what lead to the outsourcing boom there.

Did you also know…

  • Peru is one of the 20th largest countries in the world second only to Brazil and Argentina in Latin America
  • The literacy rate in the country is 92%
  • Peru holds the Guinness book of records for the widest range of dishes for any country in the world (491)

OK, that last one may be more about why I want to go to Peru.  If you’re looking for a reason yourself, have you heard of Machu Picchu?  Now that is something I can’t wait to see!

Peru is a beautiful country that has an interesting mix of culture and resources.  We’re seeing more and more of our projects sourced in Peru because of our ability to find and train good engineers there.

Learn more about Peru and Avantica at our development centers page on our Web site.