Let’s start out by saying that it’s good to have a choice because many companies are strictly limited to purchasing third party software.  You’re in a prodigious position if you’re weighing whether to finance a customized software solution or purchase one off-the-shelf. There are advantages and drawbacks to either approach.  Oftentimes the debate involves determining the right balance between control versus cost and immediate needs versus long-term opportunities. 

Easy Considerations

If you fall into one of the following scenarios, then the choice is already made for you.

  • The software you need doesn’t yet exist

Its perfectly feasible that the particular solution you need is not yet available on the market.  If this is the case, then you need to build it.

  • You need the software ASAP

If you need a software solution implemented in less than thirty days, then you can stop reading and find a vendor that produces something close to what you need.

  • Your industry or organization is in a highly regulated field

Industries such as financial services are required to use software solutions that have been rigorously tested and vetted in order to meet compliance regulations.  Unless you are a large corporation, chances are you will be better off purchasing.

With that out of the way, let’s look at the advantages and disadvantages of buying an existing solution. 

Advantages of Buying Software

The primary advantage of purchasing Commercial-off-the-Shelf (COTS) software is that it is a known factor.  Whether it’s a fixed or variable cost, the initial price is known or can be calculated up front.  Implementation and deployment is much faster than building.  In addition to the software, your purchase usually entitles you to product guidance, expertise and support from the vendor as well.  This is an important consideration particularly when things go wrong or you need access to a knowledge base for advice.  Finally, bugs are discovered early and often because the software is continually being tested by the other customers.  Bugs are found before they affect your own organization. 

Disadvantages of Buying Software

Innovation

It may sound like an oxymoron, but one big disadvantage to buying software off-the-shelf is the uncertainty of the future.  While the purchased software may satisfy your requirements today, your needs will undoubtedly change in the future.  As a result, you may outgrow your software.  There are also some important questions to ponder. How certain are you that this particular software vendor will be around in five years?  How reliable is the company that you are purchasing from? Will the company continue to innovate and upgrade the software with new technology and features or will they go out of business?  After all, 96 percent of businesses fail within 10 years.  These are key questions to ask because switching between software solutions is an expensive proposition. 

Security

Security is another major consideration as third and fourth-party data breaches have dominated the headlines over the years.  Third-party data breaches over a 12-month period increased from 34 percent to 45 percent in 2018 according to a report by The Ponemon Institute.

Feature Mismatch

While buying is nearly always cheaper up front, you will undoubtedly be paying for features that are not relevant to your particular industry or company.  Similarly, the software is likely to be lacking in capabilities that you wish you had.

Now let’s look at the advantages and disadvantages of creating your own customized software solution.

Advantages of Building Custom Software

Feature Match

The primary advantage of building your own software is that it ensures that you get what you want because you are in charge.  Think of the difference between having your next home custom built from the ground up vs. buying a resale.  The development team creating your software will do so based upon your specific requirements. This ensures your software solution delivers all of the features you want and need

Innovation

What’s more, the innovation process never has to end when you’re building.  Custom software can be modified in real-time, and new features and capabilities can be introduced as needed. As your business changes, so too can the software. You won’t have to wait for a vendor to develop specific feature sets to suit your business requirements – you can develop and implement them as you go. 

Scale

Another advantage to building custom software is that it can grow alongside the growth of your organization and at your own pace.

Competitive Advantage

Custom software can also offer a competitive advantage over your competitors by leveraging the technology that is better suited for your company and your customers. This advantage is even more pronounced if your competitors are operating canned off-the-shelf software. 

Disadvantages of Building Custom Software

Time

The primary disadvantages are time and cost.  Obviously, implementation takes much longer and unanticipated delays can prolong the process even further.  

Cost

While some organizations may have an internal development staff, chances are you will have to hire an outside development team to partner with.  Knowing an exact upfront price for a custom software build project is highly difficult.  The only thing to be certain of is that it will most likely cost more than purchasing COTS software.  While the initial cost may be greater however, custom software can prove less costly in the long run due to the negated risk of switching software solutions as well as the appreciated gains of greater productivity and efficiency. 

The Final Choice is Up to You

There is no clear right or wrong answer when it comes to the question of buy versus build. It depends on your business, your requirements and your resources. Your best option is to choose based upon your particular situation and needs.  A simple equation to remember is that more control equates to greater cost; and lower upfront costs will garner you less control. No matter which path you decide upon, be sure to do your research in order to find a vendor or development team that can provide the solution that best fits with your organization’s requirements.   

Ready to Talk? Contact Us.

It’s not exactly Shakespeare, but it is a question many companies are asking today.  It’s a question that is particularly relevant to organizations that are currently mapping out their digital transformation as they attempt to both maximize their existing technology frameworks and monetize their technology investments.  The question applies especially to Enterprise Resource Planning (ERP).  ERP is the lifeline for many businesses today.  As such, it is the collective depository of shared databases that support multiple functions that are used by business units across the organization.  It provides the backend magic that powers so many business processes such as orders processing, pricing, billing, inventory and reporting. 

The Pros and Cons for Coupling the Two

The Advantages of Joining ERP & Web Platforms

The primary advantage of coupling your ERP and web platforms together is the apparent simplicity of consolidating them into one package.  That means one purchase decision, one implementation and one vendor to support it all.  Sounds nice, right? This approach has been popular since the early years of IT as IT centers focus on building large monolithic systems.  In fact, the practice of consolidating different component types is in vogue today as large networks are reducing their datacenter footprint and turning to hyper-converged infrastructure solutions.  HCI (Human Computer Interaction) consolidates the compute, storage and networking components of the datacenter into a single box, allowing admins to manage all components through a single pane of glass.  This manner of coupling different technologies is highly popular today as companies strive to simplify their network architectures. But coupling ERP and web platforms isn’t all rainbows and roses.

The Disadvantages of Joining ERP & Web Platforms

Consolidation has definite disadvantages. If you are old enough to remember the single-console entertainment systems of the early 90’s (the ones which combined TV, DVD and VCR) or the all-in-one boom boxes – it is easy to see the primary shortcoming of consolidation. No individual component can be upgraded without purchasing an entirely new console.  While coupling platforms through HCI has great benefits, it’s able to do so by commoditizing the technology of each component. 

ERP, however, is not commoditized.  It is a highly complex business process management system with proprietary elements and intricate dependencies.  Coupling it with a web platform simply adds to this complexity, greatly restricting the ability to scale out.  Changing web technologies and upgrading the ERP platform can also pose issues that negatively impact web and mobile applications.  Because of this, new release frequencies are reduced which in turn limits new functionality innovation.  This doesn’t bode well at a time when agility and nimbleness create huge competitive advantages.

The Pros and Cons for Decoupling the Two

The Advantages of Decoupling ERP & Web Platforms

The speed of innovation today far outpaces the upgrade processes and traditional software development practices of yesterday.  That is why so many organizations use the new approach of DevOps in order to increase an organization’s ability to deliver applications and services. Under DevOps, developers can work in unison to create and upgrade separate features which speed the velocity of development and deployment.  By decoupling your ERP and web platforms, developers can work independently and in parallel.  This modular approach allows for subtle differences to be made without worrying about dependencies or corresponding changes to the other end.  This can greatly increase a company’s operational efficiency and agility, giving it the ability to respond to changing needs in quick fashion.  Decoupling also increases resiliency as down time on one platform does not affect the other. 

The Disadvantages of Decoupling ERP & Web Platforms

Decoupling does introduce some drawbacks, however.  When you decouple your web platform, it often means that more vendors are involved, increasing the complexity of communication and responsibility.  Also, implementation and initial costs can be higher as more players are involved.  Higher costs are seen on the front end and are offset by a lower cost of ownership because of the increase in flexibility and increase in the rate of innovation.  Organizations that choose to decouple should also plan on an influx of personnel with the web development skills required to build and maintain the platform. 

Sorting Through Your Organization’s Individual ERP Situation

The truth is that there is no right or wrong answer to the question at hand; only an answer that is best for your particular situation.  It depends on what your business’s processes and goals are, and how each path lines up with your organization’s particular requirements. 

Have questions? Please feel free to reach out to us. We stand ready to listen to your business and technology challenges and help you find the right solution for your business.


Ready to Talk? Contact Us.

Which of the Big 3 Cloud Service Providers is Best for Me and Why Choose One Over the Other?

To say that the cloud has played a transformational role in redesigning enterprise architecture today would be a vast understatement.  While early pioneers of cloud computing primarily used it for testing environments, companies with fluctuating workload demands soon began incorporating it for cloud bursting where the cloud served as a natural extension of the datacenter.  Today, companies of all sizes and industries are realizing the flexibility, scalability and redundant nature of the cloud and the vast majority of enterprises utilize the cloud to some degree.

The Big 3

Just like the American auto industry, there is a big three in the cloud computing industry as well.  Those players are AWS (owned by Amazon), Azure (owned by Microsoft) and Google Cloud.  All of them offer Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) cloud models as well as additional offerings such as backup, disaster recovery and active directory federation services.   For those considering cloud computing from one of the three giants, the obvious question arises, which one is better?  In some ways that is like debating Ford vs. Chevy or LeBron James and Michael Jordon.  There isn’t a clear winner.  That doesn’t mean however that one of these cloud providers isn’t a better fit for your particular organization.  Let’s take a look at the advantages and disadvantages of each of these big name cloud providers.

AWS

Think of AWS (Amazon Web Services) as the grandfather of cloud service providers, even though it has only been around since 2006.  It was the first, and its head start has helped ensure that it remains the biggest, at least for now.  Not only does AWS have a substantial lead in market share over its competitors, AWS offers a more mature feature-rich environment as well.  It also has more data centers, giving it greater reach across the globe.  All of this together supports increased scalability and resiliency. 

One can’t discuss AWS without recognizing the elephant in the room.  Amazon is a conglomeration of so many businesses across multiple industries and many companies in need of cloud services compete with them.  One could argue that by contracting with AWS as your cloud provider, you are in fact indirectly funding your competition.  Along the same line, many independent pizza chains switched from Pepsi to Coke back in the 80’s and 90’s to stop funding their chief competitor, Pizza Hut who at the time was owned by Pepsi. Many companies, especially those in the retail industry, are starting to question the wisdom of turning toward AWS.

Microsoft Azure

Microsoft has a history of being late to the game, but once they sit down to play, they go all-in and catch up quickly, oftentimes leaving their original competitors in the dust.  Azure is the runner up in cloud computing and Microsoft is pouring resources into the platform.  Consequently, its growth rate is outpacing that of AWS.   While AWS does offer Windows platforms, Azure does it better.  Azure can serve as a direct extension of your datacenter, allowing you to migrate to the cloud a little at a time instead of all at once.  It also makes backups and disaster recovery far simpler.  Microsoft will also allow you to transfer some of your existing on-prem licenses when you move to Azure.

As hybrid architectures have become highly popular, many companies are implementing Azure Stack, a turn-key solution that creates a single complete ecosystem for both your public and private clouds.  The advantage? You can easily manage resources within both environments through a single interface. This unified approach greatly simplifies software deployment as developers can deploy new applications to either public or on-premise as both programming platforms are identical.  A unified platform means your developers do not have to learn a new platform to create and modify code for cloud applications. Azure simply utilizes the same Visual Studio and .Net environments developers are already accustomed to working with. Applications can also be bounced back and forth between testing and production environments.

Google Cloud

Boasting the dominant internet search engine in the world has not provided Google with any inherent advantage for its cloud hosting services.  Google Cloud ranks a distant #3 in market share and has a long way to catch up.  One of its primary benefits is its lower price structure compared to its competitors. If you’re willing to commit long-term, you can expect better pricing and discounts.  Another advantage that differentiates Google Cloud is its openness for customization of compute instances.  On the downside, Google Cloud is criticized for its lack of support for native party backup services.  So who’s using Google Cloud? Currently it’s very popular among schools and other types of organizations that use Chrome devices. 

Other Cloud Considerations

When researching the big 3 cloud service providers, consider the size of your organization, application platforms and budgets:

  • AWS and Google Cloud are highly popular among smaller organizations, but Azure has a far stronger presence when it comes to enterprise customers.  Why? Microsoft has been serving the enterprise business community for most of its existence so they are very familiar with enterprise workloads and architectures. 
  • While AWS and Google Cloud had a clear advantage serving organizations that utilize open-source technologies, Microsoft now fully supports Linux, Java and PHP application platforms and provides complete open-source ecospheres for developers to test Linux and other open source components.  
  • Of course cost is always a big consideration, but an apples-to-apples cost comparison is difficult to determine since each company utilizes different pricing models and formulas.  AWS used to charge for computing by the hour while Azure charged by the minute, making Azure’s pricing more precise.  And AWS recently announced a change in its pricing to per-second billing. The cloud services landscape is ever-evolving.

Summarizing the Cloud

All three cloud service providers have their individual strengths and offer a solid product.  While there is no clear winner, Azure has some inherent advantages for many organizations that are hard to beat. 


Ready to Talk? Contact Us.

As online retailing continues to grow exponentially, retailers find themselves facing new sets of problems that weren’t indicative of the in-store shopping experience of yesterday.   Two weeks ago, Nike cited industry research that shows that roughly 60 percent of consumers are wearing the wrong shoe size.  This is a significant problem for the athletic shoe giant because many online shoppers overcome the challenge of finding a proper-fitting shoe by purchasing multiple sizes of their desired shoe online and then returning the ones that didn’t fit.  Trying on multiple pairs of shoes in the comfort of your home is definitely a great way to find the perfect fit, but it is also a very cumbersome and expensive solution. 

For one, it’s inconvenient for the customer to order and pay for multiple pairs of shoes and then go through the process of returning the ones that they don’t want. For retailers like Nike, it increases their cost since they have to process a much higher number of returns and credit customer accounts.

Technological Innovation Helps Better Serve Customers (and Improve the Bottom Line)

In order to save costs and better serve its customers, Nike introduced a smartphone app that uses augmented reality (AR) to perform a highly accurate scan of one’s foot utilizing a smartphone camera.  By mapping out a morphology of both feet, the customer is assured that the size ordered is the only one necessary.  This innovative technology builds the level of trust that shoe buyers have in Nike which helps solidify brand loyalty. 

What’s more, Nike saves the foot map results in the customer’s profile for later use.  This insight into the customer’s foot physiology has a number of business benefits for Nike including building personal relationships that retailers are striving to create with each customer in order to better succeed in a hyper-competitive retail environment.  Nike’s undertaking is part of a massive trend in the retail sector as 100 million consumers will shop in AR online and in-store by 2020 according to Gartner, Inc.

AI Helps You Learn About Your Customer

The first commandment of retail is “Know thy Customer.”  To better understand your customer, you need information and a way to process and interpret that information.  This is where AI and cloud service providers such as Azure come into play.  According to a McKinsey study, AI could potentially generate $4 billion to $8 billion in annual revenue for the global retail economy as well as $2 to $5 billion in consumer goods.  A greater insight into shoppers means a greater ability to convert them into regular customers.  That is the power of AI.  AI and the data gleaned can:

  • Increase promotion efficiency
  • Cultivate personal relationships with your customers
  • Innovate and develop new products
  • Increase sales transactions
  • Reduce customer complaints
  • Build brand loyalty

Chatbots and Azure

Chatbots are also growing more prevalent every day in the retail industry. Retailers are using Azure’s Bot Service and Framework to service customers more effectively and efficiently.  Modern bot software today relies on a growing stack of technology and tools in order to deliver increasingly complex experiences that users now demand. 

Gartner has stated that 25 percent of customer service and support operations will integrate chatbot technology by 2020, up from just 2 percent in 2017.  They also believe that within a few years, chatbots will power 85 percent of all customer service interactions.  In fact, by then, they predict that the average consumer will have more conversations with chatbots than with their spouse! Juniper Research estimates that by 2023, 75 percent of all chatbot interactions will be retail-based.  Why? Because the retail sector is one of the most promising sectors for automated agents with huge upside revenue potential. What’s better? Implementing this technology costs less in the retail sector. 

Many online shoppers have experienced chatbots first-hand; but chatbots aren’t limited to online commerce alone.  Large box retailers and shopping malls are integrating them in order to help customers locate and direct them to products on the shelf.   One example is the Mall of America that services 400 million people a year.  The mall’s chatbot is accessible through a number of alternative mediums and helps customers locate retail and restaurant establishments in real-time.  It can even makes suggestions or connect the shopper with a mall associate for additional information.  The integration of online AI-driven tools within the brick-and-mortar environment creates an omni-channel retail experience for the shopper in which they can experience consistent service throughout all of their shopping interactions.  This omni-channel strategy allows consumers to purchase wherever they are, whenever they want – and stay in constant communication.

Sentiment Analysis and Gesture Recognition

The ability to determine what your customers may want before they are even fully certain would be a huge competitive advantage for any retailer.  This requires the ability to understand the opinions or sentiment of shoppers.  The good news is that consumers today express their sentiments everyday through social channels, text messages, chatbots, tweets, online reviews, etc.  One of the ways that Microsoft Azure offers this capability is through text analysis. By analyzing these sentiments, retailers can fine-tune their suggestive marketing strategies when they come in contact with customers. 

Retailers are also integrating apps and kiosks into their stores in order to serve customers more efficiently.  Taco Bell was able to increase their average order transaction by 20 percent by encouraging customers to use its app rather than human cashiers.  Cinemark Theater’s use of self-service kiosks increased concession spending per person for 32 straight quarters.  Kiosks are even more effective when AI technology is integrated with facial and/or gesture recognition.  With facial recognition, frequent customers are instantly identified as they approach a kiosk or storefront. The technology then offers suggestions based upon known shopping history.  And gesture recognition enables shoppers to find their preferred products with a simple wave of the hand using a touchless device.

Moving Forward in Retail

No facet of retail has been untouched by the technological disruption in recent years.  AI helps give the insight you need to create seamless and effortless experiences with customers.  By better understanding your customers you help build customer relationships with your brand. Ultimately this brand loyalty reduces the likelihood that your customers shop elsewhere.  What’s more, the efficiencies that AI brings to your operations helps reduce costs that will add to your business’ profitability.  The digital transformation of the retail sector has already begun.  Now it’s time to fully embrace it. 


Ready to Talk? Contact Us.

How to choose the best tool for your business or IT project

Whether it’s a medical test, a college entrance exam or a fitness test, testing isn’t fun.  Software testing isn’t any different – it isn’t much fun for developers who manually test newly created code for a new application their team creates or updates.  It’s easy to omit testing, but impossible to have a viable software product without it. As much as we would like developers to just get it right the first time, it isn’t going to happen, and it’s not necessarily their fault.

Developers often have little more than an agile user story to work on. Confusion and complexity can grow as different visions of the product are expressed by multiple stakeholders. Developers can’t be expected to crank out an end-product and get it right the first time.  Couple this with the constant tinkering nature of an agile-based project, and it’s easy to understand just how important continuous testing is.

Manual Testing Doesn’t Cut It Anymore

The human nature of software development dictates the need for rigorous testing.  So why would you use manual testing that incorporates the human element as well? Consider the magnitude and scope of testing required today for different applications.  Tests need to be performed for a variety of environments and different data sets. For instance, a web application must be tested in multiple platforms using varying device types, browsers and form factors.  

Automated Testing Should be the New Standard in Testing

Automated testing can simulate workloads representing anywhere from one user to thousands of users; and it goes far beyond the limitations of manual testing.  And when testing is automated it can be conducted endlessly and unattended. There’s no fatigue and the cost is minimal compared to hiring manual testers. Quality assurance automation executes the full gamut of tests you need, when you need them and with increased speed and quality.  Another great benefit? It reports the outcomes and comparative results versus previous assessments.

Different Types of QA Testing and Testing Scenarios

There are many aspects to a successful application, and therefore more than one type of testing to accommodate them.  In the end of course, it’s all about determining if the code behaves as expected.

  • Unit Test – A unit test focuses on a single unit of code such as a function in an object or module.  These tests are short and quick to run. They are especially useful when modifying existing code.
  • Test-Driven Development (TDD) – TDD is more of a development process than a testing process.  TDD breaks up the project into small repetitive development cycles. A cycle represents a minimum amount of new code that must then pass a specific test.  New code is added only if the test failed and is then retested. This process not only creates error free code, but streamlines it as well.
  • Behavior-Driven Development (BDD) – BDD focuses on the business behaviors that the code is implementing.  This is the “why” behind the code. Also referred to as acceptance testing, it helps determine if the requirements for the end user as conceived are indeed met.

Popular Automated Testing Tools Today

Selenium

First released in 2004, Selenium is one of the most popular automated software tools for browser-based web programs.  It is an open source solution and thus has no licensing costs. It accommodates multiple programming languages including Java, Python, C#, PHP, Ruby, Pert and .Net.  Tests can be conducted within the Windows, Mac or Linux operating systems and it supports multiple browsers including Firefox, IE, Chrome, Safari and Opera. With Selenium, you can be assured that your web application behaves as expected under both normal operation flows and unexpected user behaviors.  

Behat

Behat is an open source BDD testing tool for PHP. It’s used to help define how your application should behave in different scenarios.  It utilizes continuous example-based communication between developers and business stakeholders that all parties can easily understand. Every application has a list of documented actions and Behat verifies them by auto-testing them against the application itself.

BrowserStack

Created for testing mobile web applications, it is a cloud-based automated testing platform that incorporates more than 2,000 environments including various mobile devices, browsers and operating systems.  It utilizes mobile emulators of both Apple iOS and Google Android and can be utilized for continuous integration or cross-browser testing.

Cucumber

Cucumber is another BDD tool that focuses on the end-user experience and can serve as a bridge between business and technical professionals.  It supports multiple languages including Ruby, Java, Scala, Groovy and .NET. Like Behat, Cucumber is written in the Gherkin format that uses simple English and is especially user-friendly to non-programmers. It’s so user-friendly that test scripts can be written by those without any prior coding experience.

We’re only scratching the surface here because new automated testing solutions are readily being introduced and expanded upon.  There is no “one perfect” tool out there as every environment is different. When choosing an automated testing tool, consider the type of tests you’ll be conducting, the language you’re working with and ultimately the type of application you’re looking to test. Automating the QA process will soon be mainstream, so it’s best to brush up on the various tools and start thinking about how you can implement QA automation in your company.

Not convinced you’ll get the ROI your business is looking for? Check out our QA Automation ROI Calculator to find out.


Ready to Talk? Contact Us.

Building the right cloud environment to meet business objectives

You’ve probably heard the old saying, “He’s got his head in the clouds,” right? Well today, businesses have a whole lot more in the cloud. According to a 2018 article in CIO magazine, 96 percent of businesses today now use the cloud in some capacity.  Businesses are using the cloud, but they are turning to more than one provider. 81 percent use a multi-cloud strategy.  Even SMBs are embracing the cloud. According to the IDC, more than 90 percent of companies between 100 and 499 employees used the cloud in 2018.  The fact is, cloud computing is a very viable alternative to on-prem computing, and while the two approaches have many things in common, it’s a different world up in the cloud.  Cloud computing utilizes different terminology and protocols supported by completely different architectures.

Multi-cloud, Hybrid Cloud, Hybrid IT

For a startup company today, the cloud is a natural choice, maybe even a no-brainer.  Since cloud computing is based on a variable cost model in which you only pay for the cloud resources you use, the cloud can save companies struggling for capital a great deal of capital expenditure.  The cloud is also perfect because it isn’t geocentric, thus increasing the flexibility and agility of the organization and its users. For companies that already have substantial investment in on-premise environments and data centers, it is unrealistic to simply transition everything to the cloud overnight.  In those instances, a hybrid approach makes sense. A hybrid environment incorporates both on-premise and cloud architectures. Despite the apparent simplicity in all of this, cloud terminology can become confusing so let’s break down some of the basic architectural terminologies.

Multiple Cloud Environment

As its name implies, this refers to the utilization of two or more clouds.  They could be two public clouds such as Azure and AWS or a public cloud and private cloud.  This includes both cloud computing and cloud storage in a single heterogeneous architecture.  The utilization of multiple cloud services offers great flexibility since some cloud environments are more suitable for particular tasks.   It also increases reliability and redundancy while minimizing the risk of vendor lock-in.

Hybrid Cloud

A hybrid cloud is actually a multiple cloud environment consisting of a public and on-premise private cloud.  A good example is Azure Stack which allows you to host resources and services both on-prem and in Azure from a single interface.  A hybrid cloud is ideal for companies that rely on cloud bursting in order to accommodate unpredictable workloads or must host some resources on-premise in order to adhere to industry or government compliance standards. The hybrid cloud offers the flexibility provided by self-provisioning on-demand capabilities of the cloud while retaining full control and management of data and applications when desired.  

Hybrid IT

Most companies that have an existing legacy infrastructure find that not everything in their enterprise is cloud-ready.  That is where Hybrid IT comes in to play. Hybrid architectures incorporate a traditional on-premise datacenter with one or more clouds.  This wide offering of architectures allows organizations to align business objectives with the best available IT solutions.

Azure vs. AWS

AWS and Azure are the two big players on the block when it comes to cloud computing.  AWS was the first cloud player on the market back in 2006 and its headstart gave it a huge advantage over any future competitors.  It would be years later until Microsoft would compete for market share, but the company has a history of entering late and turning up the burners to catch up.  Microsoft has indeed done that with Azure and its solution is growing at an exponential rate, although AWS is still sizably larger.

Both solutions have competitive advantages over one another.  For those companies that utilize open source technology, AWS has been the prime choice as Azure, up until recently, had a large void in open source.  If you are a Microsoft shop and already utilize Windows Active Directory, SQL Server or Visual Studio, then Azure is a natural choice for its familiarity and compatibility.  While Azure is extremely popular amongst C# developers, those who work with other languages such as Node.js, Python or Ruby on Rails gravitate to AWS. It’s also a predominant choice for those that work with Linux and other database platforms.  Azure has a strong concentration of enterprise customers as Microsoft has vast experience working directly with large companies. Much of the initial growth of AWS was due to smaller organizations although it has made great strides in the corporate market recently.

Cloud Computing Trends

Businesses aren’t looking for a specific cloud provider.  They are looking for solutions to business problems. Because no two cloud service providers are the same, companies will continue to utilize multiple providers in order to align business objectives with the best solutions.  

Other trends in the cloud computing market:

  • Up until recently, cloud computing was restricted to the DevOps world and testing environments, but more and more production workloads are being migrated to the cloud today.
  • Artificial intelligence (A)I supported by Internet of Things (IoT) sensory technology will continue to play a growing role in cloud computing due to its scalability and centralized architecture.
  • Voice interaction is becoming a major focus as developers greatly accelerate its use in apps.  Amazon holds a clear lead in this facet thanks to Alexa.
  • Both AWS and Azure are unveiling a serverless computing paradigm in which clouds simply execute snippets of code without bothering developers with provisioning underlying infrastructure.

When it comes to cloud computing, there is no “one” right solution, just as there is no absolute choice between Dell or HP when it comes to physical servers.  Cloud computing is simply about finding the best solution at hand, for the task at hand, and AWS and Azure both have the solutions to accomplish this.


Ready to Talk? Contact Us.

Top 7 Questions to Ask Your Next Development Firm (and the answers to listen for)

By Mansoor Anjarwala

So you have a development project you need to farm out.  Maybe it’s a mobile app for your customers or an enterprise business application for your business operations.  Whatever it is, you need a development team and chances are that means hiring a development firm. For those organizations who haven’t been through this type of hiring procedure, it can be a little scary, especially if you know little about the coding process.  Although you may not fully understand the technology behind the development process, you are still looking for the same qualities you would seek in any project management team. Below is a list of some of the key questions you should ask.

How do you go about understanding and developing a software project?

While you want to hire the most competent developers possible, you don’t want a team of programmers aimlessly writing code.  It is imperative that the team understands your business and is able to capture the vision of the project. A successful development team will have some type of methodology they use to transfer the information about your business to the team so it can comprehend the business problems the software is addressing and the goals and objectives it must meet in order to be labeled a success.

Who will be the ambassador on the team to communicate with?

You need a single point of contact that will serve as the liaison between you and the developers.  This is not the same as a sales person or an account executive. This person is usually someone in senior management that knows the coding process, understands business and has great communication skills.  It is this team leader that will be taking the time to learn about your business, discern project needs and convey them to the team. Having a single point of contact also establishes accountability and ownership of the project.  Make sure you ask how much of their time will be allocated to you throughout the project and how they prefer to communicate. It’s important that you and the project spokesperson have a sense of rapport since you’ll be working together as a team.

Have you worked on a similar project?

At the very least you need developers who are experienced in the required technologies.  An example would be experience developing for a certain platform such as iOS or Windows. But technology fluency is the bare minimum you should be looking for.  Ideally you want a development firm that has worked on projects within the same industry as this denotes a basic understanding of your business from the get go. It is best if prior projects they have worked on had similar application features such as those involving payment integrations or GIS mapping.  Consider someone who has worked with clients with a similar culture as your organization. Working with a startup company is much different than working for an established multinational corporation. Ask the development firm to see samples of some of their prior work. It’s easy to find works samples for mobile apps as they are readily available in online app stores.

How many developers do you have?

When it comes to software development, two minds are better than one. The smaller the firm, the tighter the resource constraints and the less potential bandwidth they may have.  On the other hand, a large firm may be more rigid to work with. Although your project may be assigned to a single developer, you want a firm that has multiple programmers on staff that can be made available for your project as there will be challenges throughout that may require a different lens or level of experience.  Time constraints at some point may necessitate other people coming into the project as well.

What is your scoping process?

Software development is an involved process.  You aren’t just going to be handed the final software package and that’s it.  The project has to be defined in order to accurately estimate the time, effort and costs of the project from start to finish.  Project scoping involves determining and documenting a list of project goals, deliverables, deadlines and cost estimates. It also includes technical items as well such as required features and tasks. When interviewing a potential development firm, find out what their scoping process entails. You will obviously want to see demonstrated progress at regular intervals to assess how things are proceeding. These deliverables should include completed shippable features that are ready to release.

Do you use automated testing for your code?

Another key question to ask your next development firm is about their QA process. If your development project is like any other, it needs to be completed as soon as possible.  Testing for bugs is an inherent part of app and software development. Used to be, developers had to conduct manual testing which added unnecessary time to the project as scripts had to be written, which also required a certain level of expertise that resulted in additional cost. Today there are automated testing tools. Developer teams use these tools to perform repetitive on-demand testing as the code is created. Aside from saving time and money, recurring testing processes increases the efficiency of the coding process and improves accuracy within the code itself.  

What project management methodology does your company use?

Most reputable development firms have a project management methodology; it’s important to ask a prospective development firm about the methodologies they use. There are two common project management methodologies used today in software creation: Waterfall and Agile.  The first, called Waterfall, is the more traditional management style, having been utilized for many years.  It is a linear approach that consists of multiple stages such as planning, design, coding, testing and product release.  Each successive stage cannot begin until its predecessor is complete. Usually this means that each stage must be confirmed by the customer.  Some refer to it as a slow and steady approach. It is ideal when the customer has a defined vision of the desired outcome. As a result, fewer changes or surprises will be incurred.  

A newer more modern approach is called Agile.  As its name implies, it is more flexible than Waterfall as it is more adaptable to perpetual changes.  It is designed to obtain continuous improvement throughout the project. Rather than a linear approach, it is more incremental and iterative.  It incorporates experimentation and some degree of trial and error. Rather than stages, the project is segmented into repetitive modules called sprints that are completed in a short amount of time.  Agile depends on a high level of customer interaction and solid teamwork. Designing and testing occur during every module, making it ideal for finding bugs and incorporating sudden code redesigns. Agile is ideal for projects in which there is no clear established vision or when the customer needs something quickly.

Although we have barely scraped the surface of the potential interview process, these questions are a good start to help provide a foundation to build from.  Software development is a costly endeavor when done right. Be ready to ask tough questions that will allow you to best discern the abilities of any outsourcing partner.  Best of luck on your project.

What is QA (Quality Assurance) Automation and what are the benefits?

Remember all of the papers you had to write in school and how your teacher always told you to proof your work?  Chances are you considered it a chore taking the time to review your homework with scrutinous attention. Or maybe you were one of those that never bothered to proof it. Proofing isn’t fun for most people. Most of us enjoy creating something far more than anatomizing it for mistakes and oversights.

The same is true for writing software.  Creating code is much more satisfying than testing it in most cases.  Unfortunately, just as the failure to proof a scholarly paper rarely resulted in a top grade, creating software without ample testing throughout the coding process usually results in software that is prone to errors and bugs.  That is why quality testing is so important. The problem is that manual testing is cumbersome and time consuming. As a result, it often isn’t implemented as often as it is required. Fortunately, there is a better, easier and efficient solution available today to take the arduous task of testing off your hands.

 

QA Automation – What is it?

Many developer teams are turning to automated testing tools to perform repetitive, on-demand testing of the code they create.  Rather than depend on manual testing that is executed by scripts that are also manually created, QA Automation executes the full gamut of tests you need, when you need them. And it’s done using AI (artificial intelligence) technology.  It also reports the outcomes and comparative results versus previous assessments. QA automation allows for demand-driven testing that is consistent and reliable in an efficient cost savings manner. All browsers and user environments can be simulated with QA Automation, allowing you to test each action step throughout the program in your web-based or desktop application.  Finally, QA Automation offers a high degree of flexibility. It can be utilized as your primary testing mechanism or utilized to supplement manual testing procedures.

 

The Benefits of QA Automation

 

QA Automation Increases Efficiency

There are some things that machines do far better than humans, especially when it comes to mundane, routine, repetitive tasks.  Imagine your top programmer testing and retesting the latest code created by the team throughout the day. Is the same attention to detail made at the end of the day as at the beginning?  Machines are ideal for testing code. They can do so a million times without any deviation to routine or neglect of detail. They are the ideal mechanism to test code.

Not only does QA Automation improve the efficiency of your testing processes, it does the same for your code development progression as well.  The perpetual ritual of testing and retesting serves as a constant interruption to the task that your developers do best – write code. Why distract them from what they do best when a machine can perform the testing process more reliably.  Any disruption to the creation process creates a bottleneck. QA automation eliminates those bottlenecks, freeing up your staff to focus on creating rather than proofing.

 

Improved Accuracy and Reliability

The pace of application development today is relentless, and is only increasing with time.  This unremitting pace also increases the necessity for testing. If a machine doesn’t care how many tests it runs, then your developers can increase the test schedule as well, integrating it into their routines so that it becomes a natural component of the build process.  Outcomes and outputs are no longer predicted, but confirmed. Because the recurring testing processes are consistent, greater accuracy is achieved, leading to greater reliability. All of this translates into more success whenever code is released to production. The business is happier when the cycle time to make code live is shorter.

 

QA Automation saves and money

The old cliché, “time is money” rings particularly true, especially when it comes to labor intensive practices such as code development.  QA Automation allows your developers to stay focused on creating code that adds direct value to the business rather than spending valuable time creating manual test scripts.  While you can utilize dedicated software testers, they cannot replicate the inexorable pace of automated testing. Money invested in automated testing is recovered quickly due to the drastic reduction or even possible elimination of manual testing hours.

Technology professionals know all too well that not every test is going to be a success, and with fewer tests runs, the more time it usually takes to remediate the bugs discovered in each manual assessment.  By increasing your test frequency using automation, you shorten the period in between those tests, making remediation necessities more manageable. With QA Automation, test frequency doesn’t directly relate to added costs.

Automating the QA process is a win-win for everyone involved in the software development process.  Your developers can stay focused on the task of creating and updating applications that generate value for your company.  The software they create is more reliable, and consistency means end users enjoy a better experience. All of this translates into lower costs, which makes executives and business leaders happy as well.

 


 

Ready to Talk? Contact Us.