Engineering of Diversity, Equity, and Inclusion

The following was first shared as my comments on another's post on social media on the subject of whether ongoing diversity, equity, and inclusion (DEI) efforts being made in the world could benefit from tackling the problem from an engineering mindset.

It's a very interesting question. One that is difficult to write about critically without being misunderstood, but I'm going to try here. 

I've been a bit of a passive skeptic about all the talk on this subject and perhaps more so on the actions I've observed being taken which appear, in most cases, to be more concerned with the optics of what is being done than the outcomes of the efforts. One could argue that this is classic virtue signaling.

I like the article because it suggests that we ought to engineer a solution to the problem. I agree but wonder if we can engineer any solution to any problem without understanding the root causes of the problem.

Our challenge in this arena is that we often start with stereotypical assumptions about those causes, in part because exploring it further risks significant discomfort or even loss of standing in one's community or with one's employer.

Another challenge is that we assume that generalized reasons and rationale apply broadly to a wide spectrum of individuals without really knowing them as individuals, unique in so many ways beyond the meager identifiers of race, sex, age, ethnicity, sexual preference, gender identity, etc.

Individuals and interactions are far more complex than identities and equity. And nowhere in general DEI conversations have I noticed any interest in motives, desires, interests, and attraction to the things we often target for balance in diversity, equity, and inclusion. 

I wonder if we would have more success by focusing on individuals and attracting them to roles they might not have otherwise considered by better understanding their individuality than by their commonly identifiable identity markers.

And I wonder if we discover that the individual desires something else entirely that seems unattainable but does not align with our DEI goals, will we be just as interested in helping that one individual when it won't show up in our desired outcome statistics. Maybe that's the human element missing from our engineering mindset.

So what is to be done? Can we engineer ourselves out of this problem? As engineers, we tend to ignore the social visibility campaigns and try to solve the problem. It's the Dilbert Knack in all of us. 

My hope is that we'll learn how to fix the human side of things that, for what must be a variety of reasons, have left some populations behind in this digital new world we have created. 

And along the way, maybe those we've left behind can teach us a thing or two about what we've given up. That is my hope, that we will preserve humanity in the digital world.

 

 

Social Media Doomed to Fail

Consider for a moment the following headlines.

Now read Twitter's official policy position.

If the hypocrisy and cruel irony escapes you, it may be wise to check the news more often.

Facebook and Twitter have recently banned a variety of voices, including that of President Donald I. Trump, from their platforms. They claim falsely that the President actually invited the violence that occurred at the Capitol last Wednesday. He certainly did not help, but it's a major leap to accuse him of giving the criminal trespassers on the Capitol actual marching orders. To arrive at that level of blame, we must also hold a variety of politicians to blame for the riots in a variety of cities throughout the year 2020.

Then as a result, Apple, Google, and Amazon decided to pile onto the virtue signaling censorship movement and shut down Parler, the open social media competition. The violence at the Capitol gave all these players the pretense to silence their political enemies, and the results in Georgia assured them that nobody in Washington would hold them accountable. All impediments to their fascist rage against the right being removed, they acted swiftly.

But apparently the global policy boys at Twitter object to the same thing happening to their users as a consequence of the actions taken by a totalitarian regime in Uganda. How ironic. The Twitter pot seem to be calling the Twitter kettle black. 

I'll copy a comment I made in reply to a comment made on another post:

If we can't tolerate speech with which we disagree, we can't have freedom of speech. In high school, at the height of the cold war, our American Studies teacher asked if we were willing to allow the Communist Party to operate as a political party in the U.S. I was the only one who raised my hand. My classmates booed. My teacher chided them and gave me a guaranteed A.

If we begin to stifle speech because we fear it, rather than countering it with persuasion, we will produce a violent and unpredictable response from radicals who have been shut up rather than simply beaten on a fair and open playing field of ideas.

Will the rash actions of social media and other big tech players have unintended consequences? I think that is certain. Have they signed their own roadmap to decline and failure? Time will tell. Freedom will ring. Freedom will prosper. History is clear. Those who suppress the voices of millions are doomed to eventual failure. 

 

 

Cloud Native is an Anti-Pattern

Google, Apple, and Amazon AWS are not your friends. You may be applauding their actions against Parler, but let's think it through.

Setting aside the politics of Parler, the actions of these three vendors (and others) over the last few days should give everyone pause.

If you lock in your technology offering and make your business dependent on the goodwill of a cloud vendor or an app store, you are surrendering your business to their control under terms of service that can easily be interpreted in their favor at their whim.

The only way to mitigate this risk is to be sure you are not locked in and that no one single vendor controls your data and technology.

Again, setting aside the politics, what is your organization's strategy if your cloud vendor suddenly gives you a 24 hour shutdown notice on the weekend when your employees are off?

Could you survive such an action from your cloud vendor or an app store? If your users suddenly cannot access their data or interact with you, what will the consequences be?

Comments welcome but I hope you will limit your comments to vendor lock rather than the politics involved in this one case.

Before you comment, consider this quote from CS Lewis:

"Of all tyrannies, a tyranny sincerely exercised for the good of its victims may be the most oppressive. It would be better to live under robber barons than under omnipotent moral busybodies. The robber baron's cruelty may sometimes sleep, his cupidity may at some point be satiated; but those who torment us for our own good will torment us without end for they do so with the approval of their own conscience."

How to Find Truth on the Web

Here's a few things I do. They are not fool proof and I don't always follow my own advice, so take them for whatever value you find in them.

1. Find at least two sources from left leaning media and two from right leaning media. I have my favorites on both sides. 

2. Try to find original content rather than a simple duplicate copy of an AP story or two sources with nearly identical copy. There is a lot of intellectual plagiarism out there.

3. Ignore the headlines and pull quotes (the enlarged quotes of the article). These are designed only to get clicks and lead you to a biased conclusion.

4. Ignore opinions and conclusions. Anything that characterizes the facts or statements of people quoted in the story is not journalism; it's activism, designed to mislead.

5. Look for details that are common between the ideologically opposed sources. These are often truths. 

6. Look for details included in one side and excluded in the other. You won't immediately know if these are true. Often they lack complete context and are included in the way that they are in order to support the characterizations being made by the writer or editorial staff.

7. Assume that there is always more to the story than meets the eye.

8. Take photographic and video evidence with a grain of salt. It is altogether too easy to edit these and remove context that contradicts the slanted narrative. I've been caught by this more than once. We want to believe what we see and hear. This is where we are all most easily manipulated.

9. Assume that all media sources have an angle, a narrative, that they are pushing. 

10. Watch for stories that are covered only by one side. Ask yourself why. Dig for multiple sources. Often when a story hurts the narrative, the story is still covered but it's buried under a bland headline designed to avoid clicks.

11. Use more than one search engine. Every search algorithm has bias built in. Mostly that bias leans left, so you may need to dig deep to find opposing coverage from the right, but you will find it.

12. Distrust bloggers, podcasters, straight up opinion talking heads, and so-called independent fact check sites. Listen to them but do not believe everything they say. Research whatever they say using the steps above.

Again, this is not foolproof, but it does help me.

Agile - The Most Meaningless Word

Agile - The Most Meaningless Word in the Tech Lexicon

Has there ever been a more over-hyped word in the history of technology? A word that has been appropriated by everyone and assigned so many different definitions and book-length explanations and an army of consultants, each with their own medicine show, the word Agile has become meaningless pablum, a badge we all wear making it indistinguishable from any other technological accoutrement.

The word Agile has come to mean what any practitioner wants it to mean, used as a wrapper for the way they think things ought to be done. It has become a meaningless defense for management and delivery practices of all sorts. It has become the industry's magic safe word or imprimatur to sell a variety of process control systems and frameworks, giving rise to eager consultancies readily able to sell the miracle cure to eager executives in need of an enterprise cure that will hide their inability to manage the organization.

When we have exhausted these five simple letters, we will pick a new word and make it meaningless.

 #management #technology #business #agile #meaning #meaningless

Wrapping Up and Moving On

I've been laid off and the reasons don't matter. It's just business. My last official day is tomorrow. My soon-to-be former employer has a product that enterprises need and good people to back it up. Happily the future is bright and there are opportunities in the world of technology for the taking.

I'm excited for the future and know that soon I'll be doing something new, interesting and challenging. The friends and colleagues I leave behind will do well in the technology economy no matter where they go.

It's a prosperous time to live if you have valued technical skills. I'm grateful for all of the experience I've had that has brought me to this point. I look forward to utilizing it to help other organizations solve their technology problems and advance their organizational goals.

I believe that whatever changes the future holds, I will continue to blog from time to time and work on my personal OSS projects. Stay tuned.

Serverless–AWS Lamba vs Azure Functions

Who will win the Serverless Wars? Azure Functions is the latecomer but has much to like. AWS is the original trailblazer but appears to be slacking off in terms of innovation. I’m not sure there needs to be a winner. There will certainly be those who prefer AWS and those who prefer Azure for a variety of reasons. In this post, I’ll attempt to catalog the differences I’ve been able to find.

lamdavsfunctions

Incidentally, if you have not been introduced to the topic of Serverless Architectures, I suggest Martin Fowler. I have watched with fascination Martin Fowler’s posts on Serverless architectures. There are many other sources you will find through the magic of Google, but give Martin a read before you resort to the others.

Warning! The comparison below is by no means comprehensive and should not be considered conclusive. These are my initial impressions based on research only.

Serverless Features AWS Lamda Azure Functions
Supported Languages Node.js, Python, Java Node.js, Python, PHP, F#, C#
Web Dashboard adequate excellent (VS Online included)
Physical Logical Container single container deployed from zip (Linux) App Service contains multiple functions (Windows)
Continuous Deployment CLI (some 3rd party tools) GitHub, BitBucket, Dropbox, VS Team Services, VS Online editor
Source Code closed open
HTTP endpoint per function/lamda requires API Gateway configuration (greater flexibility at cost of simplicity) automatic (one per)
Authentication unknown Facebook, Google, Twitter, Microsoft
Cross-Origin Resource Sharing (CORS) unknown supported
Maximum execution time per request 5 minutes unlimited (potential unlimited cost)
Persistence of instance and environment variable no yes

 

If you don’t speak the language, you won’t be much good at communicating, so for me the choice is easy. Azure Functions supports C#, my language of choice. All the rest is just gravy. I’m sure your choice and mileage will vary.

Also check out Google’s Cloud Functions as well. Though I doubt they will succeed like Azure and AWS, anything is possible.

The 4+1 Architectural View Model v2

You can find the well written brief on Phillippe Kruchten’s 4+1 architectural view model on Wikipedia along with a link to the original white paper published nearly 20 years ago. Kruchten worked for Rational, as I understand it, and so this is often referred to as the RUP 4+1 model.

4p1Architectural_View_Model
Courtesy of Wikipedia

Although I have used this model or some variant of it at times, I had quite forgotten its name and origin until someone reminded me of it the other day. Of course, we often forget that UML also came out of Rational’s famous Grady Booch, Ivar Jacobson and James Rumbaugh..

And yet today I find it difficult to find software developers who know much of anything about the 4+1 model and only a few regularly use UML and even then only for simple class diagrams. So why the disconnect?

Perhaps a Version 2 of these approaches is required. What would you get if you mixed the 4+1 model with more clearly defined non-functional requirement scenarios as I’ve previously discussed and the C4 model presented by Simon Brown along with just a bit more UML that most developers are not currently accustomed to using? I’m thinking this through and will post more thoughts on it soon.