Posts

Outsourcing IT? What to Look For in an IT Outsourcing Agency

Outsourcing is a great way to get things done at an affordable cost and avoid the hassle of adding more people to your staff. For example, you can delegate all of your IT maintenance requirements to an external IT firm instead of creating a new department for it in-house.

There are two opinions on outsourcing; some people believe it’s a great way to get the job done while others worry that outsourcing compromises quality and security. The quality of service depends on the competence of the firm you hire. Here are some things you should look for in an IT outsourcing agency:

  1. Substantial Industry Experience

Look at the amount of experience the company has before hiring them. Experienced establishments know how to interact with customers, understand priorities, and have a proven system in place. They are better equipped to deal with emergencies, unexpected delays, and last-minute changes. You can ask the company about their experience directly or look at the information provided on their website.

  1. Good Company Culture

IT companies often struggle to maintain a good company culture or work ethic, which can compromise the quality of service provided. Do some research into the company’s background to understand if their culture aligns with yours. This can be especially beneficial if you intend to maintain a long-term relationship with the outsourcing partner.

  1. Reputable Past Clients

Looking at the past clients and getting in touch with them can tell you a lot about the company. Ask the outsource partner to provide some referrals so you can discuss the quality of services provided with someone who has already worked with the company. Past clients will offer unbiased and straightforward information about the company. They will point out flaws and habits that you need to be wary of while highlighting the right qualities.

  1. Good Infrastructure and Technology

An IT company should have good infrastructure and technology. For example, you won’t want support from an IT company that still uses outdated technology and software programs. You won’t want to share vital information with an establishment that doesn’t have a robust and current security system in place. Make sure the company uses the best and most current technology so you can get the most consistent results.

  1. Strong Customer Support System

A reliable customer support system is the heart and soul of any outsourcing partner. Look for a company that spends time and effort on their customer support. There are many ways to identify a proper set-up; look for the characteristics mentioned below:

  • The partner offers multiple ways to get in touch. You can call, message, email, live chat, etc.
  • They provide a dedicated expert as your point of communication. You can go to this expert for all of your concerns.
  • They offer 24/7 support for emergencies. For example, IT maintenance and repair service will respond promptly if your system crashes, even if it is on a Sunday.

Good customer support is one of the most important characteristics to look for in an outsourcing partner.

  1. Wide Range of Services

Keeping track of multiple vendors and outsource partners is a drain on resources, which is why you should look for a company that can handle all of your IT needs. They should be able to provide on-site services, remote services, conduct new installations, dispose of old hardware, etc. If you can find a company that does everything you need under one roof without compromising quality, hire them.

At Number8, we help businesses optimize their operations with onshore, nearshore, and offshore 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!

The 12 Principles of the Agile Manifesto

The agile methodology started in the software development industry in response to the limitations of traditional software development principles. Eventually, companies realized that it could be used to improve project management, team management, and other such processes. Agile focuses more on individuals and interactions between different teams than processes or sophisticated tools. There are 12 core principles of the agile manifesto.

  1. Customer Satisfaction – Providing Early & Continuous Delivery

The Agile Manifesto states that developers and companies can achieve customer satisfaction by delivering products early for testing and feedback. Teams can continuously share their progress with the clients and incorporate their input into the product. The focus is on fulfilling client priorities and then focusing on other aspects of the project. This allows developers to adjust to the client’s changing requirements during the development process. Customers get a more refined product at the end of this process, and they’re more satisfied.

  1. Responding Positively to Change – Even During the Later Stages of Development

The modern business environment is fluid, and customer requirements change frequently. Traditional working models don’t adapt well to change, especially during the late stages. The agile methodology adapts to change quickly at every stage. Agile offers a simplified model for requesting and making alterations in the product design. There’s no formal documentation or approval required, which can speed things up.

  1. Frequent Delivery of Product Elements

Rather than forcing the clients to wait for several months, the development team can deliver the project in stages. You need to make sure every aspect is finished, tested, and styled appropriately. This gives customers quick fulfillment and offers assurance that their project is progressing as planned.

  1. Communication Between Developers & Executives

There’s often a communication gap between developers and executives. People who work on the project have more technical skills and knowledge about the product, while executives understand the business side of things. This can lead to miscommunication, delays, and other such issues. Agile requires everyone to be on the same page and maintain open communications.

  1. Trusting Developers & Teams to Do Their Job

Many executives don’t trust their workers to choose the right job, which results in micromanagement. Such micromanagement can hamper productivity and place unnecessary pressure on the team. Projects should be built around motivated and passionate professionals who understand their strengths. Self-organized teams are more efficient and content to work on every aspect of their projects.

  1. Face to Face Conversations

Essential instructions and project requirements can become lost in endless chain emails, which is why face-to-face communication is necessary. Executives should obtain feedback from the source and work with the team on the project. Virtual communications like video conferences can help in this process.

  1. Collocation & Pair Programming

Collocation is the process of making a team work from the same open area. Pair programming is when two programmers are assigned the same workstation. One programmer is writing the code while the other looks at the bigger picture. Both swap roles every few minutes. Both of these processes improve product quality and make teams more productive.

  1. Sustainable Development

No one can work continuously or at a demanding pace without experiencing some form of burnout. Agile methodologies focus on improving work-life balance and making sure everyone in the team is healthy. Product development is only sustainable if workers are allowed to get adequate rest.

  1. Self-Reflection to Improve Overall Performance

The agile manifesto is focused on the human aspect of development. The best designs come from teams who are committed, passionate, and happy to work. They also come from teams that are willing to look back at their past work and improve.

  1. Simplicity

The Pareto Principle says that you get 80% of the work done with 20% of the effort. Professionals should focus on the 20% and make sure that 80% of the work reaches the customer on a priority basis. You can then focus on the nitty-gritty and refine the project later.

  1. Self-Organizing Teams

Executives should give their teams some room to flex their creative muscles. The team has skilled employees who are experts in their field. Allowing them some independence will help product development and improve overall work culture.

  1. Adapting to Change

Agile means fluid and adaptive. You can only be agile if you’re willing to accept changing demands and requirements during a project. Everyone can plan for a perfect product, but you can only develop something substantial through trial and error. Adopting agile principles can help improve your team’s performance and productivity significantly.

At Number8, our philosophy is to empower our clients to produce better software, faster. We are experts in augmenting scrum teams with senior consultants that can help increase team velocity immediately. 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.

 

“Automated QA: Save time, use a web calendar handler!”

Number8’s very own Derick Arzu was recently published on Medium. Read the article on automated QA processes below.

Text boxes, check boxes, radio buttons, and other elements of forms are fairly simple to deal with when it comes to developing UI functional tests for a web application. But what happens when you want to write a test that verifies that the UI for a web calendar is working?

You are probably thinking that it can be easily achieved with a couple of clicks and validations, which is not only true but also the approach that led to the idea of a handler.

Before you discover how to make your automated QA team very happy, here are some reasons why writing a simple function or just a segment of code that deals with ONE specific calendar is not as scalable. Imagine you are a QA Developer at a company who is developing the websites for airlines A and B and your team is requested to create the automated test suites. Sounds quite easy, you will use the same code in both projects, nothing will need to be changed; until someone shows you the designs of the two web calendars each airline uses in their website.

Beginning with the obvious differences, airline A uses two windows while airline B uses only one; that surely represents a significant change in the code of that first approach. Another difference you might not have noticed is that airline B has a dropdown to change the year of the calendar, so that would mean a slight change in the method used to get the text of the displayed year. Those are two visual differences that will affect the way your bot interacts with the calendar and the DOM will surely surprise you with more.

Now that you are interested, the coding begins!

This handler was implemented in Node.js and uses WebdriverIO as the test framework that interacts with the browser.

You will find out that the framework has two functions ($ and $$) to fetch web elements. However, a hierarchy of classes will be created to manipulate elements, later on you will learn this is so that the handler can easily be able to cover many web calendar designs.

The main class is Element. Here is where, the method to obtain the fetch function is implemented, it has two parameters:

    1. selectorObject (required) which refers to an object with two properties; the first named selector , is a string that specifies the selector that will be used to fetch the element. The second is index, which is an integer that must be assigned to the object if the fetch result wants to be treated as a single element and not as an array of elements.
    2. additionalProperties (optional) is an object with any property that wants to be added to the fetch result. The subclasses of the hierarchy use this to manage how some data is obtained from the web elements, you will learn this later on.

Read More…

3 Secrets that Super Successful Companies Use for Fast Growth

What differentiates rich entrepreneurs from the average ones? Why do some businesses make their founders very wealthy while others make their founders struggle each month to make ends meet? Some people say its sheer luck — trying something at the right moment in the right place with the right people. And in part, there’s some truth to that.

However, there are some important things that average entrepreneurs ignore, and in the end this not only causes them stress but sometimes even their entire career trying to make a business successful.

As an agile software development company with decades of experience, we’ve had the opportunity to learn a lot by working with successful entrepreneurs. Here are three things we’ve noticed that successful companies tend to have in common.

3 Things Many Successful Companies Share

  1. A focus on the right type of growth.

According to Robert Kiyosaki there is a difference between being a self-employed business owner and super successful entrepreneur business owner. Kiyosaki explains that a self-employed business owner owns a job not a business.

Some examples are: the mechanic that opens at 9 am and some days has to stay until 10 or 11 pm working because he has many cars in line. Another example is the entrepreneur who starts a neighborhood market and becomes a slave to the business working 12 or more hours a day because he or she has to have everything under control. These types of entrepreneurs often end up getting burned out by their business.

These entrepreneurs tend to focus on internal growth. You hear these types of business owners saying: “this year our company grew 5%”. Their growth strategies focus on things like cost control, finding cheaper suppliers, or selling a little bit more.

Successful business owners with superfast growing companies tend to focus on external growth.

American businessman and author of “Your First 100 Million” Dan Peña is an expert in growing companies geometrically. According to Peña, there is no way that you can grow a company internally as fast as you can externally, and the only way to grow a company externally is through acquisitions.

Peña started Great Western Resources with a leased fax machine and an $820 investment in his newborn son’s bedroom. He quickly began making acquisition deals, buying other businesses in his same industry. After purchasing several smaller businesses and making a conglomerate he went public eventually making $450 million.

Look around at many of the big companies today. You’ll notice that initially many were start-ups that gained early traction by purchasing other businesses, finally becoming successful conglomerates.

Have your heard of Virgin Group? It’s a conglomerate with more than 38 companies inside. Owner Richard Branson clearly knows a thing or two about external growth.

Have you heard of Warren Buffett? One of the richest men in the world started buying stocks from different companies and now his own company Berkshire Hathaway is involved with nearly 100 companies.

Why would an entrepreneur want to grow 10% or 15% internally when it is possible to grow 100% or more externally?

  1. An Understanding of Compound Interest.

Jeff Bezos, the owner of Amazon and the richest man in the world with a net worth of over $100 billion collects a normal salary just like any other CEO.

Why would a person with $100 billion receive an annual salary of less than $100K? Because he understands the power of compound interest. High speed growth is often the outcome of reinvesting profits into a business. This reinvestment can include: developing new products or services, technological innovation, expanding operations to different countries, and focusing on growth.

Warren Buffett lives a similar simple and frugal life, with a focus on reinvesting his dividends in new stocks, acquiring more stocks from many different companies and developing the large conglomerate mentioned previously.

  1. An Ability to Harness the Power of Technology.

Remember the old cab companies that you had to either call or hail on the street? That is a thing of the past with technology companies like Uber transforming everything. Technology enables people across the world to request transportation in a convenient way, knowing who will come, what license plate and vehicle color/make/model to expect, etc.

How was Uber able to grow from being a simple cab concept to a $70+ billion company? The company leveraged the power of technology. Every business, regardless of the industry, should consider how to grow leveraging technology as an advantage.

As an information technology company with many years of experience, we’ve helped hundreds of clients leverage technology to become more efficient and increase profits. Interested in learning more? Let’s connect. Send us an email or give us a call and we can get the conversation started.

 

Q & A Best Practices

On top of delivering a project on time and within budget, developers must test for quality assurance upon completion to ensure stakeholders’ expectations have been met.

However, testing for quality after a product is built, usually results in far too little, too late. The agile model of software development encourages practicing quality assurance throughout every phase of the project. The agile way also prioritizes quality by making it the responsibility of every team member, not just the QA testers. As a result, the QA team coordinates efforts with the development team at each iteration, providing continuous testing.

Implementing a feedback loop is a fundamental step in the quality assurance process. In order to guarantee that the product meets all of the requirements (feature functionality, design, reliability, usability and efficiency), it can be helpful to enlist the perspectives of those with varying backgrounds. This can include those proficient in testing, business and or development.

Quality assurance testing can be both manual and automated. While both approaches are proficient at mitigating bugs, automated software testing is often more beneficial in that it is quicker and more effective at checking for code correctness. It’s important to remember that the goal of Q & A testing is to find faults within the software so that an error-free application can be delivered to the client.

The following are integral software testing methods when best practicing quality assurance:

Test Driven Development (TDD)

TDD works by building a project’s code around the QA tests. The programming team first designs and builds tests for functional code, and then creates code that will pass them. This development method helps everyone gain an understanding of the code’s purpose before development; guaranteeing the initial functionality of the code and effectively building in quality.

Behavior Driven Development (BDD)

Similar to TDD, in that the test is written before the code, BDD tests the behavior of an application under specific conditions. This is done with the end user in mind. As development progresses, BDD often proves to be more reliable than TDD. BDD is also written in English instead of code, allowing for a more streamlined feedback loop.

Acceptance Tests

Acceptance tests are simple pass or fail tests that check whether or not a feature behaves as it should. These are often automated to meet customer and business requirements.

Regression Tests

Once one feature is functional, regression tests ensure it’s stability throughout the software’s other modifications. As more features are built, these automated tests check that the others aren’t being negatively affected as a result.

Exploratory Tests

Exploratory tests are usually manual, in that a human operates the software looking for unknown unknowns. These tests are meant to identify new situations that the development or QA teams haven’t thought of.

Once a product thoroughly meet’s it’s intended purpose and performs well under pressure, the QA testing is complete.

At Number8, we believe in developing software that is user-friendly, reliable and completely functional. As a result, we are always recruiting talented QA professionals for quality assurance jobs on our team. To learn more about how we can help you complete and successfully launch your software project, contact us at 502-890-7665. 

6 Hackathon Innovations & Startups

Hackathons are known to be breeding grounds for innovation. Often put on by an organization or university, these collaborative computer programming events are a great way to empower young entrepreneurs and thinkers alike.

What is a Hackathon?

A hackathon takes place over a set period of time, usually a weekend. During this time, teams set out to develop a solution to a problem in the form of a prototype that they will then pitch to whoever is hosting the hackathon. While primarily coders participate in these hacking marathons, people from all backgrounds including designers and marketers are encouraged to be involved during the software development process. Often many successful applications arise as a result!

Here are 6 recent hackathon innovations & startups: 

E-Farm

E-Farm is a service that was developed at Be-Bound. It is online produce market that allows consumers to purchase directly from farmers.  Shoppers can source food from multiple farms and get to know the story behind both the farmer and their farm before their order is delivered to their home.

StartTalking

StartTalking is an app that connects users with counselors, coaches and doctors. Originating out of Kansas City’s Hacking the Gigabit City event, users can send messages, video conference or participate in group sessions with their providers from anywhere anytime. The app is secure, affordable, and guarantees privacy.

PowerWells

PowerWells came out of a Techstars Startup Weekend. The service provides light and mobile phone charging from electronic waste and commercial solar panels to those in remote communities that don’t have access to electricity.

Piece of Mind

Piece of Mind is a wearable device for patients with Alzheimer or Dementia. Created during an Angelhack, the app allows caregivers to monitor a patient’s movements in real time and prevents loved ones from getting lost.

EchoLoco

EchoLoco is an app that was developed during the Urban-X Hackathon. It provides audio maps for the visually impaired; helping them to safely navigate cities with the aid of real time cues.

CropSafe

CropSafe is an online platform that was created during an Angelhack in Dublin. It works to predict impending diseases and crop contamination by surveying plots of land via satellite imagery and machine learning. The service even offers solutions to affected landowners.

Our dedicated team of software developers at Number9 are located in Louisville, Kentucky. Together, with our nearshore office in Costa Rica, we have worked to launch countless software projects successfully. Contact us today by calling 502-890-7665 to learn more about what we can do to help you complete your project.

 

10 Agile Project Management Terms You Should Know

Whether you’re planning on managing a project the agile way, or just want to stay up to date on the latest developments in the field, here are 10 agile project management terms you should know:

1. Agile Manifesto

The agile manifesto is a great starting point for anyone looking to familiarize themselves with the agile methodology. The manifesto outlines the 4 values and 12 principles of agile software development and was actually created by a group of software developers in an effort to provide a clear and alternative set of processes for developing software. The agile way of doing things prioritizes individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. 

2. Scrum

A scrum is a daily stand up meeting with the sole focus being to review each team member’s progress on any given project. Scrums help to keep everyone accountable and on the same page, ensuring no one falls too behind or gets too far ahead in the development of a project.

3. Scrum Master

A scrum master oversees the development process and acts as a problem solver for the team; preventing roadblocks and enforcing the agile way of doing things.

4. Stakeholder

A stakeholder refers to anyone with a vested interest in the product. This can be the client, the end user, sales people, legal representatives etc. Stakeholders have an informative role in the development phase, and are critical in defining the project’s requirements.

5. Backlog

The backlog is the ever changing list of the software’s requirements. It’s not to be seen as a to do list so much as a prioritized list of desired features of the product provided by the stakeholders.

6. Story

The story tells the software system’s requirements from the consumer’s point of view. For example, as “a <type of user>, I want to <perform some task> so I can <achieve some goal.>”

7. Burndown & Burnup Charts

A burndown chart visually measures the progress of a project over time (the vertical axis is made up of the backlog while the horizontal axis represents time). A burnup chart displays completed work (the vertical axis shows the amount done over the horizontal axis, time). These charts are essential to inspiring the team as they work and help provide a realistic time frame for the project’s completion as well as a working scale of the project.

8. Feature Creep

While changes are expected, and certainly embraced in the agile way of doing things, the phrase “feature creep” refers to features that are added after development has begun. Adding too many features during the development phase can result in feature creep and software that is too complicated or difficult to use.

9. Timeboxing

Timeboxing is kind of like time blocking in that it assigns a specific time frame to accomplish a goal. The definitive feature of timeboxing however, is that the work stops at the end of the timebox, instead of when the work is complete. This is extremely helpful in terms of productivity, and controlling the scale of a project.

10. Sprint

A sprint is a short development phase usually lasting anywhere from 1 week to a month. Sprints help prevent projects from feeling overwhelming and allows feedback to be given at appropriate junctures.

At Number8, we help project managers connect with highly trained and efficient IT support to help reach company goals. 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!

Working Remotely? Try These 3 Things To Cultivate Work Community

Working remotely can present many challenges, everything from resisting the urge to fire up a movie and veg out, to feeling that creeping sense of isolation that comes from sitting alone behind the screen. As a company who promotes remote work opportunities, we’ve identified several ways to cultivate a thriving work community. Below are three tips that should keep your presence so embedded in the office, your coworkers will swear they hear your keyboard clicking away beside them even when you aren’t there.

3 Tips to Cultivate Work Community While Working Remotely

Tip #1: Be open to feedback.

One of the most important parts of forming any close-knit relationship is trust. The person on the other side of that monitor is most likely depending on you to complete a task. To your coworker, they’re placing a lot of trust in someone they can’t see. Put their mind at ease by telling them upfront that you’re open to feedback and willing to work through things. Making this clear initially will help them understand you share the same goal and will make them feel more comfortable as you continue to work together. Build trust by responding to feedback graciously. Every smooth interaction makes way for future smooth interactions.

Tip #2: Be humble.

If there’s one thing we all have in common, it’s our tendency to overthink things. When you work remotely, it’s easy to convince yourself that it only happens to you. Fear that you’re alone with your thoughts, and pride in your ability to handle things on your own can be a deadly combination that results in isolation! Instead, be humble and reach out to your coworkers with any questions or concerns you have. This goes a long way to cultivate trust. Your coworkers will feel more connected with you when you’re open with them, and in turn, they will be more likely to reach out to you when they have questions of their own. Once you realize you have friends ‘on the inside’ you’ll find it easier to tune out that inner voice that tells you you’re on your own. Remember that you’re in it together.

Tip #3: Get social.

In this age of social media, it’s easier than ever to connect. Find a few coworkers you feel comfortable with and send them a friend request immediately. Becoming connected on social media offers you and your coworkers the chance to put a face to the name that pops up in the inbox every day. Getting to know each other better in this casual manner strengthens your bond and your understanding of one another as you continue to work together professionally.

BONUS TIP: Live that meme and emoji life. A true favorite! There is great power in a well-placed meme or emoji when communicating with a coworker. Not only do they lighten the mood, but they also offer visual cues to help people understand your tone and intention, which is a wonderful thing in the absence of body language, facial expressions, and tone of voice.

At Number8, we provide high quality technical talent to businesses of all sizes and sectors. We specialize in application development, custom software, website development, mobile solutions, database design, client/server, web application development and Q/A testing. Learn more about what we do and how to get started with Number8 by calling 502-890-7665 today!