Unosquare is a bi-national corporation providing software development, testing, and support for a set of highly valued customers. We serve North American clients from offices in Oregon and our Nearshore delivery center in Guadalajara, Mexico.

Friday, November 5, 2010

Unosquare Featured as One of the Top 6 Red Hot Startups of 2010

Nearshore Americas, an independent e-zine, rates unosquare as one of the top 6 red hot IT startups in Latin America. They looked for companies that have compelling features in the areas of global sourcing, software design, IT innovation, e-commerce or mobile/web applications and services. Their selection team chose startups that have a value proposition not just in benefits for their clients, but in forward-looking business ideas with true commercial promise.

Read the full article here

Friday, September 17, 2010

MedAssets Project Manager Talks up the Unosquare Team

http://www.youtube.com/watch?v=hNnhsvtDzxQ

Here's one of our favorite customers sharing his thoughts about the Unosquare team in Mexico.  This was on a day we launched a new web based application that serves hospital pharmacy operations across North America.  Called Strategic Information for Pharmacy, the application aggregates drug purchasing and contract data across multiple systems and data sources to help pharmacy operations make wiser purching choices and save tons of money.  This app was all built within a Microsoft framework using .Net, SQL, and Silverlight.  Great job team!  On to the next one...

Monday, August 16, 2010

Unosquare Revamps Procedures for a Healthcare Technology Firm

Unosquare, with offices in Portland, Oregon, and Guadalajara, Mexico, assisted an Atlanta-based $400 million healthcare services and technology firm in revamping its procedures and IT development processes. Unosquare helped to deliver greater quality and reduce the client’s IT costs. The client delivers products and services for hospitals and healthcare systems throughout North America.

Prior to contracting with Unosquare, the firm’s development staff was also responsible for software testing. Their focus was on unit testing, which examines the functionality of discrete portions of a software program without assessing how changes made in a specific module might effect other modules, or the larger program.
Many argue that unit testing can be time-consuming and tedious. It demands the development team be thorough and meticulously document their work. It is difficult for unit testing to account for every input scenario that may occur when the program is run in a real-world environment.
This is especially true when there is no automated quality assurance (QA) testing, a QA team separate from the software engineers, or a QA testing environment for new releases that is separate from production source code.

For this client, the result was end-users were experiencing too many problems during normal product use. And instead of focusing on developing new features, the client’s development team was spending valuable time pushing out software patches for discrete glitches.
Source code control was also a problem. This is magnified when the QA process focuses on unit testing. One developer would make a change and test that change in the code base, but that change might negatively affect changes made by another developer in the same environment. There was no process or documentation to control the development and release of new features.

According to Mario Di Vece, Unosquare’s Chief Technology Officer, Unosquare responded with three initiatives; an analytical system for pharmaceutical products, a system to categorize products sold in the healthcare market, and an independent quality assurance regime for software development. The key, however, was providing greater discipline to software development and deployment.

“We established a consistent, agile, development process in which we could plan and work through the features that needed to be addressed. We had meetings three to four times a week so that everybody was in sync with what we were doing,” Di Vece said. Unosquare established a process where the client could see a preview of the project each week. If there was some feature or functionality, discussed previously, that was not there, or needed to be changed, the client could identify it early and Unosquare could address the matter, Di Vece noted.

“This dramatically reduced the client’s workload because they did not have to produce detailed specifications, for the most part,” Di Vece said. “We can talk informally and then we will break that down into a set of work items in the proper format. And we keep the client informed and process their feedback every step of the way. We save them time. We save them effort. We document everything. And we get feedback immediately,” he said. Unosquare also ensures the software systems work properly. “If they do not pass quality assurance tests, then new software is not released,” Di Vece said.

The second project, called Product Data Utility, classifies all the products purchased by hospitals or any other health care facility. Hundreds of variables are analyzed for millions of line items. And many proprietary byproducts of that analysis are recorded. All of the elements of the analytical system project were applied here as well, Di Vece said. “We are using our source code control tools, our project management tools, and our issue tracking tools as value-added services, providing full visibility to our client,” he said.

The third project was to set up a dedicated quality assurance team. A major distinction in this effort is that Unosquare employs the client’s systems and procedures. “We seamlessly integrate and use their source code control tools, their project management tools, their issue tracking tools, and their time tracking tools,” Di Vece said. “In this since, we have been very successful in adapting to the client’s needs,” he said.

Moreover, the QA testing for any software release was done with “frozen” code. With the development team and the QA team being completely separate, one function did not bleed over into the other. That increases the control and reliability over the testing process. The cost of setting up and training a dedicated QA team was reduced by 40% by utilizing Unosquare’s Mexico-based team. Defects are now being caught by the QA team, tracked by the version reports, and logged within the tracking tool. All this came together as a well defined QA process within each software version. It also greatly reduces the chances that a customer will see a bug in production software

Unosquare continues to test client code in a more stable environment - not the development environment – with frozen code, thereby reporting only viable defects.

Friday, July 30, 2010

Vesta’s Prepaid.com International Recharge Portal

Unosquare Provides Development and Localization for  Vesta’s Prepaid.com International Recharge Portal

Guadalajara, Mexico and Portland, Oregon (July 26, 2010) Unosquare, an IT service provider with operations in Guadalajara, Mexico, and Portland, Oregon, today announced the completion of a development project with Portland-based Vesta Corporation supporting the latest release of www.prepaid.com. The Prepaid.com payment portal was developed and launched by Vesta, and allows anyone, anywhere in the world to recharge airtime for Telcel, Movistar, Iusacell or Unefon prepaid mobile phones for friends and family in Mexico.

In order to better tailor the site to Mexican and Mexican-American consumers, Vesta worked with Unosquare’s Guadalajara office to provide software development, testing services, and translation services for Prepaid.com.

“Prepaid.com provides a valuable service that allows US friends and family members to stay connected by securely sending minutes to prepaid mobile phones in Mexico,” said Unosquare CEO, Michael Barrett. “We are pleased that we could provide the resources and local expertise necessary to bring this solution to market.”

“As we were developing this release of Prepaid.com, it was important that the site appealed to consumers both in the US and Latin America,” added Joshua Rush, director of marketing at Vesta. “With its development team in Mexico, Unosquare was the perfect partner for Vesta to collaborate with on this project.”

"The Mexican government, over several years, has invested significant energy in building a robust information technology sector and the schools needed to build that economic segment. The schools graduate nearly 60,000 to 75,000 students over several IT fields," said Unosquare’s Barrett. "A vast majority of these engineers are proficient in English, and of course, their native language. That makes them a valuable asset for North American and Mexican IT projects. Unosquare's mission is to leverage that asset to deliver the greatest value possible to our clients," Barrett said.
Additional information on Vesta Corporation can be found at www.trustvesta.com, or www.prepaid.com

Monday, July 26, 2010

Juan Roman Lands in Portland for NW Natural

Unosquare partner and lead Microsoft architect, Juan Roman Escamilla (El Flaco) will be in Portland all week setting up a SharePoint Portal architecture for NW Natural Gas.  This solution will incorporate a third party Sarbanes Oxley tool along with complete document library migration... fun stuff.

Thursday, July 22, 2010

Emmett Zahn Throws Down a Rap about Nearshore Versus Offshore

I'm being asked by CxO's "How do you compare the costs of the nearshore labor force in Mexico with offshore [India] teams?"  You can probably guess my answer, "Hourly rate is not the only metric to be considered." Correct.  Several factors should be evaluated to find the right Total Cost of Service (TCOS);

1. Teams more than 3 time zones apart require special management, collaboration, and communication overhead. This is provided by relocation of personnel for periods of time at the 'other' facility and/or an individual at each company working a 'swing shift' to bridge the timezone gap.

2. Productivity for Indian engineers has been measured to be at a ratio of approximately 3 required versus 2 on-site workers. Various opinions exist for this cause... there is general agreement on a productivity discount.

3. For ongoing software development, QA testing or managed services such as administration / configuration, the outsourced workforce becomes a critical part of the service you provide to your customers. Both parties should have incentive to maintain low turnover, consistent knowledge of the work process and motivation to deliver good results on-time. The culture in Mexico plus the relatively smaller sizes of the companies located there, promote continuity, involvement and sense of ownership. Unosquare references will tell you "...they care about our projects as much as we do!"

4. Travel time and costs add-up significantly if the two firms are working to maintain a solid long-term relationship. Mexico can be reached in 4-6 hours versus 20 - 30 to Asia.

5. The Intellectual Property that your firm develops, is fully protected under the NAFTA treaty with enforcement recourse available.  Plus, hardware doesn't get stuck in customs for a month.  More like a few hours when shipping servers to Mexico.

6. Finally, certain projects just require a period of working together onsite. That necessitates a work visa. Providers from Mexico, like Unosquare, have a streamlined process that allows consultants to obtain travel documents in 1-2 weeks.

As a CIO/CTO, I have engaged teams from China and India for many years. At the end of each year, I added up the above hard-costs and found that they typically amounted to an extra 20-25% of the contracted hourly rate from the vendor. This number applied when I have two different vendors with team sizes of roughly 50 persons each. Smaller team sizes would have required similar overhead which would could make this markup percentage to be considered in a TCOS even higher.

emmett.zahn@unosquare.com

Sunday, May 9, 2010

The SessionManager pattern revisited

NOTICE: This blog entry was imported from our previous blogging platform.
The real entry date is November 25, 2009

Here's the new and improved SessionManager pattern. I thought I would blog it because it looks so elegant and useful. Here it is:

namespace Unosquare.Patterns
{
    public static class SessionManager
    {
        private enum SessionKeys
        {
            User,
            IsAuthenticated,
            ClientEntity,
            ClientEntityId
        }

        private static T GetSessionProperty(SessionKeys key) where T : new()
        {
            var sessionKey = key.ToString();

            if (HttpContext.Current.Session[sessionKey] == null)
            {
                HttpContext.Current.Session[sessionKey] = new T();
            }
            return (T)HttpContext.Current.Session[sessionKey];
        }

        private static void SetSessionProperty(SessionKeys key, T value) where T : new()
        {
            var sessionKey = key.ToString();
            HttpContext.Current.Session[sessionKey] = value;
        }

        public static bool IsAuthenticated
        {
            get
            {
                var value = GetSessionProperty(SessionKeys.IsAuthenticated);
                return value.HasValue ? value.Value : false;
            }
            set
            {
                SetSessionProperty(SessionKeys.IsAuthenticated, value);
            }
        }

        public static User User
        {
            get
            {
                return GetSessionProperty(SessionKeys.User);
            }
            set
            {
                SetSessionProperty(SessionKeys.User, value);
            }
        }

        public static ClientEntity ClientEntity
        {
            get
            {
                return GetSessionProperty(SessionKeys.ClientEntity);
            }
            set
            {
                SetSessionProperty(SessionKeys.ClientEntity, value);
            }
        }


        public static Guid ClientEntityId
        {
            get
            {
                var value = GetSessionProperty(SessionKeys.ClientEntityId);
                return value.HasValue ? value.Value : Guid.Empty;
            }
            set
            {
                SetSessionProperty(SessionKeys.ClientEntityId, value);
            }
        }


    }
}

We are going Azure!

NOTICE: This blog entry was imported from our previous blogging platform.
The real entry date is November 2, 2009
We have been having talks with Microsoft Mexico to port one of our client's products to SQL Azure (http://www.microsoft.com/windowsazure/sqlazure/) The integration starts today! This is hopefully our path to become a Microsoft Partner.

Microsoft and PHP

NOTICE: This blog entry was imported from our previous blogging platform.
The real entry date is October 21, 2009
Last night I tried something called "Windows Cache Extension for PHP". In the world of PHP, accelerators are extensions which cache script opcodes in either the file system or memory so that the next time the script is requested, it won't need to be checked, parsed and converted into opcodes. Accelerators significantly increase response times, especially in large PHP applications and libraries (such as our PHP framework, WebCore 3x). So far I had been using eAccelerator fairly successfully. The problem with eAccelerator is that sometimes it will make Apache crash for no apparent reason. Well, Microsoft just realeased their own PHP accelerator extension and guess what? It works amazingly well. I'm testing the extension with IIS 6.0 + FastCGI + PHP 5.2.10 and so far, in terms of speed and reliability, I am very happy with it. This is the third time I've been surprised by Microsoft's work towards integrating with PHP. The first time I saw this, was when I discovered they were offering a SQL Server Driver (extension) for PHP. Then, Microsoft integrated PHP within their free Web Platforms Installer. This made it very simple to install PHP on IIS 6 or 7 and bundle it wih FastCGI. Finally, and most amazingly, thier new Windows Cache Extension for PHP really shows some interest from Microsoft to winning a large PHP user base over to IIS. I can't wait until Microsoft goes beyond the Phalanger project and creates a PHP compiler for the .NET framework as they did with Ruby and Python. I guess that with the DLR and the new "dynamic" C# 4.0 keyword, we will be seeing support for PHP.NET soon enough.

Worship Kitchen 2.0 Launched!

NOTICE: This blog entry was imported from our previous blogging platform.
The real entry date is June 25, 2009
Worship Kitchen is one of the digital distribution channels of Integrity Media. What makes it different is that you can get extended content such as split-tracks, orchestrations, transposable music sheets, lyrics and so much more than your regular music provider. We had been working extremely hard to get the next iteration of Worship Kitchen out the door. It was not easy and we had to learn many things along the way but we finally did it. We ended up with a rock-solid product. We’d like to thank the team at Integrity. They gave us all the right direction, hard work and resources we needed to complete this iteration. There’s a lot more coming though. I’ll keep you posted

The story behind our logo

NOTICE: This blog entry was imported from our previous blogging platform.
The real entry date is May 25, 2009
Defining the logo for a new company is always hard and our case was definitely not an exception. Our first approach to the logo was completely related to the square. After that approach, we moved towards something very similar to our final logo, we wanted to focus on the entire name, while still keeping focus on the Spanish/English part of the Company’s name – at that time we were also focused on colors, and we came with something like this:


Short after that Lorena Navarrete designed a different set of logos that actually looked more like real logos and not our “first-approaches”. Lorena, we are thankful for your all your help!


From this set of logos we really liked the following one – although none of our friends and family seemed to like it.



Finally we came up with the idea of leveraging the power of social networks to decide on our logo, and this became in quite an experience. We had people from everywhere giving opinions about this. People keep asking us which Logo won as if it was some sort of contest. To do this, we did an online Poll using Zoho Polls, which aside from the fact that it doesn’t manage comments well, did the trick for deciding on our logo.
Link to the original Poll
The winner was one of Lorena’s original designs - #4 on the Poll!

 
Although something quite interesting happened; when we analyzed the audience that voted, we realized that Executives preferred the more formal and simpler design while younger generations preferred the modern/colorful approach.
At the end, we decided for the formal logo, I think that it is just as dressing for a meeting with a CIO/CTO. Honestly I could just wear jeans and a t-shirt, after all, what matters is what we know and how well we can do it, but the bottom-line is that I wear a suit for those meetings. I want the person that is meeting me to focus on what I say and not how am I dressed. As for our logo, we want them to focus on our company’s services and not in how modern/colorful we look.
The final logo actually is quite smart; it allows us to do branding: unosign, unosap, unoblog, etc. It is formal, and the best, we can write it using True Type Fonts! So much for embedding images…

About Unosquare

My photo
Portland, OR, United States
Unosquare provides US based IT consulting and Mexico based software development and testing.