Implementing Qlik Sense

4.8 (5 reviews total)
By Ganapati Hegde , Kaushik Solanki
  • Instant online access to over 8,000+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Consultant - An Introduction

About this book

Qlik Sense is a leading platform for business intelligence (BI) solutions. Qlik Sense helps organizations in making informed decisions based on the data they have.

This book will teach you how to effectively use Qlik for optimum customer satisfaction. You will undergo a metamorphosis from a developer to a consultant who is capable of building the most suitable BI solutions for your clients. The book will take you through several business cases – this will give you enough insight to understand the needs of the client clearly and build a BI solution that meets or exceeds their expectations. Starting from the pre-project activities, you will go to the actual execution of the project, the implementation, and even maintenance. This book will give you all the information you need - from the strategy to requirement gathering to implementing BI solutions using Qlik Sense.

The book will empower you to take the right decisions in tricky and diffi cult situations while developing analytics and dashboards.

Publication date:
October 2017
Publisher
Packt
Pages
438
ISBN
9781786460448

 

Chapter 1. Consultant - An Introduction

In this chapter, we'll talk about consultancy and its importance, and how wearing the hat of a consultant helps in delivering successful projects. This chapter is useful for developers who aren't aware of who a consultant is, and what is expected from a consultant.

This chapter assumes the reader is conversant with basic Qlik development and is aware of terminologies used in business analytics. The BI market is growing at a phenomenal rate, and hence it is natural that consultants will play a big role. The figures quoted by Gartner for Analytics are mind-boggling indeed.

Note

Gartner says that the Worldwide Business Intelligence and Analytics Market will reach $18.3 billion in 2017.

This chapter will be covering the following topics:

  • Understanding who is a consultant
  • Importance of being a consultant
  • Difference between a developer and a consultant
  • Roles and responsibility of a consultant
  • Strategy which a consultant must follow
 

Understanding who is a consultant


Before we start the discussion on who a consultant is, let's take an analogy. Though the analogy has nothing to do with Information Technology, it helps you to relate the point which we are trying to make.

For a moment, let's assume you are sick. The sickness is causing you a lot of discomfort. It is decreasing your efficiency and your ability to work effectively and doesn’t allow you to focus.

For obvious reason, you go to a doctor. You wait for your turn. When it is time, you enter the doctor's room, but you see that the doctor is impatient and looks in a hurry. You complain about your ailment (say, stomach pain) and lo and behold, the doctors writes a prescription, collects the fees, and you are out of the clinic feeling disappointed. You might take the medicine or rush to another doctor. You would agree that the experience was not pleasant.

Let’s take the same example, but say that instead of an impatient doctor, you come across a doctor who is calm, composed, and welcomes you with a smile. He makes sure you are comfortable. He starts asking you questions. You complain of stomach pain. He asks you detailed questions, such as:

  • Is it the first time you are facing this or does it happen regularly?
  • What time of the day does it bother you?
  • Do you have any allergies to any specific foods?
  • What did you eat in the last 24 hours?

Plus, more questions which help in correct diagnosis.

As he asks these questions, you feel comfortable and that you are in safe hands and with the right doctor. The doctor proceeds with examining you and checks your pulse and blood pressure. Only then does he prescribe medicine. The doctor shows genuine intent to make you well and asks you for a follow-up visit to ensure that you are fully fit again.

Did you note the contrast in the approaches?

This is exactly what happens in IT world. If we equate it to the doctor-patient analogy, we can say the patient is similar to a customer who has business challenges and is looking for a doctor, who is, in this case a consultant to overcome the challenges and provide the right solution.

Just like every patient is different with a different constitution, similarly every business is different. In fact, the situation varies drastically across different industry verticals and across geographies.

Moreover, in the real world the situation is more complex, as a consultant must deal with multiple teams in an organization and each team has its respective set of challenges and different expectations.

A consultant is a person whose approach is to understand the business challenges and find solutions to them.

A consultant is the one who does a lot of ground work before he/she starts working on a project. The consultant brings in the best practices during various stages of the project. (The details will be covered in subsequent chapters.) A consultant must the business of the customer, understand the process, and the way existing reporting/analytics are done.

A customer will always prefer a person who understands his concerns, thinks proactively, and gives suggestions. A consultant needs to play an important role in all the aspects of a project. The book will take you through each of these aspects and help you in your transition towards becoming a consultant. The various aspects are mentioned as follows:

  • Preparation
  • Getting ready with the prerequisites
  • Requirement gathering
  • Architecture
  • Modeling
  • Designing
  • UI (User Interface)
  • UAT (User Acceptance and Training)
  • Go-live
  • Post Go-live steps

Each of these steps is important in its own way and each of them will have its own challenges. The book will also cover a consultant's journey in each of these steps. We have tried to give examples to make it easy for you to relate to the points which we are making.

 

Importance of being a consultant


After having understood who a consultant is, let's look at the importance of being one.

Before we get into the importance of a consultant, it’s important to understand the power of analytics and the role it plays in any business organization.

Business users are no longer looking only at just reporting. They now want analytics which helps them to look at data in a more scientific way. In fact, analytics has now become a decision-making system. As businesses become dynamic and competition fiercer, the window for making decisions is also shrinking.

With changing technology, companies no longer have an ERP as a data source. The information is now spread across different applications. The applications too are no longer on-premise; some of them have moved to the cloud. Even social media applications like Facebook and Twitter are now considered sources of information for companies. Big data is one of the buzz words, and Microsoft Excel still remains one of the prevalent data sources! It's important for customers to get the best from all the data sources.

Companies look at Analytics in multiple areas, such as:

  • Sales
  • Marketing
  • Finance
  • Operations
  • HR
  • Supply Chain
  • IT

Analytics brings great value to the company in each of these areas. We will delve deeper into these areas in further chapters, but for a brief understanding, let's look at why these areas consider analytics so valuable:

  • Sales looks for increasing profitability and increasing revenue
  • Marketing wants to up-sell and cross-sell, and improveReturn on Investment (ROI) on campaigns
  • Finance wants to find ways of reducing cost
  • Operations wants to streamline the process
  • HR wants analytics for talent retention, succession planning, reward management, and performance monitoring
  • The supply chain wants better sourcing and better vendor management
  • Information Technology looks for better asset management, service delivery, and IT project performance management

Let’s take an example of a fictitious company, say PQR Corp, which is a manufacturing company. PQR has a turnover of 150 million USD and has all the previously mentioned functions of sales, finance, operations, HR, supply chain, and IT.

If PQR Corp invests one million USD in Analytics (with the help of a good consultant, of course!), then a good consultant can not only recover the cost for PQR but can also make the investment turn substantially beneficial:

  • If he/she can help improve sales revenue by 10 percent, a company’s revenue can grow from say 150 million USD to 165 million USD, which is an increase of 15 million USD in revenue USD
  • If he/she can help in reduction of the inventory cost from 30 million USD to 20 million USD, it is a savings of 10 million
  • Similarly, if the consultant can help improve sourcing strategies and help save 5 percent in sourcing cost from 60 million USD to 57 million USD, a saving of 3 million USD can be achieved

The statistics are amazing. Considering the preceding example, one can easily see an overall benefit of 28 million USD. If one adds other benefits from other functions, like HR, IT, and/or operations, these numbers will grow.

When you look at the Key Result Area (KRA) of each of these functions, you can understand the mammoth implications of getting the BI strategy right. KRA are areas in business for which an individual or group is responsible.

You will appreciate how analytics plays a crucial role for a company and how you as a consultant can influence the success of an organization. The power of analysis helps organizations to understand their data better and to take better business decisions. A poorly executed Analytics implementation gives no added value to the organization and the investments go waste.

After being a developer, a natural progression in one's career is to look at becoming a consultant. Organizations look at consultants as trusted advisors. A good consultant always commands great respect from a client.

After years of development experience, a person is expected to want a more challenging role. A consultant carries tremendous responsibility on his/her shoulders. The approach which a consultant takes will have a direct impact on the fortunes of a company. Any company which invests heavily into an analytical software, like Qlik, will expect a good Return on Investment and a low cost of ownership.

 

Difference between a developer and consultant


In the previous sections, we looked at who a consultant is and the importance of being one. In this section, we will look at the difference between a developer and a consultant.

Being a consultant is a natural progression for a developer. It is always good to start your analytical journey by being a developer. In the lifecycle of a developer, one gets to learn the technical aspects of Business Intelligence(BI). A strong technology base is a very critical aspect that makes a developer a good developer. This phase exposes the developer to the execution phase of the project.

Let's say someone is planning to build a great building. He/she may hire the best of the people to build it and the people may put in their best efforts for that. A lot of time, effort, and money will be spent for this building to come up. It will take years for this effort and the building will be built. But when it’s time to occupy the building, the person may realize that there are a lot of design flaws which make the building difficult to use. The people who moved in will then slowly start moving out, simply because it's tough for them to live there.

This analogy holds true for many BI projects, where huge investments are made and the best of developers are hired, but the adoption of software is not up to the mark. The reasons could be many but the situation is certainly not the ideal one.

For a moment, in the preceding example, let’s say the person hires a fantastic architect. The architect spends a lot of time to understand what the person expects from the building, what purpose it is meant for, who the people are who will be living there, and what kind of lifestyle they will expect.

He/she then starts working on a detailed plan, going in to the minutest details of planning everything, such as the depth of the foundation, the number of gates in the building, the location and size of car parking, the number of elevators, the size of apartments, safety measures, and all other important aspects.

Now, when this meticulous planning is executed by a a set of experienced people, the result will be amazing, won't it? The project is bound to be successful and will deserve all the applause and accolades.

No doubt, a developer is an important part of a BI project; it’s important that the direction is right. Hence, it’s imperative that a developer, after a certain years of development experience, transitions himself/herself in to being a consultant. This is the precise reason why we are writing this book for budding developers--to help them move into a consultant role and contribute to and own project success.

 

Roles and responsibilities of a consultant


The previous section gave an idea about being a consultant and why a developer must look at progressing towards being a consultant.

This section will cover the overview of the roles and responsibilities of a consultant. The subsequent chapters will cover these in greater detail.

Roles of a consultant

The roles of a consultant can be summarized as:

  • Interacting with business users
  • Understanding the data sources
  • Setting the expectations correctly
  • Designing the perfect solution
  • Planning the Go-live
  • Planning for the future road-map

Interacting with business users

This is one of the most crucial phases of any BI project. This phase involves spending time with end users, understanding the business challenges, and the goals of the function and organization at large.

Usually, it’s not possible to get everything in a single meeting and several follow-up meetings will be required. Business users will fall in to various categories. There will be senior management, middle management, and regular users. Each of these profiles of business users will have different sets of expectations and KRAs. It’s important to map all these users as their buy-in is important for a project's success.

Understanding the data sources

One of the reasons people look at implementing BI solutions is to have a single source of truth. The technological advancements have made data spread across different applications. It’s important for the consultant to understand all the data sources. There could be Excel sheets, ERPs, cloud CRM, social media applications, big data, and legacy applications.

Qlik can usually connect to most of the data sources, but a recheck is important to ensure that it does. If a direct connection is not possible, alternate ways need to be explored. It could be as simple as taking CSV dump from that data source, or it could be using the SDK to write a custom connector.

Setting the expectations correctly

This is an often-neglected factor which later leads to disgruntlement among the users, and can lead to feeble adoption and project failures. It’s important to discuss with the users what is possible and what is not. Any workarounds which are possible should also be discussed. If a non-Qlik solution is being used, the business users may be accustomed to the way the earlier software worked.

The way a functionality worked in earlier software may be different in Qlik. Alternately, a consultant may need to look at other ways to achieve the exact functionality using extension objects. All of these need to be discussed, so that the users know what to expect and you can avoid backlash at a later time. Most of the non-Qlik BI solutions are query based and the reports developed in such solutions may show near real-time data. The consultant should discuss these aspects as well and prioritize which data needs to be refreshed at frequent intervals and which can be done at a periodic intervals.

Designing the perfect solution

A perfect foundation is required to build a structurally strong building. Similarly, a consultant has a crucial role to play in planning the solution. The solution architecture must be robust, scalable, and flexible. One of the important reasons for lower adoption is poor performance. Business users will not have the patience to wait for data to be refreshed when they select something.

The consultant must take this into account and understand all the factors which affect performance. For multi-geographical deployments, ensure multi-node deployments. The business users are always paranoid about security aspects. Qlik is very good at governance and security, and offers powerful ways to meet the security requirements. Modeling and design also play important roles.

The UI should be simple and intuitive. Since Qlik is based on responsive HTML 5 design and offers single development for laptops and handhelds, the design too should be well-thought of to make it easy for the users to use in multiple form factors.

Plan the Go-live

The consultant must properly plan the Go-live stage. The users, being new to the system, will be anxious and will expect a lot of support. This part of the project can be made easy with a planned UAT phase.

The consultant takes care of the minutest details to ensure client satisfaction. Simple factors like single sign-on can make the initial experience satisfying for the users. The queries raised should be addressed as soon as possible. Make the documents/manuals easily accessible to the users. Users accessing during non-office hours should also be able to refer to the same.

Plan for the future road-map

This, too, is an important point which gets missed out. Organizations start with functions which are high priority for them and subsequently roll it out to other functions. A function that potentially has a large user base may not have been considered and then suddenly the architecture may run into performance issues.

The consultant must also make a note of the rate at which data is growing and plan accordingly. The Qlik platform approach makes it a very versatile solution, allowing it to be used as embedded analytics as well. Hence, the consultant must plan if the organization is wanting to extend analytics to external users.

A consultant carries huge responsibilities, as he/she must implement the solution from start to end. A consultant must get involved in all the phases of development.

Responsibilities of a consultant

The responsibilities of a consultant can be summarized as :

  • Doing value adds
  • Documentation
  • Implementing best practices
  • User Acceptance and Training (UAT)
  • Post Go-live

Doing value adds

Business users broadly fall into two categories:

  • Users who are new to Analytics
  • Users who have been using an existing solution

The consultant must have different approaches for both the sets of users.

The consultant, while doing the requirement gathering, should also come up with suggestions which will be beneficial to the client. Any alternate approach which may better the end result should be proactively suggested. The value add should happen in UI aspects and even future road-maps.

Documentation

A great way to ensure that all major and minor points are noted is in the form of documentation. Documentation must happen in all the phases of projects. The consultant must ensure that he/she is prepared for requirement gathering stage by having a proper questionnaire.

This approach ensures nothing gets missed out. The requirements must be scoped, and if required, be broken into functional and technical parts. A project plan with timelines and a responsibility matrix helps both of the parties and avoids confusions. All prerequisites and system requirements from an infrastructure perspective should be documented and sent to the client.

A good approach is to run through the documents jointly with the concerned stakeholders and then take acceptance. Before the actual development starts, it’s important for the consultant to ensure that he/she and the client are on the same page. The documentation part takes some time, but shouldn't be ignored or taken lightly. A consultant must ensure that timely communication is sent out to the client during the development phases and that regular reviews are done to avoid last minute surprises.

Implementing best practices

Once a solution has been designed and agreed to by the client, the implementation process starts. Implementation has various stages, including the installation of Qlik Sense software, connection to the data sources, data modeling, user interface, validation, and testing. Using the best practices plays an important role in the performance of the software and helps with ease of use. The best practices also improve the flexibility and help increase adoption.

Best practices include writing perfect logic to do incremental data loads. Incremental loads help with faster data refreshes and at same time ease the load on the source systems. If multiple options are available, choose the one which gives better performance; for example, if you have the option of using ODBC or OLEDB, choose OLEDB, as OLEDB gives better performance.

A good approach is to make development as modular as possible. This approach makes the code flexible and easily manageable. The data modeling should be optimized to ensure performance even with an increase in data volumes.

The UI is another critical piece which has a direct impact on how the end user perceives the software. Ensure the Qlik Sense application is neatly categorized and the Dashboarding Analysis and Reporting (DAR) approach is followed. A sheet should be pleasing to the eyes. Too many objects make it difficult for the end users to comprehend.

Aspects like comments in code and brief descriptions of logic shouldn’t be ignored. Validation and test cases should be done thoroughly. Nothing irritates the user more than seeing incorrect data.

User Acceptance and Training (UAT)

Once the development is over, the crucial phase of User Acceptance and Training (UAT) starts. Just like a good trailer propels user interest and adds to the value of a movie, the UAT phase is where the consultant starts creating excitement in the end users. A lot of effort is required to make this phase successful.

A lot of time needs to be spent with the end users to make them comfortable. After validation from the consultant side, validation must also be undertaken by the end users. Any deviations should be noted and promptly fixed. Validations should be done thoroughly. Security aspects such as role based access, application rights, and data level security should be taken care of. On completion of the validation part, significant time should be allocated for user training.

The creation of an easy and user friendly manual must be done beforehand. Always remember that though you know the system thoroughly, the system is new for the user. Trainings should be conducted with small user sets. The size of batches for training should be such that every end user can be given attention. Record the sessions, thus making it easy for the user to refer back to it whenever required.

Simple, self-explanatory how-to videos (for example, how to make selection) make the user comfortable. Seeing a video is always easier than going through lengthy paragraphs! The training, if required, should be repeated. Ensure that the users are comfortable and can do the basic stuff easily. Allow the users to use it on both their laptops and handhelds. Also, publish a FAQ document.

Post Go-live

Once the project goes live, it’s not the time to relax! This phase will decide the adoption of the software and the overall success of the project. Use the Qlik Monitoring application to check all critical parameters, such as System performance.

Ensure all reload jobs are executing properly and that users see the correct data. Look for users who aren’t using the system. This can be infectious and spread to other users. Address their concerns and ensure a positive word spreads about the software. Plan an adoption strategy with the stakeholders.

At some organizations, the carrot and stick approach may be required. One good way to drive adoption is to ensure senior management uses it regularly; educate them on the benefits of doing their reviews on the Qlik application. Once the seniors start using the software, the other users are bound to start using it too. Identify your internal champion who will keep up the adoption drive once your job is over.

Qlik keeps releasing newer versions. Lot of times, new functionalities are introduced. A consultant must also plan for these upgrades. This gives an additional opportunity for the consultant to touch base with the end users by conducting a follow-up workshop/training.

 

Strategy that a consultant should follow


Though the topic mentions the strategy that a consultant should follow, in reality, there is no particular strategy which will work. Why is this so? Read on to find out.

Let’s again use an analogy. Consider that three obese people, who wish to lose weight, go to a dietitian. Will the dietitian prescribe the same diet plan for all the three? The probability of this happening is very remote. Why? Simply because the same plan will not work for all three!

The dietitian must look at several parameters before he/she can decide the plan. The factors he/she has to look at could be the age of the person, BMI, height, weight, ethnicity, medical history, diet preferences, the temperament of the person, food allergies, and so on.

Only after doing this study will the dietitian be able to make a diet plan which suits the patient. The plan may have to be fine-tuned a few times once the dietitian gets feedback from the patient. The diet plan may have to be coupled with exercise plans to meet the objective of weight loss in a scientific manner.

The BI consultant also faces similar situations when he/she has to plan the strategy. Every organization is different, and so the same strategy will not work every time. Let’s look at the parameters which can affect the strategy.

Size of the company

The size of company matters when deciding the BI strategy. A large organization is very different from a small organization. In a smaller organization, one person may perform multiple tasks. The C-level executives (CEO, CFO, COO, and CMO) can be accessed relatively easily. They will be willing to spend time with the consultant during the requirement gathering session, making the exercise simpler and faster.

Compare this to a large organization, and there is a huge level of hierarchy. The C-level executives are almost impossible to be reached. The people in the lower level of the hierarchy may have different thoughts, and hence, the consultant must spend a lot of time doing the requirement gathering sessions. The subsequent phases requiring user interaction will require a lot of detailing.

What system do they use currently?

How does this matter? It matters a lot because accordingly the approach and strategy of the consultant would vary. For example, a company which largely uses MS Excel would need a different approach; the users will be new to analytics, and hence the strategy for the roll-out would need to deliver a mix of analytics and reporting, and then gradually move to analytics.

The users of an organization who use a traditional BI system, like Business Objects, would already be exposed to some amount of Analytics, and so the excitement would be more towards data discovery and self-service. There could also be another category where the organizations are shifting from a new age BI solution, like Tableau or Power BI.

These will require different approaches and the users will largely be looking at bringing in multiple data sources and co-relations between different sources. The training for these different sets of users must be done according to the BI maturity levels.

Why do they want a new system?

This question is important, as the success of the project will depend on this. If the client is already using a BI system, there will be a strong reason to look for a change. The consultant needs to understand the bottlenecks faced by the end users and ensure that the new system overcomes them, and that it also delivers a lot of additional benefits.

What are the objectives and goals?

If the end user is not sure about the objectives and goals, the project is likely to suffer. Many a time, the users may not be able to express the requirements correctly. This is where the skill of a consultant will be tested thoroughly. The consultant has to ask the right questions and get the answers. It's best to proceed only when the objectives are clear.

Are the stakeholders identified?

No one likes to board a ship without a captain. Similarly, the stakeholders play an important role in the success of a project. There could be one stake holder or there could be multiple. The stake holder takes responsibility for a project from the client end and the consultant must work closely with the stake holder.

Is there a project champion?

A project champion is an important link in the BI cycle. The champion is usually the one who will get the credit for implementation of a project and who works very closely with the consultant to make the project successful. He/she helps the consultant to get interviews with the business users, helps to define the scope of the project, and plays an active part till the roll out. The champion becomes most valuable when the role of the consultant ends.

What are the data sources?

Though Qlik can connect to most of the data sources, this point is important. While planning a strategy for known data sources, such as SAP, Navision, or say, Oracle Business Suite, these being known data sources, there is a good amount of predictability. However, some customers have legacy applications or custom developed applications. The consultant needs to be aware of the potential challenges these systems may throw and plan the strategy accordingly.

Is the data clean?

Clean data is a consultant’s delight. This helps with implementation, and even the validation process gets easy. The challenge usually comes when the data is not clean and the consultant must also work on the strategy to clean the data.

Future road map

The consultant needs to know if the project will be extended to other functions in the future, whether external people will also be a part of it in the future, and whether any additional data sources are being planned. The solution design can be bettered once the consultant gets these details.

 

Summary


In this chapter, we looked at some important aspects. The BI market is looking extremely upbeat, and as more and more businesses start adopting analytics in a big way, the need for a trusted advisor who can help organizations in their analytical journeys, is strongly felt.

The chapter looked at understanding who a consultant is and the various aspects of consultancy. We also looked at the roles and responsibilities of a consultant. We also looked at strategies a consultant must adopt for a successful project.

The analogies provided in the chapter try to make you understand, in simple terms, the importance of being a consultant. The main intention of writing this chapter is to make you aware of the larger picture, and to help them understand the need to look at progressing to the role of a consultant.

Now that you have an idea about being a consultant, it's time to move to the next level. A good preparation is important for you to be successful. The next chapter will focus on how a consultant can prepare himself/herself for a project.

 

About the Authors

  • Ganapati Hegde

    Ganapati Hegde is an engineer by background. He carries an overall IT experience of over 16 years. He is very passionate about technology and is always looking out to learn newer technologies.

    He started his IT career with SK International where he headed Software Services and worked with myriad of technologies, including programming, databases, IT security, application virtualization, and cloud services. During his stint with SK International, he was involved in lot of integration projects and thus has good knowledge on API/SDK. He was instrumental in setting up practices such as RSA, Citrix, Oracle, and Salesforce.

    He is currently working with Predoole Analytics, an award winning Qlik partner in India, in the presales role. He has worked on BI projects in several industry verticals and works closely with customers, helping them in their BI strategies. His experience in other aspects of IT, like application design and development, cloud computing, networking, and IT Security, helps him to design perfect BI solutions. He conducts workshops to increase user awareness and drive adoption.

    He works on analysis of unstructured time stamped data and IOT as well, allowing customer to get business insights and help improve efficiency. This is being done with the help of big data platform Khika, which does real time co-relation of log data across sources. This helps customers mitigate risk and help in IT Audit and Compliance.

    Ganapati is now working on improving his knowledge of advanced analytics using technologies like R and python.

    Browse publications by this author
  • Kaushik Solanki

    Kaushik Solanki is a computer engineer by profession. He is working at Predoole Analytics Pvt Ltd as Qlik Architect & Delivery Manager. He holds overall 9 years of experience working on Qlik technology. His passion is to educate everyone about "Data Literacy" and "Qlik". He loves to spend time on Qlik community to help Qlik developers to learn and excel. He has a great understanding of project delivery right from the business requirement to final implementation. His experience in various domains has helped business to take valuable business decisions.

    Browse publications by this author

Latest Reviews

(5 reviews total)
Seems to be a interesting review of the product.
facilidad y rapidez al adquirirla
Excelente contenido. Recomendado para usuarios con alguna experiencia en qlikview/sense

Recommended For You

Book Title
Unlock this full book with a FREE 10-day trial
Start Free Trial