Author Archives: krcmic.com

WEB INTEGRATOR AND DIGITAL TRANSFORMATION

Web integrator and digital transformation

What role does the web integrator play in the process of digital transformation?

Also, you should not miss the previous part of the article series about web integration – What is a front-end factory. It is a must-read!

Much has been already written about what we can imagine under the digital transformation term. Regarding digital transformation, there have been long-term interesting debates across the Internet, within which it has been solved at many places what has been the main driver of the digital transformation – whether it’s CloudBI (Big Data)IoT (Internet of Things), or APIs. Many professional articles it has been analyzed from all points of view, what will be the impacts of digital transformation on various industries, and how fast progress in various fields of digital transformation. Likewise, many IT experts have been for several years preoccupied with thinking on, which sectors will be affected by the digital transformation most and when.

I’ll try to explain in this blog post that is the role of the web integrator in the process of digital transformation and answer the question, where is his place?

What is digital transformation?

There are lots of definitions for digital transformation. You can find one of these definitions (like almost everything) on Wikipedia. Further, you can find them on websites and in presentations by smart consulting firms, such as Capgemini, or such interesting sites as i-SCOPE and many others.

I’d adhere to the following definitions:

“The digital transformation is a fundamental and accelerating change of business activities, processes, competencies, and models fully exploiting the potential of digital technologies and their impact on the whole society.”

On the other hand, digital transformation cannot only be simplified to the tal marketing, but the digital consumer also behabehaviorthe digitization of information (the introduction of “paperless” processes). Although individual topics are important for the digital transformation by themselves they are not sufficient for such a fundamental change, which is brought about by the digital transformation.

The term digital transformation includes much more. It is a continuous process, through which enterprises adapt to major changes with their customers and markets or stimulate them, that with the help of digital technologies they innovate and introduce new business models, products, and services, combining digital and physical aspects of the company towards customers while increasing the operational efficiency and business performance at the same time.

What is the role of a web integrator within the digital transformation?

I have already described, who is a web integrator, including a focus on the presentation layer within the abstraction of the three-tier architecture and the Front-end Factory as a key competence of the web integrator.

How this all fits into the digital transformation? First of all, you need to realize that the web integrator is an important partner in the digital transformation (but by no means the only one).

Due to the impact of digital transformation on all aspects of the business, the close cooperation between various entities that are involved in the transformation comes to the forefront. And that both inward – (internal IT system integrator and other suppliers) as well as outward because companies need to present their digital presence in the digital environment (this is where digital agencies enter the entire process). All this is happening for one reason – to achieve or meet the set business goals.

Within the digital transformation, it is worth revisiting a simplified understanding of the front-end, purely as a presentation layer within the concept of the three-tier architectureThe Frontend should be seen as any connection to the digital environment, i.e. including user “invisible” interface – API (Application Programming interfaces) rather than purely “tangible” (today touchscreen) multichannel. Indeed, the multichannel is or may be a consumer of these APIs. Nevertheless, such interfaces are located in the “Business Logic” layer, according to the concept of the three-tier architecture.

Even within the layer of business logic further fragmentation occurs and demands on API is in terms of flexibility, security, and performance similar to demands on the presentation layer. For this reason, I can see lots of space for a web integrator (in close cooperation with other suppliers) in the preparation of these APIs not only from a technical point of view (development) but also from the consultation (analytical and design) point of view.

API to rule them all. Really?

Already now there are companies, whose business is built primarily on providing APIs to the world.

And vice versa some companies use APIs of others for their business without having to have their own “core” systems. And many others still have to go through a such transformation.

API alone is certainly not a new idea. But the possibility of opening them and using them for specific business leads to fundamental questions about the value of own services and the ability (or inability) to provide them to the digital world in the form of a suitable API. Indeed, without tools supporting the preparation high-quality city (and documented) open APIs such as Apiary the “API revolution” would certainly not take a place, because total confusion would occur and everyone would do his/her way. Which is exactly the state you do not want to get to.

Nevertheless, API itself is not any panacea either an API cannot be considered a synonym for digital transformation. It is again only part, albeit substantial, of the whole process, which must be closely linked with several necessary changes within the company and in particular with the change of usual thought patterns.

In any case, however, API is the area of intense interest of the web integrator, for its ability to interconnection (integrate) the digital internal and external world of the customer.

With the web integrator, the way to your goal is easier

So that companies can tackle new market opportunities, they must within the digital transformation change their business models and rethink business processes, work habits, and end-user experiences. The web integrator is a partner in the introduction of these innovations, who will greatly help to achieve the set objectives.

You can now follow to the next part – article called: What’s your front-end strategy?

WHAT IS A FRONT-END FACTORY

What is a “Front-end Factory”?

The key role of a web integrator is in the “multichannel“ front-end area and fulfilling this role requires strong competence.

Also, you should not miss the previous part of the article series about web integration – The relationship between a web integrator and digital agency? It is must read!

The front-end can be understood as a presentation layer according to a three-layer paradigm, as I have described earlier in my article How to apply the principles of three-tier architecture in a web integration project.

As I mention in the article (and summarize here), the presentation layer includes:

  • appropriate information architecture, reflecting the objectives of the portal/solutions
  • user interface optimized for the selected versions of target devices and browsers and in particular the context of their use. Of course, most often in the form of an output HTML/CSS/JavaScript code, variants as well as with the use of native applications for mobile, touch screen, desktop, or other devices
  • support of the user interaction in the form of inserting the necessary data and their displaying,
  • interface enabling further integration in a structured format – various forms of XML outputs/feeds (RSS, RSS 2.0, Google Sitemap, etc.), Web Services (SOAP, REST), or application interface (API)
  • platform or framework (angular.js, etc.) providing sufficient functionality to build solutions and the development of specific functionality,
  • A tool for easy management of structure and content, bearing in mind the specifics of a concrete project: Content Management System.
  • Means for ensuring the sufficient performance of the whole solution, given the expected number of visitors.
  • Security features and measures for ensuring that the project works in the internet environment.
  • instruments for measuring user behavior,
  • possibly functionality in terms of SEO and other online marketing activities.

To ensure these functions the web integrator must have something I call a Front-end Factory.

Front-end Factory

Therefore, by the term Front-end Factory, I mean primarily the ability to deliver the presentation tier (the front-end) in the context of the three-tier architecture. But how could it be achieved?

  • In the first place there are people (team) – the quality of all stakeholders is crucial – analysts, designers, developers. They must be able to combine internal functional and non-functional requirements with the needs of the end users.
  • The user must be the alpha and omega of each decision and his behavior must fundamentally influence the shape of the final solution. Even for a solution that is not designed for a broad audience – even there the emphasis on (corporate) UX pays off in terms of business.
  • Tools and technology (platforms, frameworks) – selecting the appropriate tools and technologies, with an emphasis on flexibility and speed of change. Change is something that the front-end experiences “every day” (and maybe often). Tools and technologies that do not allow rapid changes are not appropriate. Both developmental and deploymcyclesycle must be as short as possible with the ability to respond to changes on daily basis. The sentence “The next release is in three months” is not acceptable.
  • Processes and management – whether something is suitable for an agile (generally iterative) approach, then it is a supply of a front-end. It includes both the necessity of repeated user testing, and inputs from the graphic designers, but also continuous development and improvement as well. For successful delivery, the ability to control such organisms is crucial.
  • Standards and quality – those cannot be forgotten. The questions of validity, accessibility, browser support and a variety of end-user devices, security, performance, but also others – all must be taken into account. Testing must be closely linked with the development and become an integral part of each iteration of delivery.
  • Specifications and documentation – to indicate the need for high-quality specification and documentation in IT is a cliché, but without it, it is just not possible. Software development then ceases to be an engineering activity and becomes a set of random acts where no one knows what will happen after the change. A bridge also cannot be built or repaired without a plan.
  • Ability to integrate – presentation layer never lives alone – it always closely integrates into a business logic layer. In the real world, it often is not fragrantly and beautifully documented API returning JSON objects like hot cakes … The ability to integrate itself into the various and often outdated systems in the forms of “donkey bridges” is a challenge that the successful “Front-end Factory” must be able to cope with.

The ability to deliver the presentation layer (front-end) is a key competence of the web integrator and Front-end Factory is a concept that should aid to achieve this.

You can now follow to the next part – article called: Web integrator and digital transformation.

RELATIONSHIP BETWEEN WEB INTEGRATOR AND DIGITAL AGENCY

Relationship between Web Integrator and Digital Agency

A brief reflection on the relationship between a web integrator and digital agency.

Also, you should not miss the previous part of the article series about web integration – Relationship of the web Integrator and the system integrator. It is a must-read!

Compared to the article describing a relationship between web and system integrator, the comparison with a digital agency considerably more complicated. Only finding a generally accepted definition of the term digital agency on the Internet is a difficult task – and where else to search it, right?

What Is a Digital Agency?

Wikipedia (in English), does not even know this expression and shows only “Advertising agency”, which specifies in individual areas – in our case “online advertising”.

Other definitions that can be traced, even older, are available on our digital marketing blog, which develops the concept to “Full Service Digital Agency“, UPANUP StudioJDM DigitalKamber and certainly it is possible to find even more. What now? Trying to come up with another definition, the next in line? I will try it for the term Full Service Digital Agency … After all, what agency states about itself that it is not “Full service”.

A part “Full Service” described in our digital marketing blog describes one major thing – full service is not primarily based on the range of services offered by an agency, but on coverage of three elements of marketing cooperation with client – StrategyDelivery and Analysis. That represents the key to comprehensive services to me, unlike their mere list. There are so many various special services in the digital space and more and more are emerging.

But what is the “digital” space today, anyway? From my perspective, it is all that is processed using ones and zeros digits – yes, web site (in all its forms), mobile application, TV (from a certain part), radio and outdoor advertising and their interconnection. And digital space will only rise in the future – it will spread on your car, home, watch, Internet of things…

So the following definition is acceptable to me:

Full Service Digital Agency is a marketing agency that provides clients with strategy, delivery and analysis in the digital space.

What Is, on the Contrary, a Web Integrator?

And what is a web integrator? As I mentioned in the referenced article, so “The web integrator is a partner who provides a guarantee to the client that the project will comply with the agreed specifications. The web integrator is responsible for coordinating all of the necessary activities. A web integrator is a partner that guarantees a client that a web integration project will pass in accordance with the prepared specifications and ensure a coordination of all necessary activities“.

Not a word about marketing, but a bit further the article says: “Unlike the system integrator, the web integrator’s activities include marketing and communications and new fields where the Internet is used….” So how is it? A web integrator is necessarily active in certain areas of marketing – no web portal can be built today without respecting the rules of online, or if you like, digital marketing.

Boundaries between Digital Agency and Web Integrator

A concrete boundary is difficult to find, and as shown in the diagram of the web integration effect, an overlap of provided services occur there.

The web integrator cannot avoid areas necessary for perfect delivery of web integration project. A good web is simply not possible to create without defining target groups, design, on-site SEO optimization, web analytics … A conflict occurs particularly in delivery and analysis areas.

I do not believe that full service digital agency delivers an excellent extensive web integration project, which requires strong know-how in the field of software engineering, deployment and operation and where the issues of security, integration and performance are dealt with.

Conversely, a web integrator competence does not involve the field of marketing strategy. And given the increasing number of services in digital space, it is necessary to involve (integrate) some specialists for these services into projects as well – there is therefore a scope for cooperation in the area of delivery. Likewise a range of analytical services is enormous and a web integrator competence focuses mainly on “on-site” data and their processing, or other connections.

How Can a Web Integrator Work with a Full Service Digital Agency?

I have some experience with various forms of cooperation, but also with strong competition between the web integrator and digital agency.

What I know is that an escalated competitive attitude does not help anyone and an end client the least of all. Dissimulating that a digital agency will deliver a big web portal because it has already completed a lot of web sites (mostly simple business presentations or microsites) is just wrong. On the other hand, it is equally wrong to say that a web integrator will design a digital marketing strategy. It will not.

What I consider to be perfect is cooperation between the two entities, which obviously means that competences have to be determined where they overlap – elbows are therefore needed. Jointly, it is possible to deliver clients a solution that optimally fits into their digital marketing strategy, meets business goals and high demands for performance, safety and economy of operation.

Unlike cooperation with the system integrator, the most common form of cooperation between
a digital agency and a web integrator is therefore partnership, which does not even have to involve any mutual contractual relationship and coordination takes place on the client’s side.

And What Is the Practice Like?

My experience is that after delivering a solution, it is the digital agency which is responsible for attendance (traffic) and quality of the acquired contacts (lead generation). The web integrator is subsequently responsible for maximizing the conversion potential of the web site. Together they therefore ensure the efficiency of the overall solution.

The ambition of either party cannot be “we will do everything” because they simply will not. Conversely, it is the emphasis on cooperation and the final value for the client what brings significant advantages for both sides, reduces risks for the client and allows to do what each party can do best and what it “likes the most”.

You can now follow to the next part – article called: What is front-end factory?

Relationship of the Web Integrator and the System Integrator

Relationship of the Web Integrator and the System Integrator

Brief contemplation on the methods of how a Web Integrator may cooperate with a System Integrator within a web-integrating project.

Also, you should not miss the previous part of the article series about web integration – How to apply the principles of three-tier architecture in a web integration project. It is a must-read!

Who is the System Integrator? I like the definition on Wikipedia – “A systems integrator is a person or company that specializes in bringing together component subsystems into a whole and ensuring that those subsystems function together…”. Typically, it is a company that consults and brings together solutions from the existing or newly developed sections. In practice, often comprehensively for a specific client.

As stated in the definition of a Web Integrator, definition of Web Integrator’s activities as compared with the System Integrator are as follows:

Unlike the System Integrator, the Web Integrator includes in his services also the area of marketing and communication and new Internet disciplines, but not areas related to internal systems, such as data warehouse problems, DMS, ERP, etc. Both, the Web Integrator and the System Integrator cooperate most frequently in defining interfaces to internal client’s systems which are to be used for implementation of a web solution and in proposed optimisation of the processes involved.”

But how can such cooperation look like in a specific project?

System Integrator as a General Contractor. Web Integrator as a subcontractor.

From my point of view, it is a typical scenario when the System Integrator delivers a complex change (or implementation) of several systems that also very often deal with an on-line frontend. The frontend must however be understood in the context of a three-layer architecture as a presentation section, thus including systems necessary for administration, operation and integration.

However to secure the frontend as well as other specific parts of the supply, the System Integrator needs a subcontractor-specialist. In my opinion, the System Integrator alone has often not enough powers, in particular in the area of UXmulti-channel communication, and on-line marketing. Conversely, they overlap in the area of the development and operation.

The System Integrator is responsible for the design of complex system architecture, delivery within the quality and terms agreed on, and often also subsequent service and development. The Web Integrator is responsible for the delivery of his part, including coordination of his eventual subcontractors. Indeed, he is also a partner of other subcontractors, in particular within the integrating interface necessary for interconnection of the presentation layer and the business logic layer.

Web Integrator and System Integrator as partners

In certain cases, the client organizes alterations of internal and frontend systems independently, and often also in different times. The client possibly does not require General Contractors services.

In such cases, the Web Integrator and the System Integrator are partners who must deal with mutual coexistence of supplied systems and their integration. Both parties must cooperate in both, the delivery and subsequent service within the powers agreed on.

The defined interface between the presentation layer (frontend) and the business logic layer is a suitable and demonstrable boundary of powers. So it is possible to minimize risks resulting from unclear division of powers.

The analogy of this cooperation model is a variant when internal systems are not provided by single System Integrator, but by several independent contractors. In this case, the competence matrix is of course more complicated. And its complicacy correlates with the number of integrating links to various systems (and the number of contractors). This variant however does not fall within this contribution, since no System Integrator is involved in it.

Web Integrator as a primary contractor

Theoretically, a variant opposite to the first option comes into consideration. Thus a situation when the Web Integrator is a primary contractor and provides also services falling within the System Integrator.

I must say that I have not encounter this variant in practice yet, and it does not make much sense to me. Powers necessary for correct management of system integration on the level of internal systems reach far behind the framework of Web Integrators powers as we understand them within the web integration. Thus from my point of view, it would be some necessary business compromise, but without material grounds.

And what does emerge from this?

In my opinion, the cooperation of the Web Integrator and the System Integrator is a key issue (if applicable) for perfect management of the on-line frontend of the supplied solution. Eventual failure to manage this cooperation will be experienced by end users. With respect to the frontend nature, these end users are customers; it will thus have an immediate negative impact on the business. Conversely, good cooperation might improve essentially business results of the whole solution supplied. And as we know, money is always in the first place.

You can now follow to the next part – article called: Relationship between Web Integrator and Digital Agency.

HOW TO APPLY THE PRINCIPLES OF THREE-TIER ARCHITECTURE IN A WEB INTEGRATION PROJECT

How to apply the principles of three-tier architecture in a web integration project

Three-tier architecture is one of the basic paradigms of software development. This design pattern can be beneficially used in web integration projects, as a basis for the overall solution architecture, with benefits.

Also, you should not miss the previous part of the article series about web integration – Roles in integration project. It is a must-read!

In recent projects carried out for Czech financial institutions I frequently encountered problems that snowballed. Web projects that take several years turned into “monsters“, and from the software architecture perspective, this caused many basic problems. Due to the incorrect software architecture, it is very difficult to know which supplier provided what, and to make flexible changes to parts of the solution. Therefore, there is often a complete dependence on the supplier and its knowledge, including in processes that are vitally important in commercial terms.

In this article I will therefore try to outline ways to minimise such difficulties by applying the well-known principles of three-tier architecture.

Three-tier architecture is software architecture that can be separated into the presentation tier, functional/process logic tier, and data storage. Each tier carries out separate tasks; and the layer can be developed, maintained and changed separately, based on the assumption of an unchanging (backwards compatibility) interface between individual layers.

  • The presentation tier or user interface tier is responsible for interactions with operations – information gathering, as well as displaying it in a legible and user-friendly format.
  • The “business“ logic tier plays the role of transferring information between the website and the data tier, including integration of the required decision logic or transformation of transferred data (calculations, aggregation of information from more data sources and the like).
  • The data storage tier implements persistent data storage, with a relational database (RDBMS) or another type of database (NoSQL).

This principle brings a number of basic benefits:

  1. Individual tiers can be managed independently

In preserving the integration links, it is possible to carry out basic changes in separate tiers without another layer.

  1. The sizing of each layer can be adapted to its performance requirements, regardless of the other tiers.
  2. The security setting of each tier can be adapted to its use and requirements.
  3. The correct separation of individual tiers enables separation of knowledge important for managing them and allocating appropriate sources to them, without unnecessary overlaps and with consideration of the complexity of individual tiers.
  4. Clear separation of competences, if more than one supplier is involved. Individual tiers and the interfaces between them can be beneficially used as a demarcation of competences between suppliers and individual parts of their solutions.

Adapting three-tier architecture to the needs of a web integration project

HOW TO APPLY THE PRINCIPLES OF THREE-TIER ARCHITECTURE IN A WEB INTEGRATION PROJECT - schema

web integration project (in most cases a company portal) has its specific properties, to which the overall architecture of such a solution needs to be adapted. The principles of three-tier architecture can be beneficially applied at an abstract level vital for modelling the entire solution.

From the diagram it is evident that in abstract terms we move to a higher level when the basic feature is the system (e.g. CRM and ERP, as shown). It provides the necessary functionality to its environment, and it too can be three-tier.

The diagram also implies the growing complexity of individual tiers “downwards“ and the increasing efficiency demands (in terms of the number of requests dealt with) and flexibility “upwards“.

The typical composition of individual tiers of the architecture as part of the network infrastructure of a project owner is shown.

Presentation tier

In an integration project the presentation tier is extensive and includes both the user interaction in various devices (multichannel access) and tools for managing this tier – Content Management Systems or CMS), an appropriate portal platform, serving as a basis for the developing a specific functionality. This tier is crucial from the perspective of the web integrator’s role.

The presentation tier includes:

  • Architecture matching the portal aims.
  • A user interface optimised for the specified versions of devices and browsers and their use context, inevitably most often as output HTML/CSS/JavaScript code. It is important in specific cases to consider using other technologies – e.g. a native application for a mobile, touch, desktop or other device.
  • Support for user interaction in the form of data insertion and display.
  • Interfaces enabling further integration in a structured format – different forms of XML outputs/feeds(RSS, RSS 2.0, Google Sitemap and such like.), web services (SOAP, REST) or application interface (API).
  • Tools for measuring user behaviour.
  • A platform providing a sufficient function for putting together a solution and development of a specific functionality.
  • A tool for easy management of structure and content, bearing in mind the specifics of a concrete project: Content Management System.
  • A means for ensuring sufficient performance of the whole solution, in view of the expected number of visitors.
  • Security features and measures for ensuring that the project works in the internet environment.
  • Specific functionality without an interconnection to the portal owner’s internal system. This means minor independent functional units (modules) as additions to portal features.
  • Functionality in terms of SEO and other on-line marketing activities.

All data transformations impacting on the internal systems of the client are naturally linked to the business activity of the portal owner and contain important business logic and know-how. Such data transformations should obviously not be part of the presentation layer, and they should be separated and included with the business logic tier.

The presentation tier is typically implemented based on the design pattern MVC (Model-View-Controller) and its derivatives (MVP), but the difference is that the direct link to the data model is connected to the business tier, which is made accessible using services components, consisting of the service model of the application.

The presentation tier is also very often created externally. It is therefore important to clearly set security rules, responsibilities and especially prevent loss of know-how if an inappropriate leakage of business logic to an external partner occurs, without ensuring the sharing of information or a clear exit plan.

Business logic tier

This tier is crucial in terms of data transformation between the presentation and data tiers. Here a strong platform should be chosen that allows the collection, transformation and subsequent distribution of information in both directions. From the system integrator perspective, this role is crucial.

From the web integration perspective the business tier should contain:

  • Screening of the presentation tier from the data tier.
  • A clearly defined and documented interface (typically in the form of web services or, in the case of one application technology, interface classes). With such forms (even if it is with a modification for specific use) it is possible to use the interface both for the presentation tier and for other forms of client devices (mobile native application, specialised HW) and communication channels.
  • Storage of shared information within individual systems from the data layer and channels from the presentation layer.
  • Temporary storage of information necessary for use in the presentation layer, when technically it is not possible to assure accessibility to the information directly from the data tier.

The business logic tier is crucial in terms of retaining internal know-how. It should be carefully recorded in an analysis by the owner, including thorough documentation and substitutability. Leakage of know-how from the firm should be minimalised or thoroughly investigated, and include an exit plan.

Data tier

The layer of core systems, which enable final storage of information and further data processing. This tier tends to be very heterogeneous, with a mutual connection of several parts (systems), which causes problems. To lower the number of integration links, the business tier is used, therefore enabling interconnection of the internal system only to one other node. The data tier is crucial for internal systems, their implementer and system integrators.

The data tier should therefore contain:

  • Internal systems with primary data (product catalogues, business parameters, documents and the like.), and in some cases final storage for certain type of entities (user, order form, invoice and such like).
  • Specialised internal data storage.
  • Selected internal systems connected to basic business activities.
  • Specialised reporting tools used as part of or apart from selected data taken from the systems.

Data tiers are beyond the direct competence of a web integrator and they are typically provided by specialised entities.

Benefits for a web integration project

The above division provides several basic benefits for a web integration project:

  1. Maintenance of key know-how as part of the business tier with the project owner and its dependence on the presentation tier supplier is reduced.
  2. There is clear delineation of competences between each supplier (whether internal or external).
  3. It is possible to flexibly react to changing market needs, as part of the various communication channels of the presentation tier. This ensures a minimum impact on the “core“ of the systems in the data tier.
  4. In the individual tiers it is possible to choose the appropriate technology and maximise its potential application, including the operational environment.
  5. Increasing the security by separating individual tiers with a clear and secured interface.

Personally, I regard the first point as crucial; failing to adhere to it causes the biggest problems and huge risks for the project manager. In practice, it is often the case that the presentation and business tiers are linked in one tier. The result is a leakage of know-how, which is gradually lost, including in key processes, and a high level of dependence on suppliers, and the flexibility of change causes difficulties. Each of these problems merely adds to the snowball effect. The question of what happens if your supplier goes bankrupt cannot be answered. In a company whose turnover is to an increasing extent depends on online channels, finding an answer to this question is key for the company’s survival.

You can now follow to the next part – article called: Relationship of the web integrator and the system integrator.

THE TESTING TEAM

The testing team

Putting together a top work team, whatever the profession, is definitely not a simple task. Everything depends on its members – the people.

The same goes for creating a testing team. Therefore it’s a good idea to plan a bit ahead – putting down goals the team should meet, what skills should they include and afterwards, ideally, hire the right people (who have the best educational and personall skills) for the job.

The waterfall model for development

In many software companies it‘s pretty customary to use the traditional – waterfall model of project management.

Analysis – Design – Implementation – Testing.

This model adapts even to the testing team. Usually it is a separate department whose primary objective is to verify the overall readiness of the product being developed to deploying into full operation. Often, the testing gets to happen during the phase of system tests.

The skills in the testing team

When testing web applications, we can identify the following skills:

Test Manager

  • coordinates the testing team
  • assigns the individual responsibilites
  • is responsible for the planning, implementation and reporting during testing

Test Analyst, Designer

  • creates testing plans
  • defines testing procedures
  • decides on the appropriate selection of testing tools
  • determines the testing enviroment and testing data

Tester

  • prepares specified automated and manual tests
  • performes various tests
  • records the results
  • clearly describes the errors

In the case of smaller groups, these don’t need to involve all the skills, or as the case may be, some of them maybe merged into one.

The testing team is closely related to further project roles, and those are:

  • project manager, who initiates the tests and works together with the test manager and with the client on defining the acceptance tests
  • developer, who addresses and removes defects and cooperates with the tester on analyzing them

Introducing the agile team

The agile project management methodology provides an interesting viewpoint of the testing team. In agile management, a great emphasis is given on a close collaboration with the client. The development is divided into serveral short iterations, each consists of these steps: Analysis – Design – Implementation – Testing. Thus testing is closely linked to the actual development.

Dedicated skills are minimalized when it comes to agile testing teams. Anyone performs the tests who is able to – testers, developers. Particular agile teams don’t even have members who are directly called “testers”, despite the fact that they need someone who verifies the safety, performance and confirms the functionality… Though, as a whole, they are able to perform all the tasks related to testing. Doing so, however, results in less emphasis on static testing methods – no one checks the quality of the program code and the size of documentations is reduced which can become a disadvantage for large-scale projects with bigger timeframes.

The compromise

To integrate testing into the development process, and to the members of the testing team, is a practical step. Errors are eliminated right from the start, therefore they don’t initiate new ones, and during development it’s possible to create elementary automated tests that help simply verify the quality after adding modules, therefore speeding up the testing phase.

But even a top-notch independent testing team that concentrates all its potential on testing can therefore specialize in different types of tests and testing techniques and being beneficial. And let’s not forget about the fact that the author rarely sees faults in his work, whether it being a painter, musician, film producer or even a programmer.

A satisfactory compromise is hidden in good communication between the project manager, the developers and the testing team. Without it, none of the above methods would work.

In our article What makes a good tester we’ll be talking about what professional experience or personality traits are characteristic for testers.

QUALITY MANAGEMENT AND SOFTWARE TESTING IN WEB INTEGRATION

Quality management and software testing in web integration

This article describes the basic concepts of “Quality assurance“ testing and their goals, and considers various types of testing.

The rapid development of information technology today has resulted in ever greater demands on the functionality of web (software) applications, and in turn on the quality their software. As a result, quality management must play a vital part in the process of developing web solutions.

What is quality assurance?

The Wikipedia definition of quality assurance is: “Quality assurance (QA) generally concerns everything from design, development, implementation and maintenance through to product development. The aim of this activity is to ensure that the outputs of individual parts meet the necessary quality standards, which have been defined beforehand.

Ensuring quality assurance (known as “Software Quality Assurance“) involves the following activities:

  • Verifying that customer requirements have been met, and checking that they are in line with the assignment and project specifics.
  • Checking developer outputs focusing on adherence to pre-defined standards and norms.
  • Testing in order to identify possible errors – functional, logical, content, systems, etc.

Naturally, these steps also apply to web solutions, and specifically the main part of testing. In this area there is a need to take into account that new web pages are being tested and to accommodate a selection of appropriate tests, such as web application security, the ability to deal with huge numbers of visitors (performance testing), testing browser compatibility and operational systems, and accessibility for ordinary users as well as users with disabilities.

Testing

Testing is a systematic process, involving  observing system operation under specific conditions imitating a real-life environment. It is also focused on identifying errors, flaws and deviations from customer requests, and on operation in borderline situations from the perspective of output data, stress and security. Individual findings are similarly recorded and evaluated.

The goal of testing is to find errors as quickly as possible and at the lowest level of solution development, and then rectify them.

The concepts of Quality Assurance and testing are often confused, but as we have seen in the previous section, testing is just one part of the quality management process.

Types of tests

Literature and practice highlight a variety of testing methods, which depend on how the perspective from which we see them.

Based on the implementation method, we can divide the process into

  • Manual testing: carried out by the tester (user) manually. A disadvantage of this method is its slowness and lack of efficiency. However, some tests can work only manually, specifically because of the human factor.
  • Automatic testing: with automated testing tools. In a short period a large quantity of variable testing data can be tested. In web applications, we can easily test the validity of pages, the functionality of individual links, stress resistance and similar aspects, using automated testing tools.

Given the nature and focus of the testing itself, we can differentiate between:

  • Functional testing: verifies that the software functions meet customer requirements, and checks that the software/solution is functioning, on various SW and HW platforms.
  • Non-functional testing: testing the qualities of the system that are unrelated to its primary focus, e.g. efficiency test, security test and stress test.

From the source code perspective, this involves:

  • Static testing: checking the source codes themselves.
  • Dynamic testing: testing the system qualities during program runtime.

Depending on the approach to information, test can be described as:

  • Black box: the tester analyses only the external response of the system, and recording the input parameters and output parameters. However, the black box test does not involve the system’s internal process. On the other hand, it can yield distorted results because even when the assigned input gives the expected output, inside the system, the process can be handled incorrectly (such as incorrect saving in the data structures…) .
  • White box: assumes that the tester has a detailed knowledge of the internal structure of the codes and therefore “sees into the system“. At the same time, as part of the test, the tester audits the source code.
  • Gray box test: combines black and white box tests. The tester is familiar with the basic structure of the system, but does not focus on the source code details. The structure is accessible mainly due to the formulation of more appropriate testing scenarios.

Depending on which level of software development inspection takes place, we can divide testing into:

  • Developer testing – testing at the lowest level, usually immediately after writing the integrated part of the program code, with an emphasis on functional accuracy and validity.
  • Unit testing: testing how correctly the smallest system units function, checking adherence to prescribed standards and norms. At this level, the tests can be easily fully automated.
  • Integration testing: verifying correct interaction between individual modules in the system. For web systems, linking all parts of the proposed solution is an important phase of testing.
  • System testing: the application is tested as a complete entity. Tests focus on system functionality, reliability, security and efficiency. At this level, we can put systems through several tests, with independently designed methodologies, such as:
    • performance test: measures the speed of responses to input requests. Investigating the efficiency of the web application in multi-user environments and how the react to a sudden large volume of input data, and an increase in the number of active users.
    • security test: testing the system’s ability to prevent unauthorized  access to source codes or data
    • usability test: establishes how easy it is to use web pages, how to find one’s way around them, and how user-friendly they are.
    • accessibility test: ensuring that web pages are “barrier-free“, i.e. they are accessible to users with disabilities (impaired vision, hearing..), testing color  contrast.
    • stress test: tests the system, with a focus on checking failures where there is insufficient HW capacity (CPU, memory, disk, etc.).
    • maintenance test: checks that the system is functioning correctly after maintenance (changes to HW or SW environments, migration and system upgrade..) .
  • Acceptance testing: carried out after overall tuning of the system and removal of all detected errors from previous tests. Tests whether the system is prepared for live operation (alpha test, beta test, etc…).

It is impossible to say which testing method is the best and most efficient. The choice of testing methodology depends on a range of factors, such as project size, goals and focus, capabilities and capacities of the customer and the testing team. However, putting together the right testing plan at the very beginning allows us not only to  improve the overall quality of the system, but also enables considerable financial savings.

Experience shows that it is much more effective to  prevent errors at the beginning of work than to rectify them at the end of the project. This is even more important when it comes to web integration, both for integrated systems and in the case of a mistake that occurs at one end of the chain and can spill over into another area, where it can cause a lot of damage. It is therefore a very good idea to carry out quality tests at every step of the software life cycle, beginning with the specific requirements of the customer and ending with putting the ready application into production.

It is very useful to carry out quality tests as early as the analysis and design phase of the solution because an error in the architecture design, an incorrect functional specification, or a poorly chosen graphic design can later cause many tests to fail. As a consequence, going live is significantly delayed.

Conclusion

It is a fact that testing cannot prove that the system has no error and so it cannot be regarded as faultless. However, an effort is made to be as near faultless as possible. This is doubly so for integrated systems, where there the risk of failure in the areas of security, communication and stability is greater.

Sources:

ROLES IN A WEB INTEGRATION PROJECT

Roles in a web integration project

Implementing a web integration project requires the involvement of a number of specialists in various roles. Which ones those are, on the part of the web integrator, is described in this article.

Also, you should not miss the previous part of the article series about web integration – Web integration project phases. It is a must-read!

The term role involves a set of activities carried out by one or more members of staff during project implementation. They can be specialists in various fields, as required by the project in hand.

The involvement of and need for individual roles is determined primarily by the project phase and only secondarily by technological or methodological considerations. The individual web integration project phases are described in a separate article; they are:

  • Preparing an introductory study and defining project goals.
  • Information architecture, prototype and implementation specification.
  • Creating graphic designs.
  • Development and testing.
  • Expansion and support.

However, a phase itself does not strictly determine the involvement of a selected role in the project. Some of the roles are with the project from its start to its completion, supervising the continuity of the entire project.

The basic roles of a web integration project

In general, each member of staff can play multiple roles (although this is not common for web integration projects due to their size) and cover multiple fields of expertise. Considering the extent of projects, it is typical for a role to be played by several staff members with varying levels of experience (seniority).

Internal owner

The importance of a strong internal owner on the client’s part is mentioned in tip #6 for a successful web integration project. The project owner on the part of the contractor (web integrator) is a person with overall responsibility for project success in the context of the client’s business. They do not directly participate in project implementation but supervise and co-manage the client’s expectations. An analogy on the client’s part is the role of project sponsor.

Web consultant

A consultant participating in the preparation of the introductory study (concept) of the web and definition of goals. Together with the client, they analyse the client’s needs and design the solution at the highest level of abstraction. They have to clearly understand the client’s needs and be able to design the implementation of the needs using web technologies, although still independent of the operating platform. They are intensively involved in the phase of designing the information architecture and prototype. They collaborate with the architect of the selected platform on the implementation specification.

In their outputs, they naturally make use of the expertise of specialists such as:

  • Web analyst – provides information about user behaviour within the existing solution with respect to the selected analytical tool.
  • User interface designer – prepares a wire-frame prototype at the selected level of detail.
  • Information architect – proposing the overall organization of the content, content structure, navigation and interrelationship between pieces of information.
  • Business analyst – provides contact between project implementers and the client. They are responsible for understanding existing and future business processes and needs and their impact on the solution as well as how the proposed solution will affect the processes.

UI/UX designer

The role that gives the project a specific look with respect to restrictions defined by the client, regulations and standards, selected target devices and other circumstances.

There are also a number of specialists involved…

  • Creative designer
  • Web DTP specialist
  • Flash designer
  • UI tester

Analyst

Meaning a software analyst here. As web integration projects involve a large portion of non-trivial specific functionality, this role is crucial for successful implementation of this phase. An analyst already works with software engineering tools, still at a level independent of the operating platform.

The roles of web consultant and analyst define, together with the client, WHAT is to be implemented.

Architect

The role of architect is the one designing the solution as defined by the web consultant and analyst, with respect to the technology/operating platform chosen. The architect defines HOW the project should be implemented and contributes greatly to the implementation specification.

The role is often divided into sub-roles covering individual portions of design:

Architect of the selected operating/portal platform

Working strictly at the level of what a given platform allows without additional development. They specify how the information architecture will be mapped onto the resources of the selected platform and maximize the ability to utilize existing components. Thus, specializations can be derived primarily from knowledge of the selected operating/portal platform.

Software architect

Devises the method of implementation of functionally specific parts, including their coverage by functional or non-functional tests.

Technical architect

Designs the operating infrastructure in terms of its expected load, required availability and security.

Developer

The role taking care of the development of functionally specific parts and/or necessary adjustments to existing functionality. The developer sticks to the provided design and functionality description. Any deviation from the devised method of implementation is undesirable and poses a risk to the result of the project itself as well as to its future expansion. A number of specialists can be involved in the project, depending on the individual tiers of the three-tier development model:

  • Data tier: SQL developer
  • Application tier: developer for the selected technology (JAVA, .NET, PHP, etc.) with respect to the selected operating/portal platform.
  • Presentation tier: front-end developer – coder (HTML, CSS, JavaScript, Flesh/Flex, etc.)

Delivery manager

For projects that require the involvement of a development team, as is almost always the case with web integration projects, the role of delivery manager is responsible for leadership and operational management of the development team and its outputs towards the project manager and the client.

Operations specialist (ICT Support)

The role ensuring technical infrastructure will be implemented in line with the technical architect’s design. It is common for this role to provide all necessary competences by means of selected partners/specialists rather than personally.

Tester

The role of tester, or testing team member, makes sure the solution meets defined functional and non-functional requirements. For the fundamental principle of testing in a web integration project, refer to “Quality management and software testing in web integration”.

  • Test manager – coordinates the testing team, specifies the responsibilities of each member and is responsible for the method of planning, implementation and reporting.
  • Test analyst and test designer – creates tests and testing procedures, chooses appropriate testing tools and makes decisions on the test environment and test data.
  • Tester – runs selected tests, including error reporting, and documents the results.

For information concerning the composition of a testing team, see a separate article.

Project manager

The role responsible for the proper planning, management and evaluation of a project according to the project methodology chosen, including the formal aspect of management. They do not necessarily have technical know-how; however, knowledge of web solutions is an advantage for them as it makes them able to serve as a consultant to the client in the advanced phases of the project.

Client service

Client service staff are responsible for maintaining and expanding the solution under agreed response and resolution conditions.

The above roles are typical and suitable for the conventional waterfall development model, albeit with some parallelized activities. Agile methodologies, such as SCRUM, do not adhere to the division of roles as described in this article.

Naturally, there are other roles involved in addition to the roles mentioned in this article, depending on the specific PM methodology chosen – e.g. PMBOK, which will be discussed on the Web Integration website some other time.

You can now follow to the next part – article called: How to apply the principles of three-tier architecture in a web integration project.

WEB INTEGRATION PROJECT PHASES

Web integration project phases

Ensuring that phasing and setting appropriate stages for development are the key aspects of a web integration project in terms of its ultimate success.

Also, you should not miss the previous part of the article series about web integration – What is a corporate web portal and what are its goals? It is a must-read!

In the article 10 tips for a successful web integration project one of the suggestions was breaking down the project into specific parts. Phasing the development enables you to respond flexibly to demands that arise as the project develops. We recommend a phase length of around three months. If it is longer, there is a greater risk of changes to requirements, forcing work already carried out to be done again. In turn, this can increase project costs.

Project work is divided into several phases, which can be carried out both as part of the individual stages and as part of the project as a whole. On the other hand, a single phase – often development – can be divided into stages.

WEB INTEGRATION PROJECT PHASES IMAGE

1.Setting up a feasibility study and defining project goals

It is frequently the case that the project leaders define goals.  There is therefore a need to be specific and define goals particular to different sectors and, in some cases, for different target groups. It is also important to define metrics, which indicate goal fulfilment, in terms of visitor numbers, business or process goals or others.

2. Information and content architecture, prototype and implementation specification

This step deals with two basic questions: WHAT and HOW the project will be carried out. WHAT refers to the information/content architecture and the prototype, and, of course, with a suitable description of individual parts. For a more complicated specific functionality, which will require special conditions, software engineering suitable for describing such parts can be used (e.g. UML). Such a part should have maximum independence in terms of technology and is appropriate as documentation for tender proceedings for the supply of further parts of the development.

The HOW refers to the implementation specifications, which take into account specific questions about settings and operation. Output in the form of a document should clearly describe how the qualities applied to the platform will be used and how a specific of the functionality will be implemented, how any integration links will be created, data storage will be operated, and how technical architecture will be implemented, including future deployment. The issue of information migration is also important.

3. Creating graphic designs

The graphic designs define the solution’s visual appearance. In the second step it is important to identify key (node) pages which require separate design, and a uni page template should be created too, which also defines the appearance of the content elements used in the  user interface (buttons, links, tables, forms…). The graphic design is most often implemented in two stages. In the first stage, alternative proposals for the design are prepared in the form of a home page (or selected subpages) and a design is then selected, which will be worked up into the chosen number of key pages.

4. Development and testing

Development itself can be divided into several activities running in parallel. There is therefore an option to create a prototype directly on the existing platform relatively fast and start working on the content as quickly as possible. Despite the “simplicity” of the content, it is often the cornerstone of the entire project.

Installing and configuring the platform on either development or operating environment. It is recommended to address the issue of installation on the operating environment (hosting) at the very beginning of the project so any potential problems can be detected on time and they can be resolved.

  • Site building – preparation of the portal structure, including setting the language version, security, and user rights. Of course, it is better to have a platform where these issues can be addressed without the need for developers.
  • Content building – frequently includes content migration, which due to its nature requires the cooperation of developers. If content is addressed only at the level of working with the platform, or with the CMS, it is possible to start immediately after platform preparation, depending on the options, or, in cooperation with the site building part.
  • HTML coding requires a completed layout, but it can be worked on in parallel with site building and content building.
  • When programming new functionalities, the procedures of the chosen method are adhered to. Programming can be further divided into individual parts according to priorities, or possible independence of individual parts (modules). Subsequent testing undergoes several methods – every output of every project phase must be checked! You can read more about testing in Quality management and software testing in web integration.

Development ends with the project launch – either into the pilot phase or production phase.

Maintenance and support

The work does not stop after the project ends. Further development is essential in terms of project success and its flexibility, with regard to the changing customer needs. As was mentioned in the 10 tips for a successful web integration project article, it is vital to ensure guaranteed accessibility and development support (service).

You can now follow the next part – article called: Roles in a web integration project.