ITH Logo New

Contact Us

By clicking “Let's Talk”, I agree to the ITH Privacy Policy

How to Plan for Your Big Mobile App Launch

Have you ever thought how many users may hit your mobile app once it goes public? As soon as the mobile app launch to the App Store or Play Store, it is available for the public to download and start using. But is your app capable of managing a sudden influx of installations and traffic? Any mobile app needs to be developed in a way so that it can manage high traffic for your big mobile app launch.

3...2...1...Tips for a #MobileAppLaunch Click To Tweet

At IT Hands, we recently developed an app that received 8,000+ users within one week from the launch. The app got 21,000+ users within the first 50 days. Here are some secrets on how we developed the app to manage such a large amount of traffic and still maintain quality performance.

There are many components to take into consideration during the mobile app development process. Most mobile apps allow users to connect with each other and also let the administrator manage transactions and activities on the admin panel.

A mobile app usually contains the following factors:

  • Mobile App Development
    • The mobile app can be developed using Native or Hybrid technology. Each technology has pros and cons.
  • Web Admin Panel Development
    • The Web admin panel allows the admin users or managers to see activities of users who are using the mobile app.
    • The admin panel is mainly developed using a web technology (PHP, Laravel, etc.) and shows all the activities recorded from the app.
  • Web Services
    • Web services are called middle layers and used to communicate the data flow between the mobile app and the web admin along with a database.
    • All dynamic content is updated or fetched from the database using web services.

When we talk about managing a huge user base, all the factors mentioned above need to be developed in a way so that performance does not fall when hundreds or thousands of users hit the app. The following points need to be reviewed and managed while developing a mobile app to manage heavy traffic:

Backend Server (Hosting server)

Improving the performance of the app depends on the performance of the server that hosts your database and Web Services (APIs). The server needs to be capable of managing the traffic easily. It needs to contain the hardware and the applications that are installed on the server.

The hardware needs to be configured well and should have free memory to run the processes. It’s always good to define the size of RAM and the type of server with your server specialists. It will help boost the performance.

At the same time, the server needs to be configured with service for caching the data. This helps further with the load on the server for the increased traffic after your mobile app launch.

Database Transactions

Database transactions are the most important aspect to consider while developing a mobile application. A mobile app usually communicates with the database via the web services. Web services connect with the database to send and receive data.

If the database is structured well, it will retrieve data quickly, which will help the mobile app perform better. A well-structured database helps with:

  • Saving disk space by removal of redundant data
  • Providing data access faster
  • Keeping data accuracy and integrity

The other important part is how we manage transactions with the database. Do we write queries that are slow to retrieve data? Do we create multiple joins while retrieving data from the database? Your query writing skills can completely change the performance of your app.

It’s important to write queries that help:

  • Specify the field name from which to get data (Don’t use select * from a table when you need access to only a few columns)
  • Use short queries instead of multiple joins (Multiple joins within the queries can take a long time to fetch data)
  • Search on the indexed columns

Long processes in Background tasks

From a user engagement point of view, it’s always good to put long running tasks in the background thread, so that the UI thread doesn’t get blocked. It will help app users continue working on their app activities without waiting for data to be processed on the front end.

 

Make fewer calls to APIs


Making a lot of API calls takes up a lot of the process in the background. If there are fewer calls to the APIs it will help run the mobile app effectively. APIs communicate with the database using the queries as mentioned above. So each call to an API will need to get a data result set. Depending on the size of data, and the time taken by the queries, this might slow the app response. So until there is a need, do not make calls to APIs.

 

Optimized code

Code quality also plays a key role in app performance. There are several points one should keep in mind while writing code.

  1. Avoid Creating Unnecessary Objects: Unnecessary objects cause the garbage collector to be called unnecessarily, which in turn eats resources needed to boost the performance of the application.
  2. Avoid Background Services: Background services should be avoided to keep running unless absolutely required, as they keep occupying the resources throughout their execution.
  3. Use Standard Libraries: Instead of implementing the same functionality in your own code, use the already-available resource.
  4. Use Optimized Data Containers
  5. Use Cache: Objects which are expensive to create should be implemented in cache. For example, if you have to display some images from the Internet, then you should hold them in memory to avoid downloading them several times.

Conclusion
Our team at IT Hands is made up of experienced app developers. We use Native and Hybrid technologies for developing mobile apps. As for that app we launched, after the launch, our client was thrilled because he heard very little from users. No news is good news when you do a big mobile app launch. The app worked as expected and the next phase will begin soon.

Contact us at solutions@ithands.com to get started on your big mobile app launch.

ReactJS vs Angular 2.0+

If you are comparing ReactJS vs Angular 2+ you are thinking about the future. That’s great! Let’s clear up a few things first. React is a library and Angular is a framework.

If you know what an MVC architecture is, it will be even easier to understand. MVC stands for Model View Controller. So, where Angular has everything built in, React is just a V, the View layer, and you have to hook it up with your models and controllers.

#Angular vs #React - what’s the difference? Click To Tweet

You will first want to understand the fragmentation of Angular before digging into details on the topic. Google refers to Angular 1.x as “Angular JS” and Angular 2 and higher as “Angular”. Where Angular JS was doing all the rendering on the client side, both Angular (Angular 1= Angular JS) and React (React = React JS) handle rendering on the server side.

When it comes to the web, picking either one of the options is a smart choice. There is not much of a difference between how they perform, but there are things that one does better over the other when comparing ReactJS vs Angular.

ReactJS vs Angular: A Comparison

Scalability

Angular, as a framework, is easier to scale. It has its own boundaries and checks on how things are done. With its clearly-defined boundaries it is easier to understand the right way of doing things. Following the best practices is easier in Angular, compared to React. In React, there are a lot of ways to do things that make it confusing to follow best practices. There are a lot of parts that you need to figure out yourself when using React, parts which are much more clear in Angular.

Compatibility with 3rd Party Libraries

With Angular, if you have an existing code with a lot of 3rd party libraries, you might have to rebuild everything, whereas React is very flexible. React can be used wherever you need it.

Community Support

React is easier to use than Angular. This makes it easier to contribute to the framework. React is one of the most popular frameworks on the web, and Angular is trying to catch up, but it is easier to find reusable code for React than for Angular.

Beyond the Web

React has React Native and Angular has Ionic for building Native apps for mobile devices. One can argue which is better than the other, but they are relatively similar. React Native is still considered faster and more stable.

Simplicity of Code

Angular goes with the template approach with HTML, which makes the code shorter and easier to understand. React, on the other hand, has the HTML written in JS, which can be confusing at times. Here is an example of how both approach the same problem:

React vs Angular in handling HTML

Loop through an item in React

https://gist.github.com/larryparitosh/54ea49565ec9ac1870c5a04381a02f48

Loop through an item in Angular

https://gist.github.com/larryparitosh/1ce65584e007b8344004e00dfe74b233

With Angular, there is a lot of boilerplate that goes into every component, which is lesser when using React.

React vs Angular Component

React Component

https://gist.github.com/larryparitosh/4aadf43bca3e481da1e9176d8da10fdf

Angular Component

https://gist.github.com/larryparitosh/cd6bdb6ebdac4d92ee9a9b0a71b751ae

Development Time

Development time in Angular is relatively fast, mostly because of the way it is structured. There is less confusion about the best approach to do certain things, whereas in React this can be tedious at times. Setting up a new project is faster in Angular with its boilerplate and CLI.

In React you can find many resources and projects that can help you do it faster, but it will still require a lot of experimentation. If you are planning to setup everything from scratch in either of the technologies, you will have to dig into a lot of things and get your hands dirty.

Code Size and Tweaking Performance

The size of React’s core file is smaller than Angular, and Angular (being a framework) contains a lot of code out of the box that you might not even use. React is a library, so optimizing the code is more flexible than Angular.

Debugging the Code

Debugging the code in React is much more effective because it catches errors with line numbers while compilation and Angular only breaks while it runs on the browser, which can be difficult to debug. Angular has two-way data binding, which can be helpful as you can send data from children to its parents, but it can give a lot of headaches while debugging. In React, the data flows just one way, making it easier to catch the break with ease.

Future

Angular 4 is the latest version for Angular. This is a huge step up from Angular 2. Most of the changes are behind the scenes. The update from Angular 2 to Angular 4 did not change how we code. So, what happened to Angular 3? Google internally faced a versioning number mistake in their build so they decided to skip the confusion and jump to version 4.

Facebook is working on React Fiber, which is an update to their core algorithm. This will improve the performance of React, add more support for animation, layout, and gestures by adding a lot of new functionalities for developers.

ReactJS vs Angular: What to Use
Both Angular and React are great with their component structure and the problem they are trying to solve. The choice between both can be based on your existing code, your needs and your developer preference. If you want an all-in-one solution, go with Angular, but if you want to incrementally improve your existing codebase, go with React.

At IT Hands we work with Angular and React. Got a project in either one? Contact us at solutions@ithands.com.

How to Redesign Your Website without Losing SEO

Congratulations! You decided to redesign your website. Making this transition is much like moving and can be just as stressful. There are so many features to pack up and you don’t want to leave anything valuable behind, especially your high-ranking SEO. Read on to learn how to redesign your website without losing SEO.

How can you transition that SEO to your new website? What will happen to the SEO of your current website? What about your ranking on search engines after the website is moved or redesigned? You don’t want to lose all the hard work you’ve put into strong rankings, organic traffic, and growing revenue.

Here are some ways to plan a move, so that you maintain all the benefits of former SEO and a newly-designed website.

Don’t lose valuable SEO during the website redesign. Plan your move with an #effectiveSEO strategy. Click To Tweet

Get an SEO expert onboard

First of all, SEO should be part of the design or site architecture, not something that is decided at the end of everything. So before you even think of taking down your old website, make sure to have the right team in place.


Wondering what questions to ask before the move, download our free Internet Marketing Questionnaire.

Audit your current website

The current website needs to be thoroughly evaluated in the terms of SEO; that means each and every page. This analysis can throw light on many things that are working for the website and those which are not working now for the website. This can help you spot any problems areas, in addition to enabling you to see which areas must be retained. Use the analysis to implement better SEO strategies and improve your content during the redesign and moving forward.

ITH-banner_SEO
 

Determine keywords

Do your keyword research on your site. What words and phrases are used the most and which ones bring in the most traffic? Create a list of important keywords that should be included in the site. Then build them into the pages of your redesign.


Our keyword research template can help you organize your keywords as you find them — and help you turn them into a content and SEO strategies that works for your business. Get yours here:
Download ready-made template spreadsheet for Free!

Plan the migration.

Benchmark the current status of the website. The major areas to be considered important are:

  • Ranking: Record the current ranking of each page and also note the list of keywords and search queries for which a page is ranking.
  • Indexing: Identify the content indexed by search engines.
  • Crawling: Verify blocked content with Robots.txt and 404 errors.
  • Links: List the inbound internal and external links to your site pages and make a redirect plan for it.
  • Traffic: Get the organic traffic information for each page and related keywords.
  • Configurations: Identify the site settings, sitemaps, links, crawl stats and problems in Google Webmaster tool/ Search console.
  • Prioritize: List your pages by best ranking, links, highest traffic and conversions.
  • Correlate: List the prioritized pages and add their updated URL version in the new site.

Implement the migration.

  • Prepare: List and Test 301 redirects.
  • Verify: Following the prioritized pages list, check the redirection.
  • Redirect: Implement the 301 Redirects at a page level from old links to new links.
  • Index: XML Sitemap Submit to Google webmaster tool/Search console.

Monitor the migration.

After the website updates are complete, keep tracking your traffic and your site’s performance. Use the data to continually improve your SEO.

  • Crawling: Crawling errors need to be checked in Google webmaster tool/Search console.
  • Indexation: New pages/links should index and old site links should disappear.
  • Ranking: Track it for possible new keywords.
  • Traffic: Monitor organic traffic volume.

Bonus tips to redesign your website without losing SEO:

  • It is recommended that if you have changed your domain name, you keep the old domain name with the 301 redirects for at least 180 days as a period of transition.
  • If the traffic for your website is seasonal, it’s best to launch during a down month, so if traffic dips, it won’t hurt leads or sales as much.

Optimizing your website takes a lot of time and energy, so it’s important that you don’t let all of your efforts go to waste when it comes time to revamping the layout and design of your site. Redesign your site with a clear SEO plan. Search engines like fresh content, and therefore, freshly redesigned websites. They like it when you redesign.

Follow these steps to carefully redesign your website without losing SEO and you may see an increase in both traffic and conversions.If like to know more how we do it at ITHands, contact one of our web designers or SEO specialists today at solutions@ithands.com.


IT Hands provides quality, custom web development services to web companies and ad agencies. Our globally-dispersed team is a tight-knit community focused on delivering excellent results using agile processes. In over 16 years, more than 350 clients have been thrilled by the competency, trustworthy consultation, increased capacity and cost effectiveness we bring to every project.

Meetings Every CEO Should Have Weekly

There are 3 basic principles for most (if not all) meetings that I schedule as a business owner and Managing Director (another name for CEO). All my meetings, to be effective meetings, should:

  1. be held weekly.
  2. have a group agenda.
  3. be kept to an hour.

Reasons for these three principles for effective meetings are as follows:

  • Weekly meeting: Weekly meetings fit into the work rhythm. Monthly meetings are easily forgotten.
  • Group agenda: This gives the team a voice to bring up points for discussion. Additional agenda points are added as important, not urgent, matters come up throughout the week
  • Brief meeting: Focus broad. Your job, as an executive manager, is not (usually) to get into the nitty gritty details, but rather to focus on leadership development, reporting, strategy, prioritization, and improving processes (or defining processes where they don’t exist).
Don’t waste another meeting. Follow IT Hands’ tips for #EffectiveMeetingStrategies Click To Tweet

Effective Meetings Outlines
Generally, I have five types of meetings on a weekly basis. There is a strategic day of the week that I have each meeting, as well as certain goals I want to accomplish during that designated time.

 

MeetingDay of WeekAttendeesAgenda
Business Development MeetingMonday

Managing the Sales Pipeline defines your future. Review priorities for the week.

  • Sales and Marketing Manager(s)
  • Sales pipeline
  • Lead generation
  • Inbound/Outbound Marketing strategies
  • Proposal reviews
  • Brand and messaging
One-on-OnesTuesday

Meet one on one with the frontline people in your organization. Coach, mentor, and inspire them!

  • You and 1 other person.
  • Challenges you are facing
  • Priorities
Operations “Managers” MeetingWednesday

There will be plenty to discuss in the middle of the work week. This is usually the height of project challenges.

  • Lead Project Manager
  • Head of HR
  • Quality Lead
Human Resource MeetingThursday

If you’re going to give someone strong feedback or need to terminate employment you’ll be doing it on Friday, so prepare a day ahead.

  • HR Manager
  • Recruitment opportunities
  • Retaining staff
  • Employment benefits
  • Performance reviews
Admin/ Finance MeetingFriday

This is a good day to summarize where the company is financially; at the end of the week.

  • Office Manager
  • Controller (Accounts manager)
  • Bookkeeper
  • Financial
    • Cash flow
    • Purchasing
    • Budgets
    • Accounts receivable
  • Office Environment
    • Improve infrastructure
    • Safe and clean environment

By the end of each meeting, team members should anticipate the next meeting with a purpose, feel valued in the company and have some clarity for managing their priorities. When I follow these principles, I see a tremendous improvement in workflow for me and my team. Give it a try. Email me with any further questions at solutions@ithands.com.

IT Hands provides quality, custom web development services to web companies and ad agencies. Our globally-dispersed team is a tight-knit community focused on delivering excellent results using agile processes. In over 15 years, more than 350 clients have been thrilled by the competency, trustworthy consultation, increased capacity and cost effectiveness we bring to every project.

Codeception: A Proven Automated Testing Tool

Testing is crucial prior to publicizing a software product. There are two types of tests: Manual and Automatic. Both have their benefits. For this blog, we’ll be doing a quick overview of the time-saving qualities in automatic testing, focusing on a great automated testing tool.

This automatic testing tool will enhance your software testing services Click To Tweet

Manual Testing: Time-Consuming
As the name implies, manual testing requires a high level of human resource engagement to test projects. It becomes more time consuming when there is a requirement to test the application/product on different platforms. This requires that the same steps be repeated to validate the expected result. If there’s a bug or defect, this process will be even lengthier, as the manual tester must repeat each step again and again. In short: manual testing takes time – lots of time.

Automated Testing: Time-Saving
Automated testing greatly reduces challenges and shortens the timeline for software testing by decreasing repetitive steps. You can define the steps of the test by writing the test scripts for any feature and allowing the test to run anytime. To write the test script, you have to choose an automated testing tool. Many automation testing tools are available, both paid and open-source.

Benefits of Automated Testing

  • Saves time
    • Executes tests faster than manual testing.
    • Targets multiple platforms at once.
    • Increases test coverage (deep test cases are very hard to repeat every time and here it has to be written only once).
  • Results in a reliable product
    • Ensures accuracy in testing (a tester can lose focus with repetitive steps making a feature prone to error).
    • Allows the development team to use test cases as they build a project.

What Tests Should Be Automated?

Time-extensive: Those features that are going to take time while testing.
Difficult or Boring: The features that are overly mind-engaging or mind-numbing to test manually.
Repetitive: Features that need to be executed every, single time a test is done.
Consistent (frozen) features: Features that are consistent/frozen and do not change.
High-Risk features: Those most important features that involve high risk, and need to be done precisely.

Codeception: An Automated Testing Tool

There are many tools available on the market. Codeception is an open-source, free-testing, automation tool built on top of PHPUnit. It is a Behavior Driven Development (BDD) style testing framework, using the Selenium Web Driver to execute the test cases on different browsers like Chrome, Firefox, or PhantomJS.

Installation

Codeception is very easy to install with Composer. You can find Codeception packages under Packagist, the PHP package repository (you’ll find installation instructions there as well).

To install Codeception, using Composer, use the following commands. Assuming you already have Composer installed, execute the following command:

$ composer require "codeception/codeception"

Once Codeception is installed on your machine you need to generate configuration directories and files by using the following commands:

$ vendor/bin/codecept bootstrap

The bootstrap command will generate the default directory structure in your working directory. Once this command is finished, it creates a tests folder inside your project folder, which contains different subfolders for unit tests, functional tests and acceptance tests, along with configuration files. Now we are ready to start writing test cases for our project with our automated testing tool.

Create Your First Test Case

Codeception comes with a rich set of commands that are pretty straightforward and easy to understand. To see all the available commands and options run the following command:

$ vendor/bin/codecept -help

Create Acceptance Test

To create the test case, use the generate:cept command on your console followed by the acceptance option and then the test case name. Here’s the command that will create our first acceptance test case with this automated testing tool:

$ vendor/bin/codecept generate:cept acceptance FirstTest

The above command will create a file under tests/acceptance folder with the name FirstTestCept.php. So now we can start writing the code in this file.

The following will be a default code inside the file generated by the codeception generate command:

?php
$I = new AcceptanceTester($scenario);
$I->wantTo('perform actions and see result');

Add Test Code Inside the File

?php
$I = new AcceptanceTester($scenario);
$I->amOnPage('/');
$I->see('Home');

Before executing your first test case you have to do some configuration changes. To change your acceptance.suite.yml file you need to add any working url under the PhpBrowser url option.

class_name: AcceptanceTester
modules:
    enabled:
        - PhpBrowser
            url: http://localhost/project_name
        - HelperAcceptance

Run Your Test Case

$ vendor/bin/codecept run

This command will run your test and show the result if it passed or failed with colors indicating – pass (green) or fail (red). In order to test on real web browsers, use the Selenium driver, make a few changes to the acceptance.suite.yml file and rebuild the Acceptance class. Codeception includes a lot of functions to write full scenario test cases. For more details check Codeception official documents.

Cest-Formatted Tests

Previously, we created an acceptance file with the Cept format, but that is not the only the way we can create test cases in Codeception. Cest tests are also available in Codeception. The basic difference between those is that in the Cest format you can write multiple test cases.

Input this code:

$ vendor/bin/codecept generate:cest acceptance SecondTest

This will create a file inside the acceptance folder with the name of SecondTestCest.php and the following is a default structure of this file.

class SecondTestCest
{
  public function _before(AcceptanceTester $I)
  {
  }

  public function _after(AcceptanceTester $I)
  {
  }

// tests
  public function tryToTest(AcceptanceTester $I)
  {
  }
}

The before and after function do as their name implies, run the before and after test cases written in the file.

Conclusion

At IT Hands we have found Codeception to be the right automated testing tool for past and present projects. It’s been a good choice for us and we highly recommend it to any other company looking for automated testing.

Are you in need of some automated testing for a current project? Contact us today at solutions@ithands.com.

Benefits of FTEs: A Better Staffing Model

In the web business, there are two common approaches for engaging clients in project development: Fixed Cost or Time and Materials. Yet I would recommend another, often overlooked method: the Full-Time Equivalent model (FTE). There are many benefits of FTEs.

What is an FTE model?
A Full-Time Equivalent (FTE) is a unit that indicates the full workload of a single team member across various contexts, often measuring a person’s involvement in a project. An FTE of 1.0 is equivalent to one full-time person, and an FTE of 0.5 equals half of a full workload.

It is common for FTEs to be available for commitments of half-time (80 hours/month) or full-time (160 hours/month). If a client needs additional FTEs, they can be provided with a mutual agreement and proper notice. Other team members such as a frontend developer, UI/UX designer, tester, network support, or solution architect/consultant could be available on an uncommitted basis and billed per hour.

This outsourcing model helps IT companies scale their business with less risk. Find out how. Click To Tweet

Benefits of FTEs: Why
When a software company expands resources for a project, having an FTE minimizes risk. If you’re facing a project where the client does not have details planned out, having an extra pair of hands on board for a set time and price may be the best option. The person will be under contract, and under your direction, like any of your own employees. At the end of the project, with proper notice (usually around 30 days) to the web company that the developer belongs to, you can be less one pair of hands without the hassle and negative effects of laying off an employee.

Benefits of FTEs: When
You should consider investing in an FTE if you have:

  • a strong, trustworthy relationship with a partnering Web development company.
  • a large, in-depth project in your hand which will keep 1-2 people busy for at least 6 months.
  • considered hiring employees to do the work.

Benefits of FTEs: Company and Client Responsibilities

The following describes the responsibilities of the web company that provides an FTE and your business on the receiving end.

 

Web Company’s Responsibilities

Your Responsibilities

Healthy Outlook

The company is responsible for minimizing distractions to the FTEs and providing a task-friendly environment.

Prioritization of Workload

You manage the employee like your own, providing priorities for project work or maintenance and support.

Skilled Resources

The company is responsible for replacing an FTE with an equally-talented, sufficiently-skilled person in the event the FTE is no longer available.

Daily Workload

You are responsible for assigning enough daily work for the FTE to fulfill the full-time (or half-time) commitment.

Available & Responsive

In addition to dedicated FTEs, the company’s leadership team is available to aid clients with any challenges.

Performance Assessments

You provide evaluations and written feedback to your FTE, so the employee can improve the quality of work.

Performance Challenges

If an FTE does not do quality work or try to improve, the company will provide a sufficient replacement.


If adding an FTE to your team seems like a good fit for your business, turn to your trustworthy, outsourcing partner. If they don’t do FTEs then Contact us to ask questions or start an FTE contract.

3 Acronyms Your Clients Should Know: UAT, UAP and SLA

Every web company owner is at risk for a common (sometimes devastating) ailment – the “never-ending project.” This dangerous scenario can be prevented by simply educating your clients on 3 acronyms: UAT (User Acceptance Testing), UAP (User Acceptance Period) and SLA (Service Level Agreement).

There may be only one client incessantly insisting that you invest your time in a project that began years ago. But even one is too many.

This maddening malady infected a CEO friend of mine. He told me of a client who would continually request improvements, rework the project, and reach out with constant calls for urgent help. This client was nearly the death of the man’s business, but three acronyms provided a cure.

The “never-ending project” threatens to ensue when the client has a different vocabulary than your team. To start off strong, when a client first walks into the office or has that initial online meeting, introduce them to the language of your office. If you don’t already, you will soon want to have the following three acronyms in your team’s terminology: UAT (User Acceptance Testing), UAP (User Acceptance Period), and the SLA (Service Level Agreement). Having a UAT, UAP and SLA can work wonders for effectively ending projects.

Suffering from the maddening malady of the perpetual project? Three acronyms are the cure for your IT business Click To Tweet

User Acceptance Testing (UAT)

The first of the UAT, UAP and SLA triad happens once the QA (Quality Assurance) team reviews a developed project, the client (we refer to as the Product Owner) takes on the responsibility of testing and ensuring that the team met the project specifications. The goal of UAT is to verify that the team reached a successful solution for the Product Owner’s business. We provide a functionality checklist to direct the Product Owner in the UAT process.

This testing will occur multiple times as the draft and live versions of the software get tested. UAT can be done throughout the project, as modules are completed. As each module is built, the client will test it. After each module has been individually tested, then the client does a final UAT of all the modules.

This exercise for the Product Owner verifies that everything listed on a checklist functions correctly. An example being an eStore. This is how the process might go: The client is told to select a product, purchase it, and go through the checkout process. The client may also be told to perform another task on their website to make sure it is working as expected such as input contact info (phone or email), fill out other forms, or verify that upon completion of a form one is being transferred to the thank you pages.

User Acceptance Period (UAP)

The second of the UAT, UAP and SLA triad happens after the project goes live and the User Acceptance Period (UAP) begins. This time period is when the team is still available to fix any issues and when the project is transitioned into a “support and maintenance” phase. In short, it is a pseudo “warranty” period (but we try not to use the term “warranty” as it can be easily misunderstood). The UAP lasts for 5 days (or sometimes 10 working days, in the case of a very large project) and is a time when the client can rest assured that any defects or issues reported will be worked on immediately.

During this time we guarantee our team makes its first priority to fix any bugs/issues. After that time frame, the client is required to sign a maintenance contract if the client wants to ensure our team will be available to fix defects and build enhancements. Without a maintenance contract in place, a team is not assigned to the project. After the UAP is completed, the project goes into maintenance mode and all additional reported defects or issues will be managed per the Service Level Agreement (SLA) and billed accordingly.

In the case of a Mobile App, the UAP applies to Web admin only. A Mobile App is considered accepted by a client when it is submitted to the iOS App Store (or Google Play store) and a maintenance contract needs to be in place before additional releases are worked on.

Service Level Agreement (SLA)

The final part of the UAT, UAP and SLA triad sets the client’s expectations. The Service Level Agreement helps educate a client on the following:

  • Prioritization of tasks/issues
  • Speed of service
  • Correct way to communicate

The SLA will explain the difference of priority given to regular customers and uncommitted clients. This frees you, as the Web development company, to prioritize long-term investors over that business with the “never-ending project” list.

Are you stuck with a project in continual crisis? Introduce these three acronyms to your team, then to your client. If you educate your client on these three acronyms – UAT, UAP and SLA – before any issues arise, then it will be easier to manage client expectations and ward off any perpetual project.

Have more questions on how we avoid the “never-ending project”? Contact us at solutions@ithands.com.

IT Hands has been providing quality, custom web development services for over a decade to web companies and ad agencies. We are an agile web development company taking advantage of a globally dispersed team to deliver excellent results. Over 350 clients have been thrilled by the consultation, competency, increased capacity and cost effectiveness that IT Hands brings to every project.

9 Effective Scrum KPIs

Whether a software development team uses Scrum or some other method to determine quality assurance, every project has to be evaluated and problems isolated, in order to improve a team’s quality of work. Similar to other development methods, there are effective Scrum KPIs to keep the delivery team and client on the same track.

In Scrum, sprints give the team a chance to set an achievable goal in a designated amount of time. The purpose is then to have metrics that measure if the team has improved or is at least maintaining efficiency in their work. At IT Hands we use the following nine Scrum KPIs to keep our team accountable.

Want to improve team efficiency using Scrum? We have 9 KPIs that streamline our projects. Click To Tweet

Communication

Clear communication is key to success in delivering a project . The development team, scrum master and product owner must have honest and straightforward communication. Before any metrics or KPIs can improve efficiency, there must be openness between team members and the client.

Estimation Accuracy

This measurement helps the project manager understand the team’s ability to accomplish their set goals. It is a comparison of stories committed versus stories completed during the sprint.The Burndown charts are useful for this measurement, by showing the Ideal Situation and Actual Situation in the team’s estimated project delivery. More on Burndown charts later. As a team works together their ability to set achievable goals becomes more intuitive.

Velocity Consistency

Team velocity is a key planning tool showing the amount of work completed. It compares the story points completed in the last sprint to those completed in the current sprint. It’s very helpful for future sprint planning and Estimation Accuracy from sprint to sprint. Product owners may find it useful as well, as they can look back on previous sprints to estimate the average story points completed. This will give them an idea of how many story points to expect in the current sprint.

Process Refinement

Having a retrospective meeting gives the scrum team opportunity to discuss lessons learned and methods to improve the process. This is where they discuss previous sprints, Scrum KPIs and what can be improved in next sprint. A good scrum team will define a number of items that need to be improved, based on previous experiences. This is very important to review how the scrum team is improving the process and implementing any changes.

Quality of Deliverables

Delivering quality results to a project is the very purpose of a team’s work. Reviewing the quality of deliverables after each sprint keeps a team on track to continually provide value to a project. The goal is to give a functioning product to the project owner for review at the end of each sprint. Make the goals achievable (don’t attempt to create a fully-complete functionality in one sprint).

Logged Defects

The project log shows how many defects remain when a sprint is complete. All the defects are then broken down into different types. Once the customer looks at the product, the team will keep track of the problems. That way they will all be resolved before the end of the project.

Understanding Goals

Having the team on the same track with goals for the sprint is a huge part of successfully completing a project. Each and every team member should understand the purpose of the sprints and what is to be accomplished. The purpose of a sprint is always focused on the value to be delivered in the acceptance criteria of the stories.

Burndown Charts

Burndown charts are an excellent way to review the sprint and project progress. These charts clearly show how the sprint is going on a daily basis and if your project is on track.

  • Sprint Burndown: The Scrum team tracks their work by using the sprint burndown chart. This chart includes what they have committed to when starting the sprint and how much they have completed to date.
    graph 1
  • Release Burndown: This is used to track the progress of a project. A scope change can be easily tracked via this chart.
    graph 1

Team Motivation

If a team is not satisfied with a project or feeling inspired to work, none of the Scrum KPIs will help. Lack of personal drive will obviously result in low-quality deliverables, performance and commitment. A good project coordinator will sense these attitudes in the initial standup meeting, planning and review sessions. The role of the team leader is to ask questions in order to feel out each team member’s vision for the project. The end result will reflect back on the project coordinator.

Scrum is an efficient method for projects. It helps our team stay on task and set measurable goals. The sprints give us the opportunity to evaluate project goals along the way, which allows the project owner the chance to make decisions throughout the process. Want to know more about how our scrum process works? Send any questions to solutions@ithands.com.

5 Keys to B2B Relationships

Business is based on relationships, specifically B2B relationships. Not sales;Relationships. Don’t believe me? Gallup recently found in a study that 71 percent of B2B customers are indifferent or actively disengaged. That means 71 of your 100 customers don’t care about you, your business, or your product.

That poses a problem for potential sales, right? Sure. But it also points to a break in the B2B relationship with the customer. If there was value in the relationship to begin with, then wouldn’t interaction and involvement naturally follow? So here’s my question: How would a business build a bridge to all 100 clients?

As I thought of this, five key aspects to relationship building came to mind. Forget the high-energy sales pitches. Save yourself any emotionally-hyped advertising. Business comes down to relationships. Here are five foundations to building business relationships:

"#B2BRelationships Advice: Save yourself any emotionally-hyped advertising. Business comes down to relationships." Click To Tweet

The Test of Time
B2B relationships are cultivated over time. Think of your closest personal relationship. How long did it take for that relationship to be strengthened into what it is today? Many factors built the relationship – trust, transparency, honesty, and authenticity, right? But all those factors were tried and tested over time.

“Time will tell.”

That cliche phrase holds a lot of truth in it. The passing of time will prove whether a business relationship will work. The B2B relationships that last, that become the solid partnerships, will only form over years of working beside one another. When forming a business relationship, go into it with a commitment and long-term vision. There may not be an instant return on investment. If you go into the relationship with the desire for instant gratification, the other party will soon see through any insincerity. And then, it will only be a matter of time…the relationship won’t last.

Trust is Foundational
Without trust a relationship is not functional. A client will trust you when it is clear that the relationship is not a money-making scheme or a box to be checked.

Trust will be earned through what the client sees in you. It can either be built up through transparency, integrity and authenticity, or be torn down through ambiguity, dishonesty, and a false front. One follows the other. Trust is the foundation to the bridge that connects people.

Transparency is Crucial
What does transparency look like in B2B relationships? There are no masks in a partnership. Let people see who you really are. Show the other business you don’t have anything to hide. Be open about your goals and the costs of the projects. “Unknot the bowtie,” advises Jeff Durr, a Senior Managing Consultant with Gallup.

Be open when there is a struggle with the client or project. Straight forward communication means everything. Rather than pretend like everything is fine, a healthy relationship will share when there is a frustration or a misunderstanding.

Taking notes on a shared document will show them that you want your communication clearly spelled out. It eliminates any risk of forgetting key points during your discussions, and gives the client room to accept or change those points. A customer will stick around when they know communication is free-flowing and there are no fear of surprises.

Integrity is Key
Integrity means being honest, even when it hurts you. I once went to a client to tell them about a mistake made on a project. The mistake had cost the client money. Although there was no indication that the client knew about the problem, I had to let them know. After informing the customer on our own initiative we sent a check to the customer to reimburse the cost.

With integrity, you do the right thing even when people are not watching or may not even notice it. Bring it to light. Acknowledge it. Make things right. They will trust you even more.

Authenticity is Essential
No one can manufacture a deep care for people, but people will very quickly pick up if you are just there to make a profit or if you are truly interested in their welfare.

A client will know they can rely on you when you show them that their success is your success. When they hurt, you hurt. There’s no pretending. Authenticity will be validated over time, as you work with each other. If you don’t follow through on commitments, they will see through the facade.

Here’s the bottom line: The success of any business is deeply rooted in its relationships. Strong B2B relationships with clients create lasting partnerships. Here at IT Hands we understand how foundational these five key aspects are to any working relationship – in our own office and business to business. If you want to partner with a company that is truly committed to relationships, contact us at solutions@ithands.com.

IT Hands has been providing quality, custom web development services for over a decade to web companies and ad agencies. We are an agile web development company taking advantage of a globally dispersed team to deliver excellent results. Over 350 clients have been thrilled by the consultation, competency, increased capacity and cost effectiveness that IT Hands brings to every project.

CMS or PHP Framework: Which technology is better for my business?

Four features distinguish CMS from PHP frameworks. When setting out to build a website for a company, having the client understand these differences will make for a smoother road in development and website maintenance.

CMS and PHP Frameworks: Defined

CMS stands for Content Management System. As the name implies, CMS gives you, the business owner, the ability to manage the content of your website. Once the website is built you can login and access any functions. You can change text on a specific page, run an eCommerce store, add new products, manage inventory, change pricing and perform any number of functions once you get into the back-end of your CMS-based website. Then you do not have to completely rely on your developers to make changes to the website. The most popular CMS options include WordPress, Drupal and Joomla.

A framework is a user-written, custom code within a predefined set of rules. This allows developers to develop modules and applications using core library functions, with PHP as the primary programming language. It can also consist of other frameworks to add support for various features. Working with frameworks, developers can build a more customized website, but the site must be designed and maintained exclusively by the IT team. The actual users of frameworks are technical users. A non-technical user would get lost in the programming language and functions of the website. Popular PHP frameworks include Laravel, CodeIgniter and Zend Framework.

Four Differences in Features

To further understand whether to choose a CMS or PHP framework, consider four important features in building and maintaining a website:

CMS-or-Framework

The four functions of Security, Flexibility, Upgrades and the User Experience (UX) are managed differently in CMS and PHP frameworks..

#1.  Security
Today for an online business website or application, security is the biggest concern. Hackers try to find ways to attack a website, to destroy or to change the way the website looks. This can decrease the value of a business website.

Most CMS are open source and the code base is open to everyone. There are various communities who develop plug-ins, widgets or modules for CMS.  When developers find vulnerabilities they launch a newer version of that feature with a safe code. It is important to install a reliable plug-in on a CMS site, from trusted sources.

Websites developed using PHP frameworks are more secure in comparison to CMS. Since they use custom code, it is more difficult to breach their security. Most frameworks also have built-in functions for encrypting and protecting against common vulnerabilities including:

  • SQL Injection
  • Cross Site Scripting (XSS)
  • Cross Site Request Forgery (CSRF)

Conclusion: Well-developed PHP framework websites are more secure.

#2.  Flexibility
Based upon business requirements, your website may need to have various functions and integration with third-party applications. Sometimes you need your website to perform operations which are independent of each other and connect with various systems as well. For example:

  • Your website needs to integrate with a CRM, like Salesforce, to send contact registration data
  • Your website needs to connect with an order-processing system, like FileMaker, where your customer orders need to be processed independent of your website but the actual orders are generated from your website.

While CMS sites can have a variety of functions in applications, those applications are not very flexible. Since the applications are pre-made, creativity can sometimes be limited. A number of modules and plug-ins within a CMS website may require making a lot of custom development as well. Frameworks contain various library functions and can be easily customized based upon the requirements of the business.

Conclusion: When it comes to flexibility, PHP frameworks are ahead of CMS.

#3.  Upgrades
Getting your business website updated with the latest code functions is really important. Upgrades help with website security.

CMS has updates almost every month. The website should be updated with the latest upgrades as soon as it is available. Even if not updated, the website would function, but the site would not be as secure or user-friendly. The following are upgrades common in CMS:

  • Security patch
  • New features
  • Support for SEO
  • Support for new plug-ins

Frameworks do not have very frequent updates compared to CMS. Most PHP frameworks have updates regarding new features, but not every month. Some can go six months without updates and still be secure and functional.

Conclusion: In regard to upgrades, choosing CMS or PHP frameworks depends on the business owner’s preference regarding updates. Either choice has its benefits and drawbacks

#4.  User Experience (UX)
CMS are built with the website manager in mind. Most CMS make it very simple to manage the website content. The business owner can change information on the website without a problem. CMS mostly provides responsive themes so that any module or plug-in placed on the website functions on a mobile device as well.

A PHP framework usually does not have the default standard user interfaces, which makes CMS so user-friendly. But developers can create an interface using the available library functions.  CSS frameworks like Bootstrap or SASS can be used with PHP frameworks in order to develop a site for the best user experience. Users can develop responsive sites using these front end frameworks.

Conclusion: CMS provides the best user experience with less effort.

What’s best for your business?
So how do you choose between a PHP framework and a CMS for your business website? By now you understand the core functions of the two and have an idea about how they deal with Security, Flexibility, Upgrades and User Experience. As a business owner, you understand what is important for your business, and depending upon your business requirements, you can decide which technology is best.

The IT Hands team has enough experience and the skill set to help you define the right technology tool for your business website. Our team has competent resources on popular CMS including WordPress, Drupal and Joomla as well as PHP frameworks like CodeIgniter and Laravel. We understand the pros and cons of each technology solution and are capable of defining the right fit for your business.

Contact us:
We would be happy to answer any of your questions.