I tend to simplify. Perhaps over-simplify. Ask my 14-year-old daughter how often she hears “That’s really quite simple” to which she has to answer, “No, it’s not.” She’s probably right, however, given I’m older than her, I have a decent shot at being right. At least once. Perhaps it’s this time when considering just how simple all this new tech capability is in the digital business world. Really! Hear me out. (Stop rolling your eyes.)
Selling the Drama
I love the band LIVE. Their track “Selling the Drama” includes the verse,
I've willed, I've walked, I've read
I've talked, I know, I know,
I've been here before, yeah
Incredibly relevant to simplifying things (and my posts). Mantra: It’s been done before despite all the new talk.
Hype seems to surround tech advances these days more than ever. I think the Gartner Hype Cycle should reflect a MUCH steeper and MUCH higher front end to the peak of inflated expectations. The Hype Cycle is a great litmus test for the “fake news” of how AI / blockchain / (substitute new tech here) is going to solve all problems, take all jobs, get absolutely anyone elected to President. The BOTs have arrived, People. Ask them to take you to their leader. Who is that? Amazon? Google? Facebook? Apple? All plausible candidates. Perhaps look for whoever is SCL’s (Cambridge Analytica’s parent) next big client. Not sure what that last reference is about? Conversation for another day / post.

Back to topic. Simplicity in the face of tech hype. Gartner was already mapping the transformation of business in 2014 due to the “Nexus of Forces” (SMCI – social, mobile, cloud and information). 2014, that’s so long ago right? Have those elements been replaced now by BOTs, AR (augmented reality), ICO’s and Thinking Machines? Yes, the acronym would be BAIT. Wonder why? Simplified view (an opinion with which you are free to disagree – please do) is that no, the big trends of SMIC are still the major trends. They have spawned new focus elements (BAIT are examples) and will continue to do so at speed. Probably almost as fast as the changing value of Bitcoin. Is it really that difficult to stay up to speed and leverage the new opportunities in these and other trending technologies? Again, no. Not when you can over-simply as I do. Hence the easy as Ai, Bi, Ci.
Easy as AI, BI, CI
Any reading (meaning YouTube search) on AI will point you to the fact that AI has been around for a long time. Like more than a year! (That’s my Daughter’s comment.) The flood of exposure in the media and online platforms is just a reflection that the tech has found its way into (early) easy to try / use formats. Google, Microsoft and Amazon all have incredibly capable variants that are made available for use through UI driven configurations. Yes, UI driven. Fill in the boxes, point to data, submit. Watch machine do smart things. The end is nigh. Except not. ML has been around for a long time. The algorithms were just tough to create, needed huge processing power and required stuff the rest of us mortals avoided: math and stats. Yuck. But now that’s hidden behind a nice shiny wrapper of cloud computing and add-ons (billable). So, we now all have access to do smart analysis and use correlation. However, what to do with that new hammer? Are you looking for a nail or do you have one? Other aspects of AI similarly are becoming incorporated easily into process/applications. As examples NLP (natural language processing) is ubiquitous (just ask your smartphone) and available as a service for incorporation into your business processes (think online support chat by BOT). More? Computer vision and robotics in warehouses (ask Amazon), Ad targeting in Facebook and Google, AR apps on the App Store. All too simple?
Business Intelligence (BI) similarly has been a part of the corporate landscape forever. At least as long as Internet Dinosaurs like myself remember (I am a fossil in current Internet age terms). The accelerator these days is that the tech has moved the capability from the IT department (“give me a report please IT”) into the hands of the business users (“I’ll do it myself thanks with Excel / Power BI etc.”). Fantastic. Faster, better, mobile, more. Bad decisions made with confidence based on bad data. Damn. Thought that does point out the new role for IT in partnership with Business: effective Data Stewardship and Data Strategy. Modern BI capability is available via instant online subscription and comes with immediately available AI links by the way. Imagine that. Challenge is, as before, do you know the right questions to be asking of this new analytical wonder? Do you have the data you need? Is that data complete, accurate and secure?
CI (Continuous improvement) is my last pick in justifying my “it’s all easy in digital” throwaway statement. With links to six sigma and subsequent variations, the change in accessibility and capability nowadays is absolutely stunning. You can learn about CI in bite sizes of your choice on YouTube. Enough to understand what it is and… plug into a platform that will do the work for you and present the analysis in pretty pictures. Dinosaur-day processing constraints that necessitated sampling data (n=20 right?) are gone. We have scalable cloud processing and storage. Just process ALL the data. Now. No sample. Technique of analysis: leave it to the machine to find the best statistical fit. What was your hypothesis again? That’s probably still the most important question. Also, the human element that requires some creativity and intuition to get to an analysis that will deliver value faster. If you always do what you have always done, expect similar results (until someone eats your lunch). If you leverage CI, you seek improvement, innovation, revolution and becoming the moving target. Just move fast. Remember Bitcoin.
Value (forget the rest, read this)
Hype is greater than ever surrounding new tech and its progression. The speed and seemingly SCI-FI type new capabilities (Googles AlphaGo) astound on a daily basis. Despite the new acronyms (we in IT and Consulting make a living out of those), the new things really are just old things made easier. That’s good news. AI, BI and CI are phenomenal levers to apply in your world (business or otherwise). Their ability to help drive innovation, improvement and revolution are limited only by their maturity (check the Hype Cycles please) and the creativity of us simple users. Start your process with the simple question “What value can I deliver and where is the opportunity to find that value?” (Don’t tell the machines this. It’s our secret advantage given we can actually answer that question.)
We all got a lot smarter, faster and capable thanks to first knowing our ABC’s and now our Ai’s, Bi’s and Ci’s. Need a plan of attack for what to do next? See my next post or check YouTube. It’s probably there already in a perfect 2’35” clip by some BOT that just parsed this post. But then you already knew that given you had SIRI find and read this article to you, right?
In today's competitive business landscape we often hear that innovation, new technology and digital transformation is the answer to success. However, a critical element for any business to succeed ultimately lies with its people and how they communicate with each other.
So what are the right ingredients to building relationships and creating quality conversations? What makes an Agile team successfully work through daily standups, sprints and retrospectives? At the same token, how do we improve the collaboration between the various teams in a Waterfall environment? The one key element is trust. If we trust an individual, we are more open to ideas and new ways of thinking.
A new field developed by Judith E. Glaser called Conversational Intelligence (C-IQ) shows what it is about conversations that trigger trust or distrust. Thanks to advances in neuroscience we can understand that every conversation has a specific physiological impact. Some discussions can make us feel good or bad because neurochemicals released in our brains affect how we feel.
C-IQ is not about how smart we are, but how open we are to learning new and effective powerful conversational rituals that prime the brain for trust, partnership, and mutual success. If we look at working in an Agile way, effective communication is essential for teams to deliver consistently. One of the Agile Manifesto's core values is individuals and interactions over processes and tools. "Give them the environment and support they need, and trust them to get the job done."
C-IQ lies at the heart of building trust. A safe environment without fear is required to achieve this. By tapping into C-IQ, conversations trigger different brain activities for constructive communication. (That's the feel good and trust or distrust moment)
Some of the benefits of utilising Conversational Intelligence include:
- To activate better conversations and connect with others in a healthy and productive way. Breakdowns often occur when people talk past each other, not to each other.
- Down-regulating behaviours that activate the ‘fear’ hormone and up-regulating behaviours that activate the ‘bonding’ hormone.
- Being able to listen to connect and to not wonder what your next words will be in a conversation.
- Learning how to deal with unhealthy conversations and moving from judgement to appreciation.
All these benefits ring true to working in the software development environment. C-IQ supports a shift from “I” to “WE”, the basis of working effectively in teams. Business people and developers must work together daily throughout the software development process. The Agile Manifesto and values emphasises the role of conversations.
It is clear from the above that conversational intelligence is also a key competence for Business Analysts to have since conversations and building trust are at the core of their work.
Sound research has been invested in C-IQ based on the neurochemistry of the brain through conversations. It is up to us to discover how to build on relationships with our colleagues and teams.
Carina Fourie will present on Conversational Intelligence – the neuroscience behind conversations at the upcoming BA Summit on the 2 October at 10am. To register, click here: https://basummit.co.za/
The DVT Academy offers Conversational Intelligence Workshops to organisations and teams. Click here for more information: https://www.dvt.co.za/training-courses-conversational-intelligence-skills-development

In this tutorial we will learn how to authenticate using google sign-in. Google enables us to register/sign-in to our apps using different social accounts such Facebook, Twitter or in our case Google. Let’s get started!
Android studio project
Create a new Android studio project and name it “FirebaseAuthGoogle”. For the Company domain use “myricseptember.com” and ensure that the Include Kotlin support checkbox is selected.

Leave the minimum SDK as it is and click Next. Select “Empty Activity”, than click Next. Name the activity “SignInActivity” than click Finish.
Create a firebase project
The first step is to create a Firebase project within your Firebase Console. Click on Add project:

Name your project “FirebaseAuthGoogle”. Once you’ve given your project a name, read and accepted any terms and conditions, then click the ‘Create project’ button. Once done you should see the following screen indicating that the project was successfully created.

Click the continue button where you will be taken to the welcome screen. On this screen you are given the option to create either an iOS, Android or web app. We are creating an Android app so click on that option:

Another window will open requesting some information relating to your application. Fill in the package name “com.myricseptember.firebaseauthgoogle” than add your SHA 1 key. If you don’t know how to get your SHA key follow these steps:
- With Android Studio open, click on the Gradle menu on the right to open it.
- Open the folder structure as follows: FirebaseAuthGoogle -> :app ->Tasks->android -> then double click on ‘signingReport’

Note: if the packages are not showing in the gradle menu just click the refresh button:
A window will open at the bottom from which you can get your SHA1 key:

Note: Remember to select the app option in your Android Studio project once you have your SHA key, see below:
![]()
Add the SHA key and click On Register app:

Download the JSON file and place it within your android app as indicated by the arrows then click ‘Next’:

Once you get to the screen below just click next since we will be adding all the necessary gradle dependencies at a later stage. Also after the Add Firebase SDK screen Firebase will try to check if the app has made contact, just click on ‘skip this step’:

Great! Your application is now connected to firebase, but we still have some more work to do. Let’s get to it!
Enable Google Sign-In on Firebase
In your Firebase console on the left click on the ‘Authentication’ item. From the tabs select ‘Sign-In method’ to open the window below. Select the following:

Enable Google Sign-In in the top right corner. Also provide a ‘Project support email’ and click Save.
Add Gradle dependencies
Next, go to your Android Studio project. To enable social authentication we need to add some Firebase dependencies manually. It is import to use the latest Google Login SDK version which you can find here.
Here you’ll find the latest Firebase dependencies.
Open the project level Build.gradle :
Then add the following dependency:

Next open the Module:app level gradle dependency:

And add the following dependencies:

Once all these dependencies have been added, Android studio will require you to sync the project. This will download all the dependencies from the internet and will require you to have an internet connection.
Note: It is very important to ensure that you have “Google Play Services’ installed. You can do so by clicking on ‘Tools’ than selecting ‘SDK Manager’ as seen below:

After clicking on ‘SDK Manager’ the below window should open. Select the ‘Google Play Services’ checkbox and click apply. This will ensure that Sign-In works as expected on the Google Emulator as well.

Create a simple UI
Next we will create a simple UI with a single button in the middle of the screen. You can make your UI pretty but for demo purposes we are going to keep things simple.

Add the following to your “activity_sign_in.xml” xml file:

Since you need to connect to the network to authenticate with Firebase you will need to add the internet permission to your AndroidMenifest.xml:

Integrating Google SignIn
Within the SignInActivity add the following variables for the GoogleSignInClient and GoogleSignInOptions.

Next add the following method to your code. The method is used to request the user data required by your app such as the users’ ID and basic profile information, email address and Id token. Call this method in your OnCreate() method.

Add the setupUI() method to set up the OnClickListener for our login button. This method gets called in the OnCreate() method:

Next, we add a singIn() method which will be called when the user presses on the log in button. The user will be prompted to select an authentication account. The signInIntent is used to handle the sign in process and for starting the intent the startActivityForResult() is used.

Once done the onActivityResult() is called in which the selected google account is retrieved and sent to Firebase for authentication.

Note: the implementation for the firebaseAuthWithGoogle() method will be discussed below.
The authentication with Google step is now completed. Next we need to authenticate with Firebase. Declare an instance of the FirebaseAuth object.

Then in the onCreate method, get the shared instance of the FirebaseAuth object

After a user successfully signs in, gets an ID token from the GoogleSignInAccount object, exchange it for a Firebase credential, and authenticate with Firebase using the Firebase credential:

Note: The HomeActivity will be created soon
To avoid the need for the user to sign in every time the app is launched it would be better to check if the user is signed in already. This can be achieved by checking if the current user is already signed in from within the onStart() method:

Create a companion object to open the SignInActivity via intent.

Great! Everything for authentication is set up. Next we just need to create a second screen (HomeActivity) to which we will navigate once the user is successfully authenticated. You can use this screen to retrieve and display the current user’s information from the Firebase database, but that is out of the scope of this tutorial. We will simply display some text congratulating the user for successfully signing in and have a log out button at the bottom.
Home Screen
Create an Activity called HomeActivity. The activity will look like the screen below once done:

The XML for activity_home.xml should look something like the below:

Within HomeActivity add the setupUI() method which will be used to set up the click listener for the sign out button. Call the setupUI() method within your onCreate() method.

Next create the signOut() method which will be used to sign the user out of the application.

Finally create a companion object to to open the HomeActivity via intent.

We’re Done! Let’s run the application and celebrate our hard work.
Conclusion
In this article we have built a simple application that makes use of Google authentication. Firebase is great and there is much more you can do with it. I will be posting more Kotlin articles and will be using more of Firebase. I look forward to your feedback and would advise you to take a look at the repo.
Thank you for reading this article and follow me on Twitter and on Medium for future articles.
Article also published on Medium.com.
