Increasing Productivity on a Software Development Team

Increasing Productivity Before the New Year

As the year draws to a close, you may notice your software development team is lacking in productivity. You’re not alone. Managers from all types of sectors notice a dip in work rate as the holiday festivities approach. So how do you go about increasing productivity with a team distracted by online shopping and dreaming of vacation days?

Communicate Face-to-Face

We often rely on messaging applications like Slack and email to relay important information to teammates, but with all the digital noise available, crucial points may be lost. If you want to keep your employees’ attention, start logging IRL face time with your developers. Getting them away from the screen will help keep the task at hand on their mind without being overly aggressive.

Clarify Project Specs

If a project’s specifications are not clear, your team will waste hours trying to hit a target they can’t even see. Ask your programmers about the requests they receive and their clarity. There is always room for improvement as far as processes go and you will save time and money, in the long run, figuring out how to fix them today.

Lead by Example increasing productivity

Your attitude this season will affect your team’s, so be positive and productive if that’s how you want them to function. Teams work harder if their leader has a good attitude, so make a concerted effort to stay that way throughout the season.

Encourage Breaks

You may think that encouraging your team to spend time not working is counterproductive, but there is scientific proof that breaks boost productivity in the workplace. If you notice your team members are plugging away hour after hour and not getting up from their desk, gently remind them that it’s not a crime to take a break. Encourage them to take a 10-minute walk, get a fresh cup of coffee, or even take a minute to stretch.

Set End-of-Year Goals

Going into the season, have your developers set goals to reach by the end of the year. Help them decide how they will break up the work into daily activities so they can accomplish the goal. Setting small milestones is a good way to keep your programmers on task when the time of year tempts the mind to wander.

 

 

At Number8, we encourage healthy business relationships for increased productivity as well as job satisfaction. If you’re interested in learning more about Number8 and what we do, give us a call at (502) 890-7665, or check out our information page here!

 

 

My Xamarin Experience

xamarinDifferent Options

When developing software, whether it’s for a fun project or a formal business project, a requirement can be met by many different options and technologies. After a while of looking at many, it is natural to think which is the best option for the requirement.

Let us consider the options for building a mobile application.

Sometimes the best option is determined by the compatibility of the implications of the option and the technical strengths of the development team. (I’ll cover implications a little later)  The first option to consider when building a mobile application are native applications, but it immediately raises a warning – when the code for a platform is done, the code will need to be transcribed to another platform.  Second, every native technology has its own implications. So to have a successful mobile experience in all native platforms, a developer for each platform is needed.

Even if there was a developer for each platform, is it worthwhile to develop a native mobile application for each platform instead of modifying a web page so it can be viewed in any device?  This is an important question to consider so here is a comparison chart for key characteristics.

CharacteristicNative ApplicationWeb Page
InternetAfter downloading the app, it can work in offline or online modeOnly works with internet connectivity
PerformanceNative components are lightweight and fastPages tend to be heavy and work somewhat slower
Push NotificationsCan send push notificationsCan’t send push notifications
Hardware AccessAccess to camera, speaker, flash, etc.Does not have access to hardware
AccessibilityOpening the app with a clickOpening browse and typing URL
User ExperienceNatural feels and smoothUnnatural and, in some cases, slow

Based on this comparison, it appears that a native application offers a wider range for creativity and service options. If the development team handles all the implications for every platform then it might be a good idea to develop a mobile app natively for each platform, considering that native applications have the best performance and assuming the business is willing to pay a higher cost.

Let’s talk more about those “implications”.


Implications

When dealing with software frameworks and APIs, each framework works naturally with the programmer at least interacting with (in others mastering) certain technologies or programming languages. This comes naturally if the framework is an extension for another technology.

For example, consider Node.js, a JavaScript runtime. When using Node.js, being a JavaScript runtime, the code will naturally be programmed in JavaScript language. Therefore, working with Node.js framework implies the programmer knows, or can at least interact with, JavaScript language. We’ll call these framework dependency implications.

Following are some implications for some mobile application frameworks.

Mobile Application TechnologyImplications
Native Android Mobile App• Java
Native iOS Mobile App• Objective-C or Swift programming language
Xamarin• .Net (C# programming language) • Extensible Application Markup Language (XAML)
Appcelerator• JavaScript • Titanium SDK
Phonegap• Hypertext Markup Language (HTML) • JavaScript Language • Cascading Style Sheets (CSS) Language
Ionic• Hypertext Markup Language (HTML) • JavaScript Language • Cascading Style Sheets (CSS) Language • AngularJS
React Native• Hypertext Markup Language (HTML) • JavaScript Language (ES6 Syntax) • JavaScript XML (JSX) • Document Object Model (DOM)
Sencha Touch• Hypertext Markup Language (HTML) • JavaScript Language • Cascading Style Sheets (CSS) Language • Sencha SDK • MVC Architecture

There is another cost that is not visible at first glance.  Even though the different platform projects have the same core and logic, ultimately they are individual projects. Each project has a different language and application lifecycle and SDKs, so each project will also need its specialized maintenance. This can all add up.  If creating the application natively appears to be too expensive or the development team does not handle all the implications, another strategy can be used.

Using a cross-platform technology has become very popular as a hybrid solution for mobile development, so you can write one set of code that can be used on multiple platforms and can give the user a native experience. There are many cross-platform mobile app technologies, each with it’s own implications. The strategy is to pick technology that has an implication that the development team masters, plus another consideration. Since this is cross-platform, it is important to choose a solution that has a large percentage of transcribing code; the code that can be written once and run natively across the platforms.


xamarin developerMy Experience

When I decided I wanted to develop mobile apps, my first thought was “What native technologies do I know?”

I had used Objective-C for an iOS application.  If I wanted to make a native android or windows phone application, I’d have to learn about project structure and app lifecycle and hope I could program in the language they used. Since I only knew one native technology (iOS) I decided it was better to invest time learning a cross platform technology.

I then thought “Now if I’m going to use a cross platform technology, what implications can I handle the best?”.  Xamarin was a natural choice for me, thanks to the language and application structure.  C# is one of the languages I handle the best, plus the structure was intuitive. An .xml page with its back end code, the application lifecycle was also C-like. I managed to learn XAML and the app structure and lifecycle quickly.

Later, I discovered that Xamarin generated native apps that shared 95% of the common code. I also got to an acceptable level of understanding in android and iOS native applications. Then I decided to test Xamarin’s generated native projects. It seemed that the native applications were greatly structured and coded. I thought “Wow. In theory, it is possible for someone to develop a full native Android app without knowing Java or the android app structure or even having the Android Studio”. Another plus for cross-platform technologies comes from the abstraction layer.  When using Xamarin, the code handles mobile events (like Swipe) in Xamarin’s way.

I can code once and use these events without even knowing how to do it the native way.

I decided it was a good idea to take full advantage of these generated projects and tried making everything in Xamarin, because some things are not implemented on the framework. For example, Xamarin has no radio button tag for iOS applications. Instead of modifying the generated iOS application and using Apple’s radio button, I decided to implement my own radio button in Xamarin, which rendered natively in iOS. This seemed like a good choice that would become an advantage, but I also found a disadvantage, when making a minimum change on a Xamarin project, it must be recompiled to see the changes on the device. This can be time consuming if one wants to test various changes.


Conclusions

I decided to use Xamarin to build mobile apps because it was cross-platform. So most code would only have to be written once. And the projects generated by Xamarin were native. This is not the case on every cross-platform technology. The fact that the final projects are native is an advantage since mobile characteristics can be used.

Still, I studied native projects for Android and iOS to be able to modify the generated projects if something can’t really be done on Xamarin (I realized Xamarin does not support everything for every platform). Again, this can be done because Xamarin generates native projects.

In other words, I take advantage of Xamarin to reutilize code and generate fully native platforms to the extent it permits me, but I also know how to do it without Xamarin in case I really need to modify a native project. Xamarin’s implications are my strengths in programming. This is how I determined Xamarin was the best option for me when it comes to developing mobile applications.

It is important to note that the best option is a balance between the technical strengths of the development team and the implications of the technology. Xamarin with native platforms background was the best option for me, but I have a C# background.  Another developer could have worked faster with Ionic if, say, the developer is a master in AngularJS.

Nearshore Outsourcing: Why Texas Businesses Choose Nearshore Over Offshore

When it comes to meeting the United States’s demand for tech talent, the country comes up short. This presents a problem, especially for growing Texas tech companies. How do businesses fulfill the needs presented by growth when the manpower simply isn’t there? The answer is nearshore outsourcing.

Many Texas tech companies choose nearshore outsourcing to bridge the gap. Nearshore combines the benefits of onshore outsourcing with the affordability of offshore. For Texas businesses, in particular, using tech developers in Central America is more convenient than doing business between states. Flight costs for Houston to Costa Rica rival those of interstate flights– and flight time is only 3 1/2 hours. Team leaders can easily travel from the home office to developers when they need to. Nearshore developers also work in the same time zone, which allows more effective communication and eliminates the challenges of working on different schedules. These are just a few of the benefits of nearshore development outsourcing for Texas businesses…

Nearshore Outsourcing Alleviates Communication Challenges

When it comes to IT development, communication can make or break a project. Clear and effective communication is essential for project success, but when working with offshore developers that communication can become muddled. Not only do you have to take language and cultural barriers into account, the loss of inflection in digital messages means one simple sentence can be interpreted various ways.

Of course, working with nearshore developers doesn’t mean you’ll be speaking face-to-face with your team on a daily basis, but the proximity of nearshore outsourcing means there is less of a cultural gap– less room for interpretation. Clear and effective communication is crucial for web design. With nearshore developers, communicating is simpler, easier, and more effective.

nearshore outsourcing

Focus on Core Business Functions

As the leader of your business, focusing on the core functions is crucial. Your business’s core functions are the new things that create differentiation– the things that make your business stand out from competitors. When you outsource contextual functions, it allows your company to exponentially grow. The key is outsourcing with people that specialize in the practices your business needs help completing. Nearshore outsourcing provides greater efficiency and productivity in context projects so you can spend your working hours focusing on the bottom line.

Reducing Overhead Costs with Nearshore Outsourcing

Offshore outsourcing is affordable– there’s no denying that. However, there are hidden costs when you work with offshore developers:

  • Hidden transition costs
  • Productivity lags
  • Team management
  • Ramp-up costs
  • Contract management

Nearshore outsourcing is as affordable as offshore, but the benefits of working with people closer to your home office reduce the hidden costs. For instance, you are less likely to suffer from productivity lags when you work with people with whom you can communicate effectively right off the bat. Additionally, managing a nearshore team is much easier and travel costs are significantly more affordable.

 

At Number8, we help Texas businesses optimize their operations with nearshore outsourcing. Our teams–both foreign and domestic– provide effective communication and service that allow your business to grow at a rate that keeps up with your market. If you’re interested in learning more about Number8 and what we do, give us a call at (502) 890-7665, or check out our information page here!

 

 

TED Talks to Remember – An Overview of 3 Favorites

Our favorite TED Talks best ted talks

When we’re bored, unmotivated, or just in need of a quick mental pick-me-up, watching TED Talks is a perfect way to reboot the mind get us back on track. The topics of these speeches performed the world’s most innovative speakers range from reading body language to teaching kids how to eat their vegetables, but our favorites are the ones that make us embrace what we perceive as “faults.” So much of our potential is wasted through self-doubt, but these particular TED Talks help a person move through it and come out the other side more confident and able to pursue their true purpose.

 

Adam Grant – 4 Surprising Habits of Original Thinkers


Wharton professor Adam Grant specializes in organizational psychology. His work involves researching and establishing principles that help solve problems in the workplace and improve the overall quality of life for people. His first TED Talk, Are you a giver or a taker?, is worth a watch as well, but we like the way this one helped us rethink our insecurities, our apprehensions, and even our tardiness. 

Through his observations of former students turn Warby Parker entrepreneurs, Grant explores how the future successful people don’t always seem so at first glance.

Watch it here:

Barry Schwartz – The paradox of choice


In the United States, people are spoiled with choices… but is that a good thing? Psychologist Barry Schwartz makes a very powerful argument here that it isn’t. His idea is that if a person is presented with too many choices, he will fail to make one because of his fear of choosing incorrectly. This “paralysis of choice” is something people deal with all the time whether it be at work, out shopping, or even in our personal lives.

Even if a person does make a choice, the knowledge that there were so many other avenues to take causes him to wonder if there was a better way to go. It’s a classic “grass is always greener on the other side” feeling. Schwartz argues that when we have less to choose from, our expectations remain reasonable and we are more satisfied with our choices.

Watch it here:

 

Brené Brown – The power of vulnerability


Being vulnerable is frightening, but anything that can elicit such emotion must be powerful, right? Brené Brown thinks so. Through her studies of vulnerability, courage, authenticity, and shame, Brown tries to understand humans better. She studies how our relationships with others and, perhaps more importantly, ourselves, affect our quality of life.

As humans, we try and avoid vulnerability. It’s seen as a weakness, a flaw, and a way for the world to take advantage of you. Brown argues that without vulnerability, we will never get the things we want out of life. These things range from a healthy relationship to a fulfilling career, or just accomplishing whatever personal goals you have. Instead of numbing our vulnerability, Brown encourages people to embrace it, own up to it, and engage with it.

Watch it here:

 


At Number8, we encourage our employees to embrace their flaws and re-think them as strengths. This innovative way of self-perception enables us to come up with creative solutions while enjoying a better quality of life. If you’re interested in learning more about Number8 and what we do, give us a call at (502) 890-7665, or check out our information page here!

Top Universities in Central America that Offer Computer Science Degrees

Getting a computer science degree in Central America has its benefits.

computer science

First of all, the cost of living in these countries is considerably lower. By immersing yourself in a Spanish speaking area, you acquire a lifelong skill that also improves your cognitive functions. Studying computer science prepares you for an ever-evolving career needed in just about every industry there is. The number of Central American universities that have excellent computer science programs may surprise you. Here are a select few…

Latin America University of Science & Technology – Costa Rica

There is a growing industry of eco-conservation that needs bright young minds to contribute. What better place to study computer sciences than one of the world’s leading countries in environmental protection? The Latin America University of Science & Technology in San Jose, Costa Rica is a private, non-profit institution that is the only bilingual university in the country. The computer science courses at ULACIT are challenging with a focus on quality, innovation, and service. Furthermore, ULACIT prides itself and facilitating an environment that encourages new ideas regarding eco-preservation.

University of Panama

The University of Panama has been around since 1935 and was created by presidential decree. Also, as a public university, tuition at the University of Panama is free— even for international students. With its storied history and low cost of living, getting your computer science degree at UoP is an excellent choice if you want a world-class education at a fraction of the cost of United States universities.

University of Costa Rica

Costa Rica is one of the happiest, healthiest, and environmentally conscious places in the world. The country has a high quality of life which earned it the nickname “the Switzerland of Central America.” Additionally, Costa Rica’s ecological beauty and heavenly climate are unmatched. Along with those benefits, the University of Costa Rica is one of the finest higher education institutions in the world. Furthermore, it is the most prestigious university in Costa Rica and has several satellite campuses around the country. UoCR is a secular and humanist institution, encouraging social work and environmental activism from their students– an attitude that reflects the Costa Rican lifestyle.

Florida State University – Panama

This international branch of Florida State University is the second oldest university in Panama. Their computer science program is the only major you can complete entirely in the Republic of Panama Campus. The campus is at the City of Knowledge sustainable complex, which used to be the Clayton military base. Therefore, a booming international community surrounds FSU Panama students and encourages innovation with ample resources to meet your goals.

National University of Costa Rica

Studying in Costa Rica is perfect for a nature lover looking for adventure. In your off time, you can explore the country’s active volcanoes, go white water rafting, or surf in the crystal blue waters. Located in Heredia, the National University of Costa Rica separates itself from the tourist filled streets of San Jose and close to the country’s natural beauty. Furthermore, the university curriculum is rigorous and varied. It’s the perfect place to go for a diverse university experience while you get your computer science degree.

 

At Number8 we recruit computer science students with a sense of adventure and innovative minds. We believe that studying abroad in a top-notch university like the ones above prepares you for the fast paced tech market and IT. Are you interested in learning more about our developers, or do you think you are qualified to join our team? Then give us a call at (502) 890-7665 today!