Coronavirus | 6 elements to minimize its impact on your business

Coronavirus | 6 Elements To Minimize Its Impact On Your Business

With the rapid spike in the outbreak of the coronavirus ( COVID -19 ), many aspects of daily and work life have been affected. This has had a direct impact in the way business is carried out. Face to face meetings are being frequently canceled with online meetings, call and email now becoming the preferred mode of communication. Many companies have shut factories, offices and major industry events like Facebook’s F8, the Geneva Motor Show, Google I/O and Mobile World Congress continue to be called off because of the outbreak.

We understand that with increased growth and coverage of the virus, many questions have arisen.

How to prepare? How can keep employees be kept safe? How can impact on business be minimized? How can continuity of business be ensured at this time of uncertainty?

Below we have listed 6 elements we believe can be added to your organisation to help minimize the impact of the virus on your business. Note that all 6 elements are interlinked and work best when they are combined. 

1. Preparation + Policy = Success


Great preparation is the key component of every good plan. During times of crisis, your organisation should look to its emergency/ disaster policies and guidelines. If your organisation does not currently have any of these policies, you should create them today!

What should be included in your policies?


Safety first rule:

  • Any individual who has any flu-like symptoms (regardless of them having the virus or being in contact with someone with the virus) should immediately let their supervisor know and stay home.
  • Personal health recommendations should be followed from standard reputable sources such as The Department of Health programs.
  • They must require a medical certificate showing that they do not have the virus to be allowed back into work.
  • Make sure that all staff are aware of the safety regulations such as washing their hands and no shaking hands. These must be enforced.

Communication channels:

Communication also needs to be at the forefront. Being able to effectively communicate and having a unified understanding of the current status, steps, procedures and action plans for the ever-evolving event is crucial for stability during this time.

  • Email, video call and messaging services should be available to all staff.

Digital Transformation:

  • Work from home allowance and capabilities.
  • If it’s not possible, the implementation of an A and B team to minimize the impact of the virus as they will take turns to work on site.
  • Cloud-based or remote server access to files, projects, accounts, etc.

2. Flexible Working


To help slow down the spread of the virus, many organisations will find that they will soon be working from home or be made to stay at home for a quarantine period as we have seen in Italy. This could be a mandated request by the government or organisation and you need to be ready. Apple, Atlassian and Google are just a few major corporations that have facilitated the option and, in some cases, requested to work from home. Adopting this premise and making sure that there are right procedures in place to facilitate employees who opt to or need to work from home will minimize the internal impact on your staff, company and day to day business activities.

Rewards:

  • Employees save time commuting from work and are able to dedicate more time to tackling their set work.

Challenges:

  • There will be the distraction of home life.
  • Lack of face to face communication will also present some issues for the standard 9-5 day.

How can the challenges be tackled?

  • Project management tools (Refer to ‘Workflow’)
  • Cloud-based software and services can be leveraged. (Refer to ‘Data Management’)
  • Communication can be carried out via email. (Refer to ‘Communication’)
 Each employees needs will be different as each employees personal responsibilities during their standard workday will be different.

How can these employee needs be understood?

A consistent online communication, engagement, transparency, availability and accountability channel should be in place for all remote employees, so that everything still runs smoothly.

3. Workflow


Transparency and visibility

This is crucial for you and your team. It will help lessen the physical divide and will help keep your team mindset synergized.

  • Make sure each employee has access to a digital, always available workflow management tool.  All staff, projects and tasks can be updated and assigned without the need for excel sheets or never-ending update emails!
  • Convert standard morning stand-ups to skype calls. Do no get rid of them completely!

    Available tools:
    Zoho Sprints, Jira, Trello, Monday.com, ClickUp

4. Data Management

Files, on files on files! Working remotely means you will need access to data, files or the ability to transfer files of all sizes easily and quickly. These important files should be accessible to all team members, regardless of location. This will ensure that projects run on time and productivity is not affected.

Best practice:

  • Be sure to backup or copy all important files onto a remotely accessible shared drive either on your server or cloud-based file hosting platform.
  • Start working and accessing files so if you are suddenly made to work from home, you will already be up to date and no files will be left behind.

    Available tools: Zoho Work Drive, Dropbox, Google Drive

5. Communication is key!

The above-mentioned points will work smoothly if your means of communication are in place.

How can communication be hindered when working remotely?

  • Forgetting to share important information to staff members.
  • Feeling like you can’t ask for help.
  • Feeling disengaged or left out.

How can this be tackled?

It is very important to encourage consistent communications. This is not only for work items, but your standard office banter or social media interactions. Keeping all employees feeling valued and part of the team is incredibly important when working remotely.

Email is the standard form of office communication. Send out group news/updates emails to make sure no important information is missed by staff members. Adapting messaging services, live chats and video calls is a wonderful way to bridge that communication gap in a more natural, free-flowing way. We are all working towards the same goal and its always great to see that being communicated with your team.

         Available tools: Slack, HipChatFacebook workplace, Zoho Cliq

6. Culture

Create a strong online culture where communication, feedback, criticism and rewards are in place.

How can a strong online culture be created?

  • Engage in consistent messaging with the team and listen to the team.
  • Take and pass on notes to adapt to the needs of the project.  
  • Take the time to have a phone call with individual team members to check up on progress and to check if they are having any difficulties.


Taking these elements on board is a big step in making sure your organisation is prepared and ready to adapt to the needs of tomorrow.

Infographic

Software Testing Myths to control quality of IT Projects

-Navneesh Garg-

The quality of software applications has become a key challenge for most IT project managers as the multidimensional and complexity of applications has increased over the last decade.  The key causes for this are the lack of software planning and inclusion of testing resources at the correct stage in the project, and also the appropriate test parameters to test.  The difficulty is compounded by some popular software testing myths which cause lack of focus on testing and poor application quality thereafter. Key software testing myths include-

  1. Testing is an avoidable cost
  2. Testing is too expensive
  3. Applications can be tested by developers or business users or part-time resources
  4. Testing cannot begin until the entire application is developed
  5. Testers and developers are rivals

Testing is an avoidable cost

Most project managers think that spending money on software testing is like spending money on insurance.  It gives you peace of mind but is an unnecessary cost, particularly if you do not use it. Based on personal experience, that’s not quite true. Per industry standard, though only 10-15% of users end up claiming insurance, benefits of software testing are recognized in 80-85% of projects.  So spending on testing definitely has benefits to the end quality of the application and ultimately improves the experience and increases end user satisfaction while at the same time reduces the total project cost.

Testing is too expensive

There is a saying, ‘Pay less for testing during software development or pay more for maintenance or correction later. Take your pick!’ Early testing saves both time and cost in many aspects. Lately companies have introduced innovative delivery models  to reduce the overall cost of testing for both for SME and Enterprise client. For instance software test specialist company AdactIn Group (www.adactin.com) has innovative delivery models like Software Testing as a Service (STaaS™), Packaged Testing, Smart Ramp-up and Down (sRURD™) and Nearshore testing which assists in providing excellent testing value at affordable rates.

Applications can be tested by developers, business users or part time resources

Software testing is a specialized activity which needs specific focus, mindset and a skill-set that the software programmer will not have. It is like auditing, you need a specialized auditor to check the work of the accountant to ensure every aspect has been covered. Similarly, you cannot get anyone who knows the application to do software testing. In my experience, I have seen numerous instances where applications tested by business users or part time resources failed due to lack of testing of negative scenarios or alternate workflows.  Thinking of alternative testing scenarios, trying to crash the software with the intent to explore potential bugs is not possible for a tester without the right skill-set, focus, and mindset that is inquisitive, and looking for faults.

Testing cannot begin until the entire application is developed

Most project managers leave testing to commence once the application is fully developed. This approach leads to two key challenges.  Firstly, testers may not have adequate time to plan their testing, and secondly defects are found later in the cycle leading to further application delays and overhead costs.  Starting testing early gives greater chance to perform static testing which includes reviewing of requirements and design docs and also affords enough time for testers to plan and be prepared for their testing during execution phase. The cost of finding defects earlier in the lifecycle is much less than finding and fixing defects in later stages, often by up to 40% if found early rather than in the latter part of the software development process.

Testers and developers are rivals

Actually, the testers and developers work side by side in a team, and if there are any disagreements, then they should be encouraged to resolve their differences in an open and constructive manner or ask for the business team for feedback on the implementation. There are dedicated professionals in both fields, and communication between the two is important.

Summary:

Software testing should not be treated an overhead, but a necessity, it needs to be part of the development cycle and not at the end of the development. The right people with an inquisitive mind set should perform testing, very much like an auditor, but someone who is going to highlight the issues and provide possible avenues to resolve software bugs.  Finally, software testing should be an integral part of the development phase with immediate action taken to resolve issues when they are at the modular level rather than the system level.

About Author

Nav Garg is the CEO of a leading test consulting company Adactin Group (www.adactin.com), headquartered in Sydney and an experienced Test Architect and consultant. He is also a published author of a books titled  “Test Automation using HP Unified Functional Testing” and Test Automation using Selenium with Java” which  has  consistently ranked amongst the top 100 books selling on Amazon in the software Testing Category. You can reach him on Navneesh.garg@adactin.com.

Java API: Backward Compatibility

What is a backward compatibility?

– Deepthi Halbhavi-

Backward or downward compatibility in Java API is a property of an API that allows older API usages to function without breaking their existing implementation when an API is modified.

An API Interface

Let’s look at the simple API example below.

Example:

The API consists of only one interface Foo with one method bar(), so the user that implements this API will need to implement the interface Foo.

The following class FooImpl implements Foo and implements bar() method.

Simple implementation for a simple API. But the things get trickier when a simple API is modified to accommodate new requirements.

Let’s check that out.

Modifying an interface

Now, let’s modify the Foo interface and add a new method fooBar() and see what are its implications on the implementation which is FooImpl!

A new method is added in the Foo interface and if the implementation is using the same API then it will fail in two ways.

  1. The existing implementation will not
  2. The existing implementation will not be able to use the new API and may not be able to use new features. Hence the implementation is stuck with the older version because of no backward

Approaches to overcome the above issues

Implement new API

Just implement the new API.

As we saw above, the API is modified so, FooImpl will just implement the newly added method fooBar().

Pros:

  • Keep up-to-date with the API

Cons:

  • Enforces implementation to be added for new the API which may not be required at the time of upgrade
  • Not all the API users would want to implement the new API
  • It is not backward compatible

Interface versioning

In this approach, any new modifications to an interface are put in a new interface. Which means create a new interface that extends the existing one and suffix it with, say _V1

Let’s consider the previous example and apply this approach.

This is the original interface:

A versioned interface extends the previous one

Now the implementation has a choice of how to implement when to implement. For ex:

  1. FooImpl implements new interface which is Foo_V1
  2. FooImpl implements Foo and FooImpl_V2 extends FooImpl and implements Foo_V1

 

  1. Do not implement the new interface Foo_V1 at all if there is no requirement to implement it yet

Pros:

  • Both of the aforementioned issues are resolved
  • Implementations have choice which version to use
  • Implementations have choice whether they want to implement new version at all
  • Fully backward compatible
  • Extend the previous implementation for the new API version

Cons:

  • Increase in the number of interfaces
  • If FooImpl_V1 is versioned and extends previous implementation then it cannot extend any other class even if you wanted it
  • May not keep up-to-date with the new
  • Need to be aware of the new API changes because it won’t complain in a form of compilation errors, hence leading to missing API

Using default method (Java 8 and above)

Java 8 introduce default methods in interfaces to provide backward compatibility. default methods allow interfaces to have implementation without affecting classes that implement such interfaces.

So, let’s use this in our example API to make it backward compatible

The default void fooBar() method provide default implementation and it won’t affect the FooImpl

class that implements Foo.

Pros:

  • Both of the aforementioned issues are resolved
  • Fully backward compatible
  • Keeps up-to-date with the new API with default implementation
  • Implementations have choice whether they want to implement new version at all
  • The implementation can extend another class

Cons:

  • Need to be aware of the new API changes because it won’t complain in a form of compilation errors, hence leading to missing API features

Three National Awards: What’s the Secret Sauce?

Over the last three weeks Adactin has been recognised in three very different forums for its performance. First, at the end of October the Australian Financial Review (AFR) placed the company in its ranking of Fast 100 companies, based on metrics it has monitored over the last three years. And then in rapid succession in mid November we were recognised by our industry peers by being placed second in the CRNs Fast 50 and 16th in the Deloitte Technology Fast 50. The CRN was specifically focused on the ICT sector while the Deloitte award is more catholic in its technology tastes. All awards are national awards.

It’s tempting to think that there is a secret formula for achieving the sort of company growth which the AFR, CRN and Deloitte have recognised. There is a formula of sorts but it’s not a secret one. In fact you might find it a boring formula and will want to tell us you have heard it all before. Maybe so, but for Adactin the following tactics lie at the heart of our growth strategy. None make any difference on their own, but when woven together they make for a compelling engagement with our customers and that is what we are all about.

Above everything else we strive for a reputation for excellence in customer service and to comprehensively meet specific customer needs, even when those needs appear at the last minute.

It’s similar but critically different – in delivering excellent customer service we measure our success by the degree of customer satisfaction achieved. And that measure is not simply a customer saying ‘well done’ or ‘we love your work’. It’s measured by customer retention. Will a customer stay with Adactin and place more work with us when the original task is complete? Most do.

Customers are people too. They need to be heard, and they need to know we understand what we have heard. So we take extra care when we bring people onto the Adactin team. It’s not enough to be a good technologist. Our team members need to be careful listeners, empathetic partners and disciplined practitioners too. Care in the process of vetting our staff and contractors prior to assignment on projects pays customer satisfaction dividends. Oh, it also means we have a spectacularly low staff churn rate.

Having identified the right people we are able to focus on speed of execution, and aim to deliver a response in days rather than weeks or months. When we combine this with innovative delivery models we are well on the way to exceeding client expectations, given these have been shaped by large competitors who are most often weighed down by complex processes.

The speed of response is enabled and reinforced by our membership on key service and procurement panels, both in the federal government and state government. A potential customer can take some due diligence assurance from our presence on these panels, but most importantly the panels shorten the time it takes to have a solution directed at a problem. That all goes to the drive for excellence in customer service. Adactin is a member of Federal Government panels such as the ATO, DTA and Defence, and is on the NSW Government 0020 and 0007 Panels.

Finally we stay on the wave of emerging technologies like digital transformation, (big) data analytics and artificial intelligence. These technologies increasingly solve problems for customers in short periods of time and for dramatically less cost than traditional technologies. We diligently apply ourselves to areas where we can harness new technologies to achieve customer satisfaction.

So, as you can see, there is no secret sauce in what we do. And it may seem like its textbook stuff. But the growth numbers speak for themselves and we are very pleased the AFR, CRN and Deloitte have been listening. Each award applauds this strategy and all those in Adactin who have been so focused on making our customers successful.

Page Object Model using Selenium WebDriver

Page Object Model using Selenium WebDriver

Author: Shiffy Jose

A Test Automation Framework is a collection of re-usable methods which helps in automating test process. The three most common automation frameworks for Selenium WebDriver available in the market are data-driven framework, hybrid framework and page object model.

Page Object Model (POM) is one of the robust design patterns in automating test cases using Selenium WebDriver when compared to other frameworks. POM framework reduces or even eliminates duplicate test code, supports code re-use and we can create tests with less keystroke. In this design pattern, each web page in an application has a corresponding page class. This confirms the better maintainability of such automation codes. An implementation of the Page Object Model can be achieved by separating the test object, the test scripts and externalization of data.

The process of the framework can be divided into the following steps. First step will be separating data from the test code. Data should be kept in separate file like Excel, Property Files or any type of file which can be varied from project to project. Once the data separation is completed, test automation can proceed further on creating the base page class where all the initializations are to be performed. This is flowed by creating page class corresponding to each web page. All the functions/methods relating to each page is written in the corresponding page class (this avoids duplication of code). So now is the time for test execution.

Test Execution is performed with the help of JUnit or TestNG. Each test case is taken into consideration then methods from the dependant page classes are called and assert method is invoked to decide if the test case is a pass/fail. This is the overall picture for the POM. For overall test case execution, we could even use build tools like ANT or Maven. Test Report for the entire test cycle can be generated using ‘XSLT Reports’ which provides complete test results.