Musings on Ethical AI for Business and resources to help

When I was a kid, one of my favorite movies was Jurassic Park, because well…dinosaurs. I remember the movie being such a phenomenon too that summer, there were shirts and toys everywhere. I even remember going to the community pool and seeing adults everywhere holding the book with the silver cover and the T-Rex skull on it.

It really was a movie ahead of its time, not just in terms of special effects, or how it covers the topic of cloning, but in that it described a societal nexus we were all headed towards that many people didn’t quite see yet. One of my favorite moments in the movie is when Jeff Goldblum’s character, having just survived a T-Rex attack deliers this line:

See the source image

Technology has grown, by leaps and bounds, to the point now that many argue Moore’s law is irrelevant and outdated. And we are making advances in everything major area of life to the point that the world we grew up in is completely unrecognizable to that of our children. Furthermore to the point that this question has become all the more relevant today, with regard to artificial intelligence.

Just to be clear these are the thoughts of one developer / architect (me) on this subject and I would recommend you research this heavily, and come to your own conclusions, but these are my opinions and mine alone.

We have reached a period of time where more and more businesses and society in general are looking to artificial intelligence as a potential solution to solve a lot of problems and more and more the question of AI ethics has become prevalent. But what does that actually mean and how can an organization build AI solutions that serve to benefit all of humanity rather than cause unintended problems and potentially harm members of society.

The first part of this comes down to the recognition that artificial intelligence solutions need to be fully baked and great care needs to be given to supporting the idea of mitigating built in bias in both training data and the end results of the service. Now the question is what do I mean about bias. And I mean actively searching for potentially bad assumptions that might find their way into a model based upon a training dataset. Let’s take a good hypothetical case that strikes close to home for me.

If you wanted to build a system to identify patients that were at high risk for pneumonia. This was a hypothetical I talked to a colleague about a few months ago. If you took training data of conditions they have and an indicator of whether or not they ended up getting pneumonia, this would seem like a logical way to tackle the problem.

But there are potential bias that could occur based on the fact that many asthmatics like myself tend to seek proactive treatment, as we are at high risk, and many doctors treat colds very aggressively. Mainly because when we get pneumonia it can be life threatening. So if you don’t account for this bias it might skew the results of any AI system. Because you likely won’t see many asthmatics appear in your training data that actually got pneumonia.

Or another potential consideration could be location, if I take my data sample just from the southwest like Arizona, dry climates tend to be better for people with respiratory problems and they might have lower risk of pneumonia.

My point is the idea of how you gather data and create a training data set is something that requires a significant amount of thought and care to ensure success.

The other major problem is that every AI system is unique in the implications of a bad result. In the above case, its life threatening, in terms of a recommendations engine for Netflix, it means I miss a movie I might like. Very different results and impact on lives. And this cannot be ignored as it really does figure into the overall equation.

So the question becomes how do we ensure that we are doing the right thing with AI solutions? The answer is to take the time to decide on what values as an organization we will embrace at our core for these solutions. We need to make value driven decisions on what type of implications we are concerned about and let those values guide our technology decisions.

For a long time values have been one of the deciding factors between successful organizations and unsuccessful ones. The one example that comes to mind was the Tylenol situation where a batch of Tylenol had been tampered with. The board had a choice, pull all the Tylenol on market shelves for public safety and hurt their shareholders or protect share holders and deny. The company values indicated that customers must always come first and it made their decision clear. And it was absolutely the right decision. I’m giving a seriously abridged version, but here’s a link to an article on the scare.

Microsoft actually released an AI School for business to help customers to get a good starting point for figuring that out. They also made several tracks for a variety of industries to help with what should be considered for each industry. Microsoft has also made their position on ethical AI very clear in a blog post by Company President Brad Smith and Our Approach: Microsoft AI

Below are the links to some of the training courses on the subject:

Along side this, there has been a lot of discussion around this, from some of the biggest executives in the AI space, including Satya Nadella:

But one of the most interesting voices I’ve heard with regard to the ethics and future of AI is Calum Chace, and I would tell you to watch this as it really goes into the depth of the challenges and ways that if AI is not handled responsibly we are looking at another major singularity in human evolution:

This is a complicated and multi-faceted topic that is great food for thought on a Friday. Empathy is the most important elements of any technology solution as these solutions are having greater and greater ramifications on society.

Staying Organized with my “digital brain”.

Hello All, so as you probably noticed, I’m trying to do more posts, and trying to cover a wide range of topics. So for this talk, I thought I’d take time to talk about how I stay organized and stay on top of my day.

Productivity methods are a dime a dozen, and honestly everyone has their own flavor of an amalgamation of several methods to keep control of the chaos. For me, I went through a lot of iterations, and then finally settle on the system I describe here to keep myself on top of everything in my life.

Now for all the different variations out there, I know lots of people are still exploring options, which is why I decided to document mine here in hopes that it might help someone else.

So let’s start with tools, for me I use Microsoft To-Do, and its not just cause of where I work, but ultimately I use this tool because I was using Wunderlist, but ended up switching because they ended support of Wunderlist, replacing it with To-Do. So that was the driver, but I also did it, because it supports tags in the text of the items, which helps me to organize them.

So first, I break out my tasks into categories with a tag to start, the categories I use are:

  • Action: These are items that require me to take some small action, like send an email, make a phone call, reply to something, or answer a question. I try to keep these as small items.
  • Investigate: These are items that I need to research or look into, things that require me to do some digging to find an answer.
  • Discuss: These are items that I’ve made a note to get in touch with someone else and discuss a topic.
  • Build: These are my favorite kind of items, this is me taking coding action of some kind, and building something, or working out an idea. Where I am focused on the act of creating something.
  • Learn: These are items that involve my learning goals, to push myself to learn something new and keep it tactical.

Now each day, To-Do has this concept of “My Day” where you take tasks from your task list and indicate that they are going to be part of your day. Now I sort my day alphabetically so that the above items are organized in a way that lines up with how I approach them.

For me I usually tackle as many actions as I can right away and get them out of the way for the first hour of my day, and then spend the next 6 hours as a mix of new actions, and build / investigate actions.  Finally I have a set section of my week that is spent of learning activities.  The idea being to quote Bobby Axelrod, “The successful figure out how to both, handle the immediate while securing the future.”

Finally I maintain a separate list called #Waiting(…). When I am awaiting a response from someone, I change the category (like #Action) to #Waiting(name of person) and move it to the waiting list and take it off “My Day”. This let’s me put it out of my mind without losing track of the item.

After the category, I add the group, these are customer names for work, or a designation to describe the sub category of the work.  Like for example this is a monthly recurring task:

#Action – #Financial – Pay Monthly Bill’s

This allows me to quickly group the category or all “Financial” tasks if I need a big picture.  

I have been using this system for the past year and it’s done a lot to help me stay organized and measure my impact not activity.

I’ve talked previously about how import impact is over activity. And one of the downsides of many of these kinds of systems is that people tend to focus their energy on the “checking off items” and not on the overall impact of those items. I find by using this kind of grouping on the front I am able to focus energy on tasks that are high impact not low impact.

At the end of the day productivity itself is a lie and I believe that completely the idea is not to produce more, but to make every action have a return on investment.

Another book, Essentialism by Greg McKeown calls out this difference in basically saying that the key is to make the distinction of saying “what can I go big on?” or its either a “Hell Yes” or an “Absolute No”. So I find this system assists me by allowing me to make sure that I am focusing on tasks that will return dividends and not on topics that are smaller activity just to drive “checked” items.

Starting out with Data Science, where to go from here

Data Science, let’s get started!

You can’t turn around anymore without hearing people talk about data. It’s everywhere, and honestly its only growing more. Here are a couple of statistics I found interesting (all from Forbes). The big one being for me, 79% of enterprise executives agree that companies that do not embrace Big Data will lose their competitive position and could face extinction.

Let’s stop and think about that a minute, AI is all over the news, and people are constantly figuring out new ways to leverage data to encourage new innovations. It really is quite the time to be alive!

So that being said, I’ve decided to start to shift my focus and learn more about this field and how to leverage it for the future. And I know there are a lot of other people out there in the same boat as me, so I figured I’d start documenting it all here and help those looking for resources with some of the ones I’ve found.

So where to start, I started with a link to this course track:

Data Science Track from Microsoft Academy:
This takes a bunch of courses on EdX and puts them into a nice track and I find that this is a good 100 level entry to Data Science, AI and Analytics. I’m halfway through now, and working through the content and have found it helpful.

All Posts

Goals and Grit

Hello All, I wanted to shake things up a little bit and talk about a book I have been working my way through and goals. So its officially January, and a lot of us are looking at the great new year like a blank canvas, waiting to be painted. I have to be honest, I’ve always been a fan of New Years, not the holiday or New Years Eve, although everyone loves a good party night. But every year I enjoy the act of self-reflection and planning that goes into the new year, and the chance to grow and improve.

But the one thing I hate about this process is during the self-reflection, admitting where you came up short. Where did you stumble or fail, what went wrong? Now if I’m being honest I’m a DevOps guy and as a result am big on admitting failure. But if we look at this from a DevOps perspective, teams grow when they fail fast, and on some level this yearly retrospective ritual flies in the face of that.

Lately I’ve been reading a great book call Grit: The Power of Passion and Perseverance by Angela Duckworth. And it really is an amazing book that will change the way you look as success on the whole. Really it promotes this concept that success is not built on talent, but rather on the determination and passion of the person.

In the beginning of the book she calls out West Point. West Point has one of the most rigorous recruiting processes in history, and they only take the best and brightest into their program. But despite that, they were seeing a very high drop out rate, and couldn’t figure out why. The short version is because the people who are most talented are rarely tested, and if you’ve never had to overcome obstacles before, then you are likely to back down when faced with your first wall.

The book also gives an interesting take on goal planning that I had never done before, and its one that to me makes a lot of sense, and I’m giving it a try this year. So I will have to update the blog here with the results. But the one method she talks about was discussed by Warren Buffet, arguably one of the most successful business men of our time. In the book, he describes a planning process he does, which is to write down 25 goals, 25 things you’d like to accomplish this year. This sounds like a lot, but if you start writing goals, you’ll find its not hard. I hit 30 without breaking a sweat. And then pick from that list the top 5, and put those in the “MUST DO” category.

And take the rest…and put them in the “NOT UNDER ANY CIRCUMSTANCES” category. The idea is this, your time is your most valuable resource, and multi-tasking is an illusion. So you should focus your attention on these 5, and the other 20 are a distraction. The focus being that being successful isn’t about saying “Yes”, its about saying “No”.

For me this resonates, as if I pour all my attention and time into 5 specific goals, I am way more likely to accomplish them with greater impact. And this also works well with another planning approach that I’ve leveraged before, which is described by Steven Covey’s 7 Habits of Highly Effective People.

In his book, he describes the idea that if you think of your day as a bucket, and I tell you to fit big rocks, little rocks, and sand into the bucket. What is the most logical way to fill it? Big Rocks, then little, then Sand, and if we are being honest we should approach our goals the same way. But most times we don’t, we avoid the big tasks, and small tasks, and fill our day with emails first.

So he recommends breaking things into the following matrix (called the Eisenhower Decision Matrix):

Important / Urgent Important / Not Urgent
Not important / Urgent Not Important / Not Urgent

In this matrix, the idea is that “Important” means that it lines up with your goals, which I would argue are the five goals provided above. From there we can look at what’s urgent and aligns to our goals as where our time should be spent.

  • Q1 of the above box, is for things that are urgent and related to your goals, like deadlines, crisis, opportunities that are time sensitive.
  • Q2 of the above are items that don’t have a pressing deadline but focus on your goal, this should be next on your priority list.
  • Q3 are items that require immediate attention but don’t move us forward. Which should try to minimize these tasks as much as possible. Things like phone calls, emails, etc.
  • Q4 are items which aren’t urgent or important and are basically time wasters, eliminate at all costs.

So leveraging the above matrix, makes it very easy to keep our focus where it should be on our 5 goals, and avoiding the distractions that undermine our success.

Getting Started

So I thought I would start this new direction for the blog with a post about a topic I get asked about a lot.

“I want to get started in programming, how do I do that?”

And this is a great question, and one that makes a lot of sense to me as the lines between technology and business are blurring.  And more and more people are interacting with developers in their daily life as part of their current jobs, and its leading to people’s eyes being opened to the opportunities in this place.

My next question is normally “Why?” and at first that usually takes people back, but this is an important thing to ask yourself.  I ask this because to be honest, switching fields and taking on something like becoming a developer isn’t an easy journey, and if your motives aren’t clear than your going to set yourself up for failure.  I generally think it’s smart to ask if this is a worthwhile investment of your time.  Because as much as I love this industry, it can be quite brutal at times.

Don’t get me wrong, I’m not making these statements as some grand arbiter who decides if you are worthy of becoming an almighty developer.  I make these statements because the simple truth is that to work as a developer and achieve success you need to be willing to accept the reality, which is less Minority Report and steve jobs, and more the craziness of Silicon Valley.

I would tell you to ask the following questions:

  • Do you like continual education?  Are you willing to read about this stuff in your spare time?
  • Do you like to tinker with things?
  • Do you have “Grit”?

For the final question, specifically I’m referring to the fantastic book by Angela Duckworth, that describes Grit as basically being the intersection of Passion and Perseverance, and that it is the most important part of any equation where someone is hoping for success.  And I would argue, even more so true for developers.

If you look online at the “successful developers” they all have one thing in common…they live for this stuff.  And spend a lot of time doing it, and finding new ways to challenge themselves and push boundaries.  They are constantly looking for ways to change their mindset to find new opportunities and directions.  I don’t claim to be a famous developer, but I can tell you that I’m proud of where I’ve gone in my career and I genuinely love what I do, and much like those “famous developers”, my wife describes me as a “well documented nerd”.

So now the important question is, did I lose you?  If not, I think this is a rewarding career option that can take you in some interesting directions, but you need to know that it will be a slow burn.  This is not something where you will be writing award winning apps by Monday if you start on Friday.

Below are some links to help you out, feel free to reach out with questions, I’ve tried to provide a lot of training material and some notes about each link:

Visual Studio 2017 Community Edition – This is the primary IDE (integrated developer environment) for all things in the Micr0soft stack. And the community edition is free, which is even better.

https://www.visualstudio.com/downloads/

When you go to install it, its going to ask you to customize the install, by selecting different packages and what not.

Great start: C# fundamentals for Absolute Beginners:

https://mva.microsoft.com/en-US/training-courses/16169?l=Lvld4EQIC_2706218949

For training materials I would recommend the following:

Microsoft Virtual Academy – https://mva.microsoft.com/

This is a great site for a lot of training content Microsoft generates to help. I would point you to the absolute beginner classes as well as the learning paths. They also do a good job of categorizing training (100 level, 200 level etc)

C# Courses:

https://mva.microsoft.com/training-topics/c-app-development#!jobf=Developer&lang=1033

Visual Studio Training:

https://mva.microsoft.com/product-training/visual-studio-courses#!jobf=Developer&lang=1033

Getting started with Visual Studio 2017

https://mva.microsoft.com/en-US/training-courses/getting-started-with-visual-studio-2017-17798?l=9oIw0FD6D_3611787171

Learning Paths:

https://mva.microsoft.com/LearningPaths.aspx

Channel 9 – https://channel9.msdn.com/

Great site for general videos, and is updated all the time.

I recommend web as a good place to start, the .net web platform is called ASP.NET and uses HTML, C#, and some javascript to work. (C# and Javascript syntax are pretty close)

https://www.asp.net/get-started

https://www.asp.net/mvc/overview/getting-started

This is probably a good start.

Welcome to Mack Bytes

Hello all, consider this the inaugural post of the new Mack Bytes blog.  Welcome!  I’ve chosen to sort of rebrand this blog, and sort of relaunch it for a couple of reasons.  The first and foremost of which is that the other blog has sort of faded.

To be honest I started that blob it feels like a life-time ago, and it was started with the intention of creating a blog to provide articles that were intended to be “how-to” guides, and other targeted posts strictly only on software development.  And there’s nothing wrong with that, but if I’m being honest, I had trouble continually updating it, and it felt like every post started with “Let me start by apologizing for the lack of updates”.  And that’s not a good place to be.  I also feel like my life has changed actually quite a bit recently, and I sort of wanted to refocus my efforts.  So over the past year I’ve been doing a lot of thinking, and planning.  And this has all been geared around life goals and direction.  And I really wanted to relaunch this blog with the intention of being more than it was before.  Don’t get me wrong I’m a big nerd at heart, so there will always be the technical posts, but this newly branded blog is more about changing to being a general blog to help people as I figure this stuff out for myself.

In essence, I’m inviting you all on my journey.  So I’ve found myself at the tender age of 35, and realized that the journey that got me to where I am is very different from the plan when I graduated college, and I’m looking forward to where I can go next.  But really for me to do that, a lot of factors have to be considered.  And a lot will likely happen along the way.  I will be using this blog as a platform to help people and share insights.  And I will also be leveraging other social media platforms as a way of driving those messages.  So if you like what you see here, please pass it along to someone else, if you don’t please talk to me.  I’d love to start a dialog exchange if you disagree with my thoughts, actions, or beliefs.  Dialog is the best way to really grow, and challenging dialog has a way of making you re-examine your beliefs and actions.

So here we go, the first post of the new blog, looking forward to more.