Agile Scrumban – Built on the Fabric of Scrum and Kanban

Scrumban, a hybrid of Scrum and Kanban flavors of Agile, offers the best of both worlds. Scrumban ensures that a highly versatile workflow management is achieved by integrating the flexibility and visualization of Kanban into the structure of Scrum. Scrumban thus offers a middle ground to the Scrum’s structure overhaul, and Kanban’s unstructured approach – making it useful for both development and maintenance projects.

To fully understand Scrumban, let us first understand the main individual characteristics of Scrum and Kanban.

Scrum

  • Small, cross-functional self-organizing teams
  • Work is split into a list of small deliverables, sorted by priority
  • Prescribed roles- Scrum Master, Product Owner, Development Team
  • Short fixed length iterations with potentially shippable code demonstrated after each iteration
  • Approach is to inspect and optimize the release plan, and update priorities
  • Retrospectives occur after each iteration

In Scrum, the work to be done for the next sprint is chosen beforehand, and the sprint is then locked till the work is done. And at the end of the sprint duration, the queue is empty.

Kanban

  • Workflow Visualization through Kanban Board
  • No prescribed roles
  • Limits WIP – limits the items in process at any given time
  • Measures lead time and optimizes the process to improve the lead time

In Kanban, the work keeps flowing, and although the size of the queue is limited, the items in the queue can be changed at any time.

Scrum and Kanban: The Divide

Both these approaches have their own pros and cons, and work on different ideologies. Whereas Scrum has a set of prescribed roles, Kanban has none. Meetings are an integral part of Scrum, while Kanban has no such requirements. Besides, unlike Scrum, Kanban does not have a fixed time limit for development.

Let us observe how Scrumban fixes this divide, and coalesces  an ingenious approach absorbing the best of both.

Scrumban

Introduced by Corey Ladas, Scrumban was initially developed as a method of transitioning a development team from Scrum to Kanban. However, it has evolved as a methodology on its own, combining the finest elements of both Scrum and Kanban.

Scrumban Methodology: Filling the Void

  • Scrumban makes iterations short and optional while imbibing Kanban’s approach of continuous workflow. Items are worked upon as and when they appear, with no prioritized and committed product backlog items. Prioritization on demand technique is normally used.
  • Scrumban has a definite team, but only requires roles as needed. There is no definite number, and roles are more specialized and less cross-functional than in Scrum teams. Team members are free to choose the task they like using the pull system.
  • Scrumban boards are used like Kanban for workflow visibility with the columns – ToDo, Doing, and Done. The board is persistent – only the tasks and priorities change.
  • Like Scrum, Scrumban involves daily meetings, however, embraces on-demand planning at regular intervals, rather than sticking to release-planning meeting or retrospectives at the end of the sprint like Scrum.
  • Like Kanban, Scrumban does not have a specific time constraint. Through the use of WIP limits on columns within their task board, the team limits itself. In Scrumban, a WIP limit is normally equal to the number of people in the team, but can be expanded based on work specifications.
  • Like Kanban, Scrumban relies on measuring the lead time and cycle time as the key metric to estimate the average time of completion of a specific task.
  • Feature Freeze is used in Scrumban when project deadline is near, which implies that the features the team already has for development can only be worked on, and no additional features can be added.
  • Finally, triage is critical as Scrumban does not embrace estimating. Scrumban triage enables termination of less significant features in order to complete essential features on time.

Scrumban definitely brings in the best of both worlds, however, application of Scrumban is not conducive for every environment and culture. Scrumban is apt for fast-paced processes or projects that require continuous product manufacturing with dynamic environments. Let us understand the applicability criterion for Scrumban.

Suitability of Scrumban

To sum up, Scrumban is ideally suited for:

  • Projects that involve great deal of unexpected change to user stories and priority reworking. For example- maintenance projects like event driven work or help-desk/support.
  • Teams focused on new product development or continuous management improvement.
  • Projects where Scrum is constrained by workflow issues, resources and processes.
  • Teams that require both structure of Scrum and flexibility of Kanban.
  • Transitioning to Kanban, where minor methodology changes are required to limit disruption.

Indubitably, when used aptly, Scrumban leads to better quality, reduced lead time, application of Kaizen and JIT principles along with waste minimization and process improvement. A word of caution is that before applying any methodology, it is imperative to understand the basic principles of all the agile methodologies currently in practice to determine the befitting approach for the project specific needs. The company and team readiness to adopt that approach also matters.

With skilled resources and expertise to understand the intricacies of various agile approaches, we at Astegic have developed a Scrumban Framework – SBDEFT (Scrumban Driven Engagement Framework for Testing). SBDEFT is developed with an aim to deliver the benefits of both the approaches, Scrum and Kanban, in a pioneering way in an outsourced context. Our experts are adept at understanding and implementing the approach that best suits your project, whether it is Scrum, Kanban or Scrumban. Moreover, our TRAF (Testing Requirement Analysis Framework) ensures validating QA /Testing requirements in the early stages of development to serve you with the best approach.

What is Scrum, and Why You Should Adopt It

Hirotaka Takeuchi and Ikujiro Nonaka introduced the term ‘Scrum’ in the context of product development in their article, ‘The New New Product Development Game’. By definition, Scrum is a project development framework that highlights teamwork, collective accountability, transparency and iterative progress towards a defined goal.

In the contemporary competitive environment, stakeholders are vying for speed to market, excellent product quality, and a quicker ROI. In addition, frequently changing business requirements need to be addressed continuously. This is where Scrum fits in. In Scrum, tasks are divided into shorter fixed timeframes of release cycles with adjustable scope to address frequently changing development needs. Scrum is unlike the traditional Waterfall Model that follows a step by step process to get a full featured product– a major drawback to which is that any changes added later in the SDLC would involve revisiting the earlier phases, and redoing the changes. Scrum saves this effort.

The Scrum approach is open to changes and welcomes change as long as they enhance customer experience. The Scrum dev team starts working with the product owner from early on to determine the minimum viable product or MVP, from which point on the incremental development proceeds till the full set of requirements is delivered. Scrum teams normally consist of five to seven members, and work is done in ‘Sprints’ with predefined timelines, resulting in a fully tested product with additional functionality.

The three key roles in any Scrum Team are:

Product Owner: The key stakeholder who is actively engaged with the Scrum team, and is business savvy with a clear understanding of what the product functionality should be. The product owner ensures that the expectations for the end product have been communicated and agreed upon, and can prioritize user stories for the product as required, along with making sure that any new requirements are not assigned during the Sprint.

The Scrum Master: The Champion of the Scrum ensuring that the Scrum team is productive and progressive. They may take up any role in the team to finish the task required to move the Sprint forward, and in case of any obstructions, Scrum Master follows up and resolves the issue. They also organize sprint planning and stand-up meetings, reviews, retrospectives to keep the sprint moving.

Developer/Tester:  Sprint teams consists of a mix of competencies working together, and the roles may rotate Sprint by Sprint. Testers, Developers, Database people, Support- all work in close collaboration to develop and implement the defined features and there are no set rules or defined job descriptions, rather it depends on what the team agrees upon. Overall, it’s a ‘whole-team’ responsibility to deliver the working software at the end of the sprint.

Let’s understand the entire Scrum Process in brief along with where the above roles come into picture.

The Scrum Process

  • The Product Owner creates a Product Backlog.
  • Sprint Planning takes place and based on the priority, the team imports items from the Product Backlog to the Sprint Backlog, and brainstorms on how to implement it.
  • Daily Scrum meetings are conducted to assess the progress and share the impediments.
  • At the end of each Sprint, delivery teams ensure the work is in a potentially shippable state.
  • Scrum Master ensures that Sprint is moving forward, tasks are being completed in time, and impediments removed.
  • Sprint ends with a Sprint Review, and a Sprint Retrospective to identify what went wrong and what went right.
  • For the next Sprint, the team pulls another prioritized chunk from the Product Backlog, and begins working.

The cycle is iterative and whenever the projects ends, Scrum ensures that the most significant work has been completed. So you get a viable product at a lower cost in a short time span.

Let us check the benefits that Scrum offers to businesses.

Benefits of Scrum

Overall, the Scrum Framework offers the following benefits:

Quick Deliverables: The involvement of the Product Owner to progressively elaborate the requirements and to set priorities along with providing real time clarification reduces the time to market. ‘High value and risk’ requirements can be delivered before the ‘low value and risk’ requirements, with every Sprint resulting in a working product that is potentially shippable.
Increased ROI: Daily meetings, regular monitoring, continuously imbibing market changes, and shorter predefined release cycles- all lead to increased ROI. Regular stakeholder feedback enables early corrections sparing a lot of time and money. Additionally, automation and up-front testing results in lower wastage and faster deployment, and thus a better ROI. Finally, if the product has to fail, it fails faster.
Superior Quality: Regular inspection of the working product, with daily testing and Product Owner feedback in the development process, allows for early visibility of the quality issues and necessary adjustments. Sprint reviews and retrospectives allows for continuous improvement and thus a superior end product..
Increased Collaboration and Ownership:The complete team works together on the entire project, and decisions are made in consensus. Sprint Planning meetings helps self-organizing cross-functional teams to set their pace and organize their work around the given business priorities, and further, daily Scrum meetings, Sprint reviews and retrospectives enhances team spirit and collaboration.
Enhanced Customer Satisfaction: Scrum enables organizations to change the project and the deliverables at any point in time, resulting in the most apt release. Scrum thus embraces changing customer requirements leading to increased customer satisfaction.
Better Project Control:  Regular feedback, the ability to address changing market demands, Sprint reviews and daily meetings offer ample opportunities to keep the project under control, and make timely amends.
Transparency: Expectations are effectively met with Scrum as the key stakeholders are actively involved throughout the project. Continuous inspection and adaptation, and total transparency are the real benefits of Scrum.

Given these benefits, it would not be an overstatement to say that if an organization adopts Scrum in its true sense, everyone involved will be able to discover the real benefits Scrum brings along.

At Astegic, we have developed a Scrum framework specifically crafted for QA and Testing stages of product development- SDEFT (Scrum Driven Engagement Framework for Testing). SDEFT introduces a set of best practices that create a flexible framework allowing consistent and predictable result delivery, resolving the critical client concerns of quality, agility, cost effectiveness, quicker ROI and speed to market.

Exploring the Business Value of QA

Transformative technologies are disrupting businesses as usual. Companies that fail to adapt and transform are likely to go out of business soon. Changes in regulatory policies and the technology landscape, globalization, rapidly evolving business needs, and dynamic customer demands have all necessitated the inclusion of robust testing programs across the application development ecosystem. As such, QA and testing services providers must offer testing services that can scale to support diverse application portfolios, and can quickly adapt to changing business needs. This has lead to a big shift in the testing realm, and in the role of QA.

The criticality of QA in ensuring the readiness of a product to go LIVE is well recognized by IT organizations. Traditionally, the role of QA was merely restricted to serve as a safety net that catches bugs at the bottom of the waterfall; but the introduction of Agile methodologies completely changed the scenario, whereby QA teams are involved throughout the SDLC process. Now, QA gets involved early on in the project, and largely influences the business metrics.

The value that QA brings to businesses can be summarized as follows:

Articulating Business Value in the Entire Testing Process

QA teams comprehend business objectives by involving all the stakeholders in the process. They play a vital role by asking relevant questions and getting the requisite clarity about the project requirements. They then map these project objectives to the business metrics or KPIs. These KPIs are then standardized and stakeholder feedback is imbibed by means of constant dialogue with the stakeholders. Based on the KPIs, a guideline for business process data is established. This lays a solid foundation for the work to be done in future, against which data captured from the actual project is reviewed and measured.

Overall, this ensures that KPIs are oriented towards the business goals, and business goals are tied to the testing process all the time.

Delivering Fast Business Value

Speed to market, high quality and reliability are mandatory to meet the expectations of a digitally empowered consumer.

To fulfill this objective, business driven QA teams work towards achieving maximum test coverage in optimal time with risk-based testing. Wherever feasible, the test artifacts from a previous release are reused. Additionally, historical data and pattern analysis is done to precisely and timely predict defects. Finally, with the adoption of Agile testing methodologies, CI, CD and DevOps; the overall delivery time has reduced, leading to a competitive edge for businesses.

Reduced Cost and Faster ROI

Businesses look for fast and scalable solutions while trying to keep cost to a minimum.. Early Lifecycle Validation or Shift Left testing performed by the QA team focuses on validation of the deliverables of upstream life cycle processes. This results in reduced effort and cost of fixing the bugs as compared to doing it at a later stage, ultimately leading to reduced time to market and a good quality end-product. Moreover,  progressive automation is assisting in further streamlining the release processes by initiating automation at an early stage, thus optimizing QA efforts, and leading to a faster end-product and hence quicker ROI.

Incorporating changing Business Priorities

The role of QA is critical in dealing with changing business priorities because the business impact of releasing a buggy or obsolete software is immense. Continuous Improvement in a timely demeanor is vital for responding to business changes, and QA is responsible to ensure these changes are imbibed via continuous communication with the stakeholders. QA also verifies that significant quality parameters are analyzed precisely to measure the outcome of key business strategies.

This provides us with an overview of the value that QA bring to the businesses. This value can be further increased when a company employs high-quality skilled testers who are also risk-aware. The future-businesses need testers that can help fuel innovation, are open to learning new techniques, and believe in customer-centric testing.

Investing in strong QA teams will ultimately strengthen business’ credibility in the market, as they are able to deliver high quality reliable products with lower costs and faster time to market. According to World Quality Report, there is an overall prediction that QA and testing budgets will soar to 40% of development costs by 2019,  and 52% of IT teams site higher amounts of releases as the reason for higher QA budgets.

Strategically investing in building a team of skilled testers will definitely help set high-performing companies apart from competition by enhancing user experience and engagement. Companies that neglect the role of QA will likely perish.

Cloud Computing- Part II

This is a two-part series:

Part 1: Cloud Computing: An Overview
Part 2: Cloud Computing: Testing in the Cloud

Cloud Computing- Testing in the Cloud

In our last blog, we observed delivery models or components of Cloud that offer ‘as a service’ capabilities. This is based on resource sharing ideology, whereby allocation and availability of resources is ‘on demand via the internet’.

In this part, we will consider the Cloud Model from a testing perspective.

Let’s begin by understanding the concept of Cloud Testing.

In Cloud Testing, apps utilize cloud computing environment and cloud infrastructure available ‘as a service’ for testing purposes to closely simulate the real world conditions and parameters.

With an ever-increasing number of apps moving to the Cloud, it has become imperative to develop a customized Cloud testing strategy that resonates well with the given scenario — when an application is built entirely on the Cloud, or when an application has been completely moved to the Cloud, or if an area of the application is in the process of moving onto the Cloud.

The focus of Cloud Testing hovers around apps, networks and infrastructure, including testing of functions, end to end business workflows, browser compatibility, testing under different network bandwidths, disaster recovery tests, backups, and storage policies. For this, apps business logic, offered virtualized infrastructure, network, data, and end-user experience management are significant parameters to be considered.

Now, with a basic idea about Cloud Testing, let us understand the different forms of Software Testing in Cloud.

Forms of Cloud Based Software Testing

Broadly, there are four forms of cloud-based software testing, each with different objectives.

1. Testing of a Cloud: Quality of Cloud is validated from an external view based on provided cloud specified capabilities and service features.Cloud and SaaS vendors as well as end users can perform this type of testing.

2. Testing Inside the Cloud: Quality of a Cloud is checked from an internal view based on internal infrastructures of cloud and specified cloud proficiencies. Here, testing can only be performed by Cloud Vendors.

3. Testing Across Clouds: This means testing service apps over the Clouds- Public, Private and Hybrid based on system level app service requirements and specifications. This is performed by Cloud based app system providers.

4. SaaS Testing in a Cloud: It assures quality of a SaaS in a Cloud based on its functional and nonfunctional service requirements.

Source: Cloud Testing

Let us now move to Cloud-based test environments that provides testing teams an increased control to build and execute tests. Based on the app requirements, apps are deployed to specific environments to validate their quality in a Cloud Infrastructure.

Cloud Testing Environments

1. Public Cloud Environment is best for data storage, app hosting, auto scaling for large apps, and on demand hosting for microsites and apps.

2. Private Environment is a little expensive for small organizations, but is best suited for highly regulated large organizations that need privately and securely hosted data. It offers more flexibility and greater adaptability.

3. A Hybrid Cloud Environment is best suited for large orgs that provide services for vertical markets requiring both customer interactions and privately hosted company data. Greater operational flexibility and scalability can be offered through hybrid environment.

Now, as we are aware of the Cloud types, forms of Cloud testing and the different types of Cloud environments, we can move on to the types of testing that can be performed in the Cloud.

Types of Cloud Testing

1.  Functional Testing: The aim is to meet the specified business requirements.It involves testing  all features and functions of the system including both hardware and software testing. The different types of functional tests can broadly include System verification Testing, Interoperability and User Acceptance Testing.

2.  Non Functional Testing: The overall aim is to ensure that the web app meets specified performance requirements. Few significant types of non-functional tests include Availability Testing, Stress Testing, Multi-Tenancy Testing, Performance testing, Security Testing, Scalability Testing and Disaster Recovery Testing.

After a summarized view of Cloud Testing, we should now understand the real benefits that Cloud Testing offers, and some of the associated challenges.

Benefits of Cloud Testing

Let’s list down some of the benefits Cloud Testing offers:

Dynamic Availability of Test Environments: A Cloud-based service can meet the changing business requirements near-instantaneously due to the dynamic availability of testing environments that can be customized.

Reconfiguration and Tear-down: In Cloud, a test bed can be created almost instantly, and virtual infrastructure can be easily reconfigured or completely decommissioned. Further, environments can be cloned for parallel testing efforts.

Automatic Software Integration/Updates: Whereas software integrations occur automatically, Cloud also allows for easy customization. The best part is that vendors take care of the servers and roll out security and software updates saving your time, effort and costs to maintain the system.

Cost Savings and ROI: The reduced cost of infrastructure equipment management and maintenance helps in faster time to market and increased ROI.

24×7 Access: QA teams in different time zones and geographic regions can easily access the information anywhere, anytime, allowing for increased test coverage.

Viable Payment Options: Usually, orgs get the flexibility to pay as per their business cash flow- One-off payment, Scalable models or Pay-as-you-go options are normally available. The most common is metered subscription model.

Better Collaboration: Cloud-based tools enable continuous collaboration among the remote and local teams. The real benefits of DevOps can be truly accrued through Cloud allowing for configuration of similar development, test, and production environments, easy deployment, redeployment, and reconfiguration of apps and services, along with remote monitoring from varied locations. Critical updates can be shared in real-time.

Overcoming Fragmentation Issues: Through Cloud, varied device types, configurations and screen sizes can be tested across a variety of testing platforms. User-centric environments can be emulated through customization.

Scalability: The computing resources can be increased or reduced as per the need. This is especially helpful within the context of altering business requirements.

Reduced Recovery Time: Disaster recovery is cost effective with reduced recovery times as the complete server can be bundled quickly as a single composite entity on a virtual server.

Overall, Cloud testing offers better collaboration, virtualization-based benefits, speedy testing, reduced management and maintenance efforts, and faster time to market.

Challenges

Here’s some of the challenges associated with Cloud testing:

Security and Privacy issues: As everything is on the Cloud, and services are being outsourced, security ranks as a topmost concern for businesses. The major issues that need to be tackled include user privacy protection, data integrity issues, service availability, and setting up robust security standards for Cloud.

Data Migration: Moving from one Cloud provider to another can be  a big challenge, especially when both have different database schemas. And businesses are quite uncertain about interoperability of the apps hosted on the Cloud.

Upgrades on ad hoc basis: When users are notified about the upgrades at a very short notice, validating the changes manually for your SaaS app becomes a huge problem. Likewise, live upgrades may impact the existing users.

Performance Issues: The network bandwidth offered may negatively impact execution and delivery of complex apps.

Replicating the User Environment: It is not always possible to get the right configuration to emulate specific customer environments required for testing purposes, as the Cloud service provider may not support the same.

Testing Expertise: Keeping the testing needs in view, testers are required to validate the interaction across various components and layers along with anticipating risks like connection losses, crashes and so on. Anticipating and testing beyond the aspects under control in the existing environment is a challenging task for the testers. For this, testing expertise is required, and lack of expert resources is a major concern in Cloud Testing.

Though these challenges are real, it is important to address these to ensure effective and secure operation of business apps on the Cloud, so businesses can gain a competitive edge in the market.

After getting to know all about Cloud, it is time to formulate a test strategy, plan the infrastructure required, choose an efficient service provider, check the SLAs, and execute the test. Happy Cloud Testing!!

Cloud Computing- Part I

This is a two-part series:

Part 1: Cloud Computing: An Overview
Part 2: Cloud Computing: Testing in the Cloud

Cloud Computing: An Overview

Cloud Computing has opened up new avenues for the testing world, especially when business applications are growing in complexity, making it no longer feasible to build and maintain capital intensive in-house testing facilities that can mimic real-time environments.

Cloud Computing offers companies to utilize applications and other resources stored on high-end server computers and networks managed by third party vendors. The services offered are capable of handling almost any business demand from varied testing and development environments to full-scale enterprise platforms at a reasonable cost with on-demand flexibility, enhanced collaboration, higher efficiency, and an optimized approach.

In this part, we’ll discuss some of the main types of delivery models or components of Cloud that offer “as a service” capabilities:

Infrastructure as a Service (IaaS)

IaaS constitutes the basic layer of Cloud. Customers are offered pre-installed and configured hardware and software through a virtualized interface. Pay-per-usage is the normal approach, typically by the hour, week or month.

Computing infrastructure resources offered includes server resources, network resources, and storage capabilities ensuring persistent data storage. IaaS providers host users’ applications and manage system maintenance, data centre management, backup, and resiliency planning.

Overall, the benefits of IaaS model may be summarized as:

  • Offers access to enterprise grade IT resources and infrastructure
  • Saves ownership cost and capital expenditures
  • Reduces cost through Pay-per-usage
  • Offers flexibility of scaling infrastructure up and down as per demand
  • Reduces time to market the product
  • Offers better security

However, users shall be required to monitor their IaaS environments carefully for being charged unfairly or for unauthorized access. Also, users are responsible for all aspects of VM management. Additionally, the services must be checked for efficiency and reliability before finalizing the deal, as users’ workloads may be highly affected if the IaaS provider experiences downtime quite frequently.

Platform as a Service (PaaS)

In addition to infrastructure, PaaS service providers offer a computing platform and solution stack as a service. It includes middleware, development tools, BI services and more. The entire web app life cycle is supported with PaaS- from building, testing, deploying and managing to updating.

A development framework is offered to create cloud based apps using built-in software components. Scalability and multi-tenant capability features are included to reduce the coding requirements. And additionally, BI tools are offered along with workflow, directory, scheduling and security services.

Overall, the benefits of PaaS model may be summarized as:

  • Saves ownership cost and capital expenditures
  • Offers the combination of both- infrastructure and application
  • Reduces costs by paying only for what you use
  • Handles all upgrades, patches and routine software maintenance
  • Maintains testing and deployment infrastructure
  • Provides capabilities to efficiently manage the entire application lifecycle.
  • Offers better Security

The major area of concern with PaaS is vendor/platform-lock-in, especially when data-driven PaaS systems are used. This means that apps will be required to be completely rewritten to migrate to another PaaS or non PaaS environment. Besides, PaaS systems are not a preferred choice for high volume, low latency transactional apps or for developers in highly regulated industries.

Function as a Service (FaaS)

FaaS provides a platform to develop, run, and manage app functionalities without the complexity of building and maintaining the infrastructure. FaaS moves the server side code from long running components to ephemeral function instances. The key difference between FaaS and PaaS is scaling. Whereas with PaaS, you need to give a thought about scaling, but with a FaaS app scaling is entirely transparent.

With FaaS, you do not need to worry about managing your own server systems or your own server applications. Simply write a piece of code to be executed whenever a certain event takes place. And FaaS provider will take care of where the code will run, and will scale up when needed. The user is charged only for the resources consumed when the code is run, and at the end of code execution, containers utilized to run the code are withdrawn.

Overall, the benefits of FaaS model may be summarized as:

  • Needs no server apps to run deployment
  • Requires payment only for the compute you need
  • Gears up to bring entire app up and down for every request
  • Enables horizontal scaling to be completely automatic, elastic and managed by the provider.
  • Offers event-driven instantaneously scalable services
  • Reduces packaging and deployment complexity

Despite the above benefits, FaaS functions have significant restrictions when it comes to local machine/instance state because for any given invocation of a function, none of the host state created will be available to any subsequent invocation. Moreover, FaaS functions are restricted in how long each invocation is allowed to run. Further, these services are not suitable for low latency trading apps; and debugging, app bundling, configuration and monitoring are matters of concern.

Software as a Service (SaaS)

SaaS is a fully-functional software licensing and delivery model that hosts apps over the internet-as a service- on demand basis. It allows users to connect to, and use cloud-based apps over the internet. All the required infrastructure, middleware, app software, maintenance, support, update or backups are managed by SaaS providers.

The services are available on pay-as -you-go model, and are generally paid for by subscription or by use.  SaaS allows users to get quickly up and running with their app at minimal upfront costs.

Overall, the benefits of SaaS model may be summarized as:

  • Enables access to sophisticated enterprise grade apps at affordable prices
  • Reduces costs by paying only for what you use
  • Offers high scalability and easy customization
  • Enables access to app data from anywhere
  • Ensures better data security

The major drawback of this model is dealing with the risk of vendor going out of business, which simply infers that consumers need to ensure that their SLA allows them to export data from their provider in such a case. Moreover, compatibility of the devices can be a cause of concern. And there may be hidden costs involved in the process, which can cause customers to end up paying more than they should. .

Apart from these delivery models, the other popular models include SECaaS (Security as a Service) and DaaS (Disaster Recovery as a Service)

SECaaS offers agility in securing workloads irrespective if they are moving to different physical hardware, different data centers or changing numbers. It further offers segmentation, anti-virus,  threat identification, and compliance checking, and is charged based on usage. A recent survey indicates that SECaaS is coming up as a leading cloud computing model being adopted by companies followed by IaaS and DRaaS (Disaster Recovery as a Service).

DRaaS, as the name suggests, is reliance on a remotely hosted disaster recovery services to ensure reliability of your data and apps by avoiding any data loss. With variety of security threats and cyber-crime instances, DRaaS providers usually support subscription based recovery services, managed hosting, and managed back-up services. The aim is continuous replication of critical apps, infrastructure, data and systems for quick recovery after an IT outrage or downtime. As per Gartner, the size of DraaS market is approximately $1.7 billion with a compound annual growth rate of 25%.

Cloud Computing is definitely increasing at a rapid pace, and companies are becoming less and less hesitant to use these services. They are looking for better ways to make cloud work for them. These enhanced consumer needs have lead to the evolution in the Anything as a Service (XaaS) market. XaaS collectively describes a range of services related to cloud computing and remote access offering obvious benefits in the form of enhanced efficiency and reduced costs.

But there are certain things to consider before signing an agreement to avail these services. The services must be chosen based on need analysis, priorities, areas of specialization, and business processes. SLA’s must be carefully read and understood beforehand. And once this is done, you are ready to use Cloud computing, and accrue the benefits offered.

In the next blog, ‘Cloud Computing: Testing in the Cloud’, we will find out how these cloud computing environments can be used for software testing purposes simulating the real-world environments and devices, and the challenges they pose.

Kanban for Software Teams

Highly competitive contemporary businesses focus on effective, efficient, robust and speedy solutions that can deliver quality products. And the application of the concept of Kanban is helping businesses achieve this objective.

Kanban, as a concept, was initially developed and applied by Toyota in the 1940s as a method that helped their project team to visualize the entire process workflow, thus enabling better communication and collaboration among team members. Further, it also assisted in standardizing cues and refining the process, resulting in reduced wastage and enhanced value.

Given these obvious benefits, the core principles of Kanban have since moved into industries beyond manufacturing. And currently, in Software Development and Testing sphere, application of the principles of Kanban has become almost inevitable.

Kanban ensures faster release of quality software by enabling better team collaboration. Using Kanban, the entire software development and testing process are divided into different stages, with tasks being transferred from one stage to another as the process moves forward. And a Kanban board is created to visualize and share this entire process, and the ongoing work-progress, with all the stakeholders.

Typically, a Kanban board consists of the following essential elements:

Columns And Swimlanes: The Vertical Columns reflect the phases of the process the task must pass through before being finally considered as complete. The FIFO principle is followed with tasks being pulled from the top and added at the bottom.

And there are Horizontal Swimlanes that divide the Kanban board into cells. Swimlanes denote the horizontal categorisation of issues in the active Kanban board and may contain tasks or indicate priority, person, classes of work and so on.

Individual Kanban Cards: They bear the complete information and details about a given task- type of task, task requirements, task deadlines, people responsible, and all affiliated docs. These cards are post-its when it’s a physical board, while for online boards, they are digital elements to open, update, and move across the board through simple click and drag.

WIP(Work In Progress) Limits: These are limits that stand for maximum amount of work items a given phase or the whole workflow can hold. These limits are set to ensure that the team is focusing on limited tasks, and not working on too many things at the same time. This saves the team from work overload and undue delays.

Card Blocking: They represent the tasks that pose challenges for the team working on the board. And further indicates that the team needs to resolve the problem before pulling in new work. Even though this slows down the cycle time but it saves your potential inventory of in-progress work that can grow and become stressful over time. Hence, its better to clear the blockers as soon as possible.

Source: Maltem

Using these elements, Kanban ensures a lean software development methodology that focuses on just-in-time delivery of functionality through managing the work in progress (WIP).

Benefits of Kanban

The biggest benefit of Kanban is waste minimization through right prioritization and application of WIP limits, thus leading to an overall improvement in throughput. And moreover, Kanban is an easy fit-in. You don’t have to alter your current procedures to imbibe Kanban, rather you may work the way you do, and Kanban can act as an overlay on top of your current work processes.

The method is also quite useful in contexts with frequent priority shifts and change requests by getting rid of time-framed fixed-length iterations, and setting up WIP limits. Kanban optimizes and prioritizes User Stories by sizing and decomposing requirements into Minimal Marketing Features thus delivering value to customers more rapidly and frequently.

Kanban also positively influences the overall working style of the team by embracing the philosophy to complete the projects timely and encourages leadership across organizational structure. In Kanban, as the entire work-chain is visible to everyone, hence, whenever there are any jams or bottlenecks, everyone knows where they occur, and are collectively responsible to ensure work-flow continuity thus encouraging the team spirit. Kanban thus assists in securing high-level transparency and real-time communication of capacity.

Moreover, having limited tasks to spread and focus upon assists the team to achieve an optimal level of performance along with making them visualize the broader organizational goals.

Thus Kanban assists teams to deliver software services more efficiently, more frequently, and at an optimized flow and throughput levels.

To ensure that our clients receive these benefits, we at Astegic have developed a dedicated Kanban Driven Engagement Framework for Testing (KDEFT) that addresses the critical concerns of speed, agility and communication throughout the SDLC, and across time zones. Our methodology involves complete transparency of work and real-time communication and we offer near 24×7 rapid service from both Astegic’s US and India based testing operations.

Emerging Trends in QA & Testing

The software testing space has undergone a significant transformation with technology advancing at a rapid pace. Big Data, Virtualization, and Cloud-based applications are evolving speedily along with the hyper-connected devices being our future. Besides, trends like mobile app testing, crowdsourced testing, and context-driven testing have completely reframed the testing and development landscape.

On top of this, tough competition has created pressure on the testing teams to manage faster product releases without losing focus on superior quality. This has led traditional testing methods to take a backseat and latest QA & testing trends to rise up to the challenge.

Let’s observe the latest QA trends that are currently influencing the market.

Increased Automation Levels

In response to the deployment velocity requirements and need to ensure wider coverage, testing teams are adopting automation, wherever possible. This trend is set to rise. The test execution turnaround time and bug detection time will require a more robust and innovative test automation strategy to survive future need for speed and quality.

Agility & DevOps Will be the Norm

Agility as a concept has been there for quite a while now, however, in terms of its application, agility in testing is still not highly evolved, and so is DevOps. Nevertheless, with delivery cycles getting shorter, traditional models are taking a backseat, and businesses with an application of Agility and DevOps in their true sense will be the future frontrunners, with CI and CD becoming central components in the application lifecycle management process.

TCoE’s Will Grow in Numbers

The burgeoning business requirements for speed, quality and cost-effectiveness have led testing companies to set up CoE’s, which are likely to rise in number in near future. Their aim is to establish highly standardized QA and testing practices that deliver near zero-defect apps to the clients and contribute towards a positive shift in the organizational culture. This is must in order to provide the requisite competitive edge to the companies in the current market scenario.

Security Will be a Big Concern

With the growth in cloud computing, mobility and IoT developments, focus on end to end security solutions will be paramount. Sensitive and confidential online data is highly vulnerable to cyber-attacks, necessitating the companies to dig deeper and avoid any leaks, code errors, and holes. Open source security tools will be in demand and security testing may evolve as a separate specialization dealing with the continuously varying nature and severity of security attacks.

Context-Driven Testing Will Rise

The trend is emerging slowly but is likely to rise. Higher levels of diversity and device integration (which is likely to increase further) is making it a complex task for QA teams to set up a single testing strategy, thus demanding context changes to be accounted for in addition to ensuring wider test coverage from varied angles, necessitating the context-driven testing.

Crowdsourced Testing Will Witness a Surge

Sophisticated software has its own development and testing expenses. And in the current complex scenario, companies may not be well-equipped with all the requisite testing resources and may lack budget required to test the software in varied environments. This leads to the demand for crowdsourced testing which can help companies manage their costs, and ensure testing quality. This trend is gaining momentum and is likely to rise in future with multifaceted testing requirements.

Manual Testing Will Always Remain in Demand

Though Automation will be critical to faster product releases, manual testing will remain an integral part of software testing. The wisdom, judgment, and experience of testers can never be replaced by automation. Nevertheless, testers will be required to learn additional technical skills to remain competent.

Concluding Thoughts

These emerging trends will help you get prepared for upcoming testing challenges. With your readiness to learn, grow and adopt these trends; you may plan, strategize and navigate your future testing processes in an efficient manner. And these trends are likely to accelerate with Virtualization, Predictive Analytics, and Machine Learning. So keep a watch on the latest developments to remain competitive. Happy testing!

Requirement Analysis and the Role of QA

Requirement analysis is the process of determining user expectations for a new or modified product and is vital for effective software testing as it lays down the basic foundation for various stages of the SDLC. Without a thorough need analysis and a clear road-map, even the most efficient system architecture, well-written code, or comprehensive testing will prove futile.

Hence, the first step to kick-off any project is “Requirement Analysis”. And to be useful, requirements should be scripted, actionable, quantifiable, traceable and directly linked to the business needs or opportunities.

Requirement Analysis Process

A typical Requirement Analysis process should identify testable requirements through frequent interactions with various stakeholders (Client, Business Analyst and Technical Leads etc.). The intent is to brainstorm and clarify any ambiguous requirements before getting to the next phase and to precisely define the Automation needs for the project.

For this, QA should be involved early on in the project ensuring that issues are identified before they become defects, even prior to the completion of the technical design. This, in turn, saves considerable time and money.

Any lacunae in requirement analysis will have a huge bearing on project timelines, quality, and costs, and may become the sole reason for the project failure because the further you go into the STLC, lesser are the chances of the bug getting detected and fixed.

                                                                    Source: gslab

However, with the influx of new and disruptive technologies, analyzing and validating the testing requirements is not an easy task. Besides, there are few typical challenges that further complicates the requirement analysis process.

Common Challenges in Requirement Analysis

Normally, in the early stages, the project scope is not well-defined and there is a lack of clarity in the processes. Additionally, involving all the stakeholders, understanding their viewpoints, and precisely defining the requirements is not a straightforward task.

If the business needs are not clearly specified or there are conflicts around an ambiguous term, or there is a constant inflow of frequent new requirements, the task gets even more complicated.

Here, including QA team in the process can assist in better understanding the requirements to deliver a quality product as QA tends to be detail-oriented and looks for quantifiable metrics.

Role of QA

Quality Analysts play a vital role in requirement analysis by ensuring each requirement is analyzed from the specification document, and then lists down high-level scenarios. The early involvement enables testers to plan their testing from the live understanding of the requirement definitions.

Any ambiguity is clarified and functionalities are defined by asking relevant questions and seeking explanations.The project risks are identified and defect tracking methodology is established. And finally, a Requirement Traceability Matrix is prepared that maps and trace user requirements with test cases. It ensures all the test cases are covered and no functionality is missed.

Now, with everything in place, the tester is ready to sign-off from the Requirement Analysis Phase after ensuring a sound foundation has been laid.

At Astegic, we have developed a comprehensive Testing Requirement Analysis Framework (TRAF) to cater specifically to the requirement analysis needs of the businesses. TRAF assists in rapid QA/Testing project set-ups and ensures prevention of early defects encompassing the three most critical aspects of the testing requirement process- Scope, Coherence, and Consistency.

Equipped with experienced and skilled resources with access to the latest tools and technologies, we enable businesses to speed up their testing requirement analysis time and achieve superior quality in a cost-efficient manner.

Is Test Plan a Dead Document in an Agile Environment?

Does the Agile Manifesto, ‘Implementation over Documentation’, refers to No Documentation? No, not at all!

However, in the competitive environment where speed is crucial, a number of teams have abandoned the test plans altogether. The plans have acquired a bad reputation of being time-killers. They are definitely hard to maintain, and nobody seems to read them at all once the project is signed-off, and even during the project, they seem to become obsolete half-way through.

Yet another challenge is these documents are rarely reviewed and are mostly copies of the previously created plans with no new insights or critical thinking involved.

But having said that, it is still difficult to answer that in the absence of a clear outline to follow, isn’t the project going to run into trouble?

This indicates that we definitely need to go retro but using a different approach, which is more in sync with the era of Agile, Scrum and Lean. A heavy thesis may have been outdated, but test plans have definitely not. Test plans with some amount of documentation are still required.

But let’s first understand what a test plan entails?

Test plans, as such, begin with a brainstorming session that is needed before execution. Behind the document goes a thought process that identifies and defines the scope, approach, resources and schedule of the intended test activities.

This exercise determines the type of tests that will be needed during the course of development by dividing the tasks according to the needs, goals, and test types, and accordingly clarifies how much automation and manual testing is going to be required.

But coming back to the current scenario, we need to do this in the light of the collaborative spirit of agile where things are more likely to be discussed and agreed upon at a daily standup meeting, ensuring that everyone is on the same page and things move quickly.

In such a scenario, the test plans must be skimmed for agility but are still needed to prevent the teams from getting too focused on low-level user stories ignoring the bigger picture. A test plan will assist the teams to lose the myopic view in order to get a real larger picture.

Also, communicating, collaborating and getting agreements on special test types that are particularly included or excluded should be documented for transparency and speed. We may keep this part lightweight, but cannot dismiss it altogether, for a sense of direction is required.

Besides, as agility has moved the process from few teams to multiple teams on one release, gaps are bound to happen along with communication breakdowns and integration issues, making it even more significant to have a test plan with project specifications to refer to.

Hence, the main tenet here is to keep the conversation moving around the test planning process and the right sequence of things in order to provide a clear path, and a basic test plan does just that.

In addition, the test plans are still in demand for compliance with the regulatory agencies or for internal groups during an audit, or for the contractual formalities requiring plans to be presented to the client.

In a nutshell, test plans cannot be done away with, however, they have to be factual, precise and short to be in sync with the agile environment, and should at least contain the agreed-upon team plans that are not bound to change very frequently along with the special test inclusions.

Moreover, if teams are not referring to this document time and again, or this document is not created at all, testing teams may end up with issues post release and may have no proper literature to refer back to. Hence, test plans are a living document rather than a dead one and hold significant value even in an agile framework.

QA Outsourcing Benefits Vs Costs

Some Considerations Before You Outsource QA & Testing Services

In the current market scenario, outsourcing has become an effective option for strategic management. However, when you decide to outsource your QA &Testing services, you should carefully weigh the related costs and benefits before making a final decision.