Posts

5 Reasons to Consider Hiring Remote Workers and Grow Your Business

remote workersA growing business is definitely something to celebrate — but it’s not always something that is easy to maintain. Finding enough talent that can help with things such as software development is becoming more and more difficult. The shortage of software engineers in the United States isn’t just about a lack of quantity, there is a shortage of quality as well.

However, your company has to stay on top of products and development to keep its edge in your market. So what can you do?

More and more managers are looking to hire remote workers to fill the talent gaps in their companies. An increasing number of people overseas are obtaining skills for software engineering and app development. Your business can use these people and their skills for substantiating growth.

Not convinced? Here are 5 reasons you should consider hiring remote workers to grow your business.

1. Remote Workers Save Your Business Money

The average company can save tens of thousands a dollars a year hiring remote workers instead of cultivating in-house talent. A dollar goes further in other countries, so you pay less for the same quality work. Furthermore, when you hire remote workers through an agency, you don’t have to worry about paying for things like benefits.

2. Hiring Remote Workers Saves You Time

Finding talent is a time-consuming and arduous task. When you look for talent remotely, you can conduct interviews and find the right person for the job over video chat and online communication.

3. You Have a Larger Talent Pool

If you look for software developers in your city, your talent pool is limited. Remote workers come from all over the world, so you have a better chance of finding the perfect fit for your project or team.

4. Remote Teams are More Flexible

You may need more hands on deck now, but things could slow down in the months ahead. Hiring remote workers allows you to scale your team based on your current needs, so there is less wasted time and workers are used efficiently.

5. Remote Workers Are Creative Problem Solvers

When you hire remote, you get a variety of perspectives contributing to your product or project. Your remote team sees your end goal from a different angle. This way they are able to provide creative solutions to any problems or bugs that can pop up. You can address these issues as they come up so you don’t have to backtrack by the time the project is completed.

If you have more questions about the benefits of hiring remote workers, or still have doubts about the benefits, contact us at Number 8. We have over 18 years of experience in the software development field and are committed to growing local and regional businesses. We work with a group of software developers in Louisville, KY and also have a nearshore office in San Jose, Costa Rica.

At Number8, we help fast growing companies find quality remote workers that creatively contribute to your business’s success. 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!

Considering IT Outsourcing? 12 Questions To Ask Any Offshore Software Development Company

offshore software developmentYour company is growing by leaps and bounds, but you may notice that the resources available are limited. Especially when it comes to development talent. In the United States, there is a shortage of software developers. To help deal with this problem, many experts suggest companies be flexible with their hiring and look towards alternative solutions such as offshore software development.

What is Offshore Software Development?

Offshore custom software development, or offshore custom software engineering, is the process of looking overseas for talent to help with information technology, project design, engineering, coding and other areas of expertise. Offshore software development provide a cost-efficient solution for the developer shortage American companies face.

There are three basic ways to use offshore developers:

  1. “Project based” outsourcing involves hiring remote teams to complete certain modules or some part of the programming before finishing as a collaboration.
  2. Companies can also remotely hire entire teams of developers led by a project manager who checks the code as it delivered between parties. These teams can be as small or as large as the project needs.
  3. Some software companies create and implement a product then outsource the complete IT application programming and maintenance to an offshore team.

What you’re planning to use offshore developers for will determine the questions you will want to ask them. We’ve listed 12 questions below that we feel you should ask any offshore software developer regardless of your business plans.

12 Questions to Ask Any Offshore Software Development Company

  1. If you think your company can benefit from offshore development, be sure to ask the following questions when searching for a reliable company to help with talent recruitment.
  2. How do you find and hire developers?
  3. Where are developers located?
  4. How will your offshore developers help our company save time and money on software development?
  5. Can developers communicate effectively using email and online chat during a specific time window every day?
  6. Are developers fluent in English? Are they comfortable with the American dialect and its nuances?
  7. How do developers complete their software development process? How do your developers test applications and document each bug they find?
  8. Do the developers have experience completing projects similar to the one being proposed? If so, please provide examples. If not, what qualifications do these developers have that make them proper candidates or hire?
  9. Will the same developers initially assigned to the project be on the team for the duration of the development effort?
  10. Who receives the source code and related materials and eventually owns the completed project?
  11. What methods of development problem solving do your developers utilize? Are they familiar with agile development methodology?
  12. What makes your offshore software development company unique compared to others?

Use these questions to determine if the offshore software developers are going to be a good fit.

If you are wanting software developers to be client facing then they should be fluent in English. They should also be comfortable with American dialect. If you are looking for offshore software developers that use a certain coding method or are well versed in agile methodology, be sure to ask for developers with that kind of experience. By asking questions and getting as many answers prior to hiring, you will avoid issues down the road. This will lead to a healthier relationship with your offshore development team and an improved work flow in your office.

At Number8, we help companies create software products with the help of offshore development. If you questions about our consulting process and why we are the right offshore software development company for your team to work with, then give us a call at (502) 890-7665 today!

10 Benefits of Hiring Nearshore Software Developers

nearshore software developersIf your technology company is growing faster than those you have on deck can handle, chances are you are considering offshore development to help with the workload. Finding offshore talent allows you to hire skilled developers that can handle the nitty gritty aspects of projects so you and your team can focus on the big picture. However, many people find that offshore development isn’t exactly what they hoped for when they hire people on the other side of the world. Successful product development relies on communication. Huge gaps in time zones, language barriers, and other factors hinder productive communication and, in turn, your project’s overall success. Thankfully, not all offshore development has those snags. You can get cost-efficient and effective results by working with nearshore software developers. Nearshore developers live in countries closer to where your business is located — such as Central and South America. Their proximity allows several benefits for you and your company.

Here are 10 great reasons you should hire nearshore software developers for your next product.

  1. You can scale your IT team as needed. While you may need developers now, you may not need them in a month or two. Hiring nearshore allows you to get the work you need, when you need it.
  2. Hiring nearshore developers saves you time. You can find qualified talent through an agency that builds the team for you, so you don’t have to go through the hiring process yourself.
  3. Nearshore workers are trained in the agile development methodology which allows them to find creative solutions that work.
  4. When hiring nearshore developers in Central America, you have less of a gap between time zones, so you and the outsourced team are working on similar timelines.
  5. Developers in Central America learn English early on and in the American dialect. This means less of a language barrier between supervisors and offshore developers.
  6. While hiring nearshore developers eliminates many of the obstacles that come with offshore, it is still more cost efficient than searching for and hiring new talent onshore.
  7. Delegating development tasks provides onshore talent time to work on the big picture and create things that allow your company to stand out in the market.
  8. Nearshore developers share the responsibilities that come with product development. You agree upon a predetermined goal and they execute your vision.
  9. Places like Costa Rica and Honduras have rapidly growing technology sectors full of reliable talent.
  10. Reducing communication issues that normally come with offshore development helps improve your return on investment and bottom line.

More and more large companies like Amazon, Apple, and more are turning to nearshore development.

The benefits of hiring offshore developers who are in the same, or close to the same, time zone as an in-house team are vast. Nearshore developers can not only save your company time, but also money. By hiring nearshore developers for software development, your in-house team can focus on project management and client communications. They can also focus on developing new software ideas that the nearshore team can then make realities. Hiring nearshore software developers is becoming the work flow of the future. You won’t want to leave your company, and your team, behind.

At Number8, we find dynamic talent that work with your company for effective development. Our nearshore software developer are fully trained in agile product development. Our team can come up with creative solutions that will help your company succeed. 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!

7 Tips to Position Fast Growing Gazelle Companies for Success

gazelle companiesJust like a herd of gazelles moves quickly over the Savannah, gazelle companies grow swiftly over a short period of time. Investopedia defines gazelle companies as businesses that “double its revenues over a four-year period” while “starting from a revenue base of at least $1 million.” That’s a 20% increase each year… quite a feat!

When a business booms this quickly, it can easily get caught up in its growth. Following these nine simple tips can help position gazelle companies towards success, so they can continue to expand for years to come.

Tips for Success Among Gazelle Companies

1. Practice Consistency

When your operations are consistent, it’s easier for employees to notice an abnormality that needs to be addressed. Furthermore, consistent operations make it easier for new team members to acclimate to the company. This factor is a must for a growing business.

2. Focus on Client Service

It’s paramount that a company never forgets the people who got them to this point of success — the clients. Therefore, don’t let the rapid growth distract account managers and other employees from providing excellent service at all times.

3. Instill a Teamwork-Driven Company Attitude

An employee should never respond to a manager with “that’s not my job.” If something needs to be done, it’s every team member’s responsibility to do what is in their power to meet the objective.

4. Foster Creativity

Not only will your employees appreciate a work environment that allows them to stretch their creative muscles, a company that encourages creativity is better able to solve problems that arise with rapid growth.

5. Pay Attention to Competition

Your company doesn’t need to live and die by what your competitors are doing, but ignoring them opens up a giant blind spot that can be taken advantage of in the future.

6. Be Painfully Organized

When it comes to growth, it’s easy for a company to set certain things aside for them to get lost in the shuffle only to realize down the road that having that certain thing on hand could be a real help. When it comes to operations, over-organize just to be safe.

7. Outsource When Needed

The more your company grows, the more big picture ideas you need to stay on top of your market. Make sure your big picture people have enough time to follow through with their ideas by outsourcing work where needed — for instance, in software development.

Gazelle companies and their speedy growth are becoming more and more common. At Number8, we help gazelle companies stay on top of their growth by connecting them with top tier outsourcing talent. 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!

 

Outsourcing Software Development Services? 5 Common Mistakes to Avoid

outsourcing software developmentIn order to keep up with rapid growth, startup web companies often turn to outsourcing software development in order to stay on track and meet project deadlines. Outsourcing the nitty-gritty details allows companies to focus on the big picture while also ensuring the product is ready for market.

As common as outsourcing software development is, so are the mistakes people make when searching for talent. Know these mistakes ahead of time so you can avoid them when searching for offshore talent.

5 Mistakes to Avoid When Outsourcing Software Development

Mistake #1: Lack of Communication

When working with offshore developers, good communication is paramount. Lack of communication is the number one reason projects fall through. To help prevent this, have a clear idea for the project’s requirements from the get go to present to developers. Note their speed when it comes to their own communications before picking offshore developers.

Mistake #2: Choosing Developers Based on Lowest Cost

Most companies that outsource do so to help cut down on development costs. The price of talent overseas can be a fraction of what it would cost to hire someone in-house. However, saving a few extra pennies on an inexperienced developer can end up costing you more in the long run. Search for developers based on talent, experience, and communication.

Mistake #3: Unreasonable Timeline

Proper programming needs a flexible timeline in order to account for bugs and additional development needs. If you set an unreasonable timeline and your expectations are too high, you are going to receive negative results. Instead, work with developers on a flexible time frame that allows a bit of wiggle room so they can tackle unpredictable challenges as they arise.

Mistake #4: Not Paying Attention to Tech Trends

Ignoring software development trends means you could be wasting valuable time where new solutions could be saving you. When programmers are up-to-date regarding modern technology tendencies, they will be better able to face certain challenges that can arise during development.

Mistake #5: Not Having In-House Tech Know-How

Some companies believe they can develop a product with only an idea and outsourcing without knowing what it takes to actually build said product. Without a team leader with tech know-how, there are bound to be communication issues between in-house and outsourced workers (see Mistake #1 above!).

Outsourcing software development is becoming more and more common in this day and age. However, it is still new to a lot of companies and can be confusing for the first time. These are 5 mistakes that are easy to make and possible to avoid. We have more information about outsourcing software development available on our website and are also happy to answer any questions! Give us a call at (502) 890-7665 to talk to an expert at Number8 today!

At Number8, we help companies find offshore development help while avoiding common mistakes that knock projects off track. 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!

 

 

 

5 Team Building Exercises for Agile Developers

team building exercisesTeam building gets a bad rap. While employers are open to implementing team building exercises into the workplace, they are often met with resistance. Employees sometimes see team building exercises as a waste of time that they can’t afford and won’t enjoy. This is especially true of team building exercises that occur over a weekend when employees are enjoying time off.

Team building exercises are meant to be productive, fun, and meaningful. Going into team building with a negative attitude negates a lot of the exercise’s benefits. This is a shame, considering the plethora of benefits team building exercises have including:

  • Improved communication
  • Develop team roles
  • Better interpersonal relationships
  • Maximize profitability
  • Inter-team networking
  • Improved morale
  • Help improve skills
  • Shared learning
  • Encourage mission focus

If you manage a remote agile development team, these benefits are probably sounding very appealing. So what is a project manager to do when they want to improve cohesion in their agile development team? Team building exercises, of course. Employees do not have to be in the same office or even away on a weekend together to practice these exercise.

The activities outlined below can involve developers who work both on-site and remotely. All it takes is video chat capabilities and a block of time where you can all meet. These team building exercises are proven to help strengthen communication skills and team productivity! Considering they are all free and can be done in-office with remote workers, they are worth giving a shot.

5 Team Building Exercise to Try with Agile Developers

 1. Two Truths and a Lie

Each person participating writes down their name, two things about them that are true, and one thing that is false. All three things should be relatively believable. As each person reads their two truths and a lie, the rest of the team has to figure out which facts are real, and what is the lie.

2. Find the Common Thread

Developers are split into groups and must figure out a commonality that runs through each member. The first group to find the common thread wins.

3. Show and Tell

This one is pretty much the same as the old school time activity. Each team member gets a day to bring something in that allows the rest to get to know them a little better. This can be a live demonstration, or it also works through the written word.

4. Blind Drawing

Split the group into small teams or pairs. Have one person blindfolded and the other team must instruct what the blindfolded member must draw, but they can only use abstract descriptions… nothing concrete. This is a great communication exercise perfect for long distance developers.

5. What’s on Your Desk

Have each member bring an item from their desk and instruct them to transform it into a new product for the company. Have each member give a two minute presentation “selling” the product to the rest of the group.

As stated earlier, these team building exercises will help build trust, strengthen bonds, and enhance communication skills. They also work to get creativity flowing among team members and could result in new processes, projects, or products! Have you ever participated in, or run, a team building exercise that you found beneficial? We’d love to hear about it!

At Number 8, we promote team growth and development with both our on site workers and nearshore developers. 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!

Node.js: An Introduction for Decision Makers

JavaScript and The Web

JavaScript is a popular web programming language that is most often associated with the client side or Front End. It is comprehensive, considering that JavaScript is the language that interacts with the web page’s elements directly through the HTML DOM (Document Object Model). Almost all web developers must use JavaScript to some extent, whether on the Front End or Back End, JavaScript is everywhere on web applications! JavaScript is responsible for binding events to DOM elements, it has responsibility for adding/editing/deleting DOM elements, and most importantly, it is what fires web service calls (often via AJAX) to the Back End. Simply put, a majority of web developers will have to write JavaScript at some point.

Node.js Structure

node.js

The following diagram shows a Node.js server lifecycle.

“Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript runtime.” Using the least amount of words, Node.js is software that allows JavaScript to run on the server. Before deciding whether or not Node.js is a good option for your next web application, it is important to understand how it works. Node.js can be installed on any platform! It can run on Windows, Linux or Mac. This can save a lot of headaches when configuring and coding the application. This may be seen as an advantage, since your application will not be tied to any particular server architecture.

Other platforms and applications normally have an Application Starting Point event, function or file, where code is run linearly with a well-defined beginning and end. Node.js is different:  events are defined and attached to a server port, where they wait to run code until an event is triggered. “Node.js runs single-threaded, non-blocking, and asynchronously.”

This makes Node.js very fast and memory efficient due to the way that the server handles a new request.

It does not create a new thread, instead it starts running asynchronously and is always ready to handle the next request. This consumes less memory and makes the server fast, but it is important to understand when this is useful and when it may not be the best approach for a given set of business needs. This approach does not work as well as other options when the  application needs to perform a big, long, complex calculation but becomes very powerful when it is required to perform several actions at the same time or handle a high traffic load (horizontal scaling).

It is important to note that the Sleep function will make the main single thread sleep, therefore putting everything to sleep! Apart from being fast and asynchronous, Node.js is also lightweight thanks to its modular approach. Node.js code can be seen as defined modules on ports. Common frameworks are heavy and contain all the references possible to use within that framework even if they aren’t used in a particular implementation. On the other hand, since Node.js defines modules, the references are only loaded when they are deliberately included (they need to be included with the ‘require’ keyword).

FrontEnd + BackEnd

Taking into consideration that Node.js is cross platform, asynchronous and lightweight, it’s often a good option for many API’s or other Back End projects where each operation requested is comparatively lightweight in scope but many are potentially needed in a small timeframe (horizontal scale). JavaScript has historically been limited to the Front End, are you telling me that it is now a legitimate Back End technology as well? In many cases, yes!

This is another great advantage, now both the Front End and Back End for an application can be done in the same language thanks to Node.js. For the Front End, JavaScript alone is not sufficient, the developer also needs HTML, CSS, and often frameworks such as Angular, React, etc. But this has always been the way for JavaScript in Front End. The same can be said for using JavaScript on the Back End, where familiarity with new modalities and different libraries and frameworks can round out a Back End JavaScript developer’s skillset. However, you can imagine the great potential efficiencies and savings unlocked by having the same pool of developers familiar with a language equally powerful on both the Front and Back Ends! This is the promise of Node.js.

Popularity & Community

After exploring some of Node.js’s characteristics, it shouldn’t be surprising to know that even big companies increasingly are choosing to use Node.js in production environments. Some examples: Netflix, LinkedIn, Walmart, Uber, PayPal and many more. Being popular and active in various production environments and companies makes Node.js a technology that has one of the most important advantages for any technology under evaluation, the community. Node.js has a very large and fast-growing community, thanks to its efficiency and its unique abilities. This helps because if an environment running Node.js presents an issue or needs diagnostics or maintenance, it is highly probable that someone else has already encountered the same issue, and the solution can be easily found and digested.

A big community for a given technology means that there is a lot of support and documentation on the web, which can drastically shorten the time-to-resolution.
A big community gives rise to another advantage, Node.js has a package manager (NPM) available to facilitate downloading and using third party libraries. There are countless extensions in these libraries that offer solutions to most problems that a developer might face, reducing the learning curve or development time of the project.

Conclusions

Node.js is an exciting option for many web applications when its high efficiency and lightweight, modular design are taken into consideration. It can handle high traffic loads and high concurrency with sometimes game-changing performance compared to many other platforms. Running a Back End project on Node.js is comparatively simple, and since the majority of developers are already skilled to some degree with JavaScript, synergies and efficiencies on your team could be very advantageous. Finally, Node.js has become so popular in the last few years that it now has a large community that have created thousands of solutions and extensions for tackling all sorts of common problems. If your next project will be highly concurrent, and your team has a lot of existing experience with JavaScript, considering Node.js makes a lot of sense.

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.