Welcome to LeanExecution!

Welcome! If you are a first time visitor interested in getting started with Overall Equipment Effectiveness (OEE), click here to access our very first post “OEE – Overall Equipment Effectiveness“.

We have presented many articles featuring OEE (Overall Equipment Effectiveness), Lean Thinking, and related topics.  Our latest posts appear immediately following this welcome message.  You can also use the sidebar widgets to select from our top posts or posts by category.

Free Downloads

All downloads mentioned in our articles and feature posts are available from the FREE Downloads page and from the orange “FREE Downloads” box on the sidebar.  You are free to use and modify these files as required for your application.  We trust that our free templates will serve their intended purpose and be of value to your operation.

Visit our EXCEL Page for immediate access to websites offering answers and solutions for a wide variety of questions and problems.  Click here to access the top ranking Excel Dashboards.  Convert your raw data into intelligent data to drive intelligent metrics that will help you to analyze and manage your business effectively.

Questions, Comments, Future Topics

Your comments and suggestions are appreciated.  Feel free to leave a comment or send us your feedback by e-mail to LeanExecution@gmail.com or VergenceAnalytics@gmail.com.  We respect your privacy and will not distribute, sell, or share your contact information to any third parties.  What you send to us stays with us.

Subscribe to our blog and receive notifications of our latest posts and updates.  Simply complete the e-mail subscription in the sidebar.  Thank you for visiting.

Until Next Time – STAY lean!

Vergence Analytics
Advertisements

Lean Is NOT A Legacy

Lean can be summarily defined as “The pursuit of perfection (value) through the relentless elimination of waste.”  Understanding what this actually looks like in the real world is an entirely different matter.

The 8 wastes (technically 7) and the tools to continually strive to eliminate them are well documented.  Why is it then that companies still find themselves struggling to implement lean thinking into their culture?

Any lean initiative requires mutual trust and respect between members of the team, the leadership, and stakeholders.  Many companies follow traditional management methods that are contrary to the servant-leadership style required to foster an environment that provides:

  1. Time to Learn – at all levels
  2. Permission to Think
  3. Authority to Execute
  4. Permission to Fail
  5. Time to Reflect
  6. Time to Share (Lesson Learned / Successes Earned)

To continually improve is to recognize that successes and failures are synonymous with learning.  Understanding what works and how it can be improved is equally as important as what doesn’t.

Some leaders and managers claim they do not have the resources that are available to larger corporations.  I would argue that this is simply an excuse for failing to engage their employees in the process.  In essence, they simply don’t perceive their employees as partners in the improvement process or trust that their employees are capable of making a difference.

All the tools in the world won’t save your business if the very people who are expected to use them can’t be trusted to do so.  A servant-leader can teach them “why” and show them “how”.  When done correctly, a short time will pass and the “student” employee will tell  them why and show them how – only better.

Until Next Time – STAY lean

Versalytics

Related Articles and Resources

  • The 8 Deadly Wastes – https://www.processexcellencenetwork.com/business-transformation/articles/the-8-deadly-lean-wastes-downtime
  • What is lean? – https://www.lean.org/WhatsLean/

Python DoWhy

Microsoft’s DoWhy Library for Python greatly simplifies the task of estimating causal effects.  If you or someone you know is involved in data analysis, it is worth your while to see what DoWhy can do for you.

I have spent a little time working with the library and although I have no coding examples at this time, the powerful nature of this library prevents me from waiting to share it.

Visit the DoWhy github page for more details on the DoWhy library.  The information and documentation presented on the site provides sufficient detail to download and start working with the DoWhy library.

Until Next Time – STAY lean!

Versalytics-Logo

Related Articles and Resources

  • https://github.com/Microsoft/dowhy

 

 

Excel Resources

I recently discovered a website titled “Excel Off The Grid” while doing some research for one of our projects.  The post I read was well written, succinct, and the examples were easy to follow.  Although our application required a little more depth, the information presented would be more than sufficient for most people wanting to use the features as discussed.

As I often receive requests from web masters to post links to their Excel based sites, I am quite particular on those that make the list.  I will only feature web sites that I have learned to trust over time and the information provided serves a greater benefit to the Excel community.

After reviewing a number of posts on “Excel Off The Grid“, I found the information presented to be relevant, helpful, and some not readily found in your typical Excel books and distinguishes this site from others.

Excel Off The Grid is insightful and worth the time to learn a little more about the world’s most powerful spreadsheet application.

 

 

Until Next Time – STAY lean!
Versalytics-Logo

 

Lean Code and the Intel Distribution for Python Performance

Python is one of my favourite languages for prototyping and developing applications.  Unfortunately, as an interpreted language, Python’s performance is of great concern when running an application at scale in a production environment.  Developers will typically resort to using languages like C or C++ that can be compiled into a high performance application for this very reason.

Fortunately, as I’ve stated many times before, “There’s always a better way and more than one solution!”  Although you can download the latest version of Python directly from the Python.org website, other distributions are available.  I use the Anaconda Python distribution as it is both comprehensive and easy to manage using Conda or Anaconda Navigator.

To overcome some of Python’s performance shortfalls you can “Supercharge applications and speed up core computational packages” with the INTEL Distribution for Python, powered by Anaconda.  The Intel Distribution for Python is intended to address performance constraints that would otherwise inhibit you from using your application in a production environment at scale.

This Anaconda & Intel Python Distribution FAQ presents the differences and performance gains.  Note that both distributions are available for Windows, MacOS, and Linux.

Install Anaconda3

Anaconda3 5.2.0 (64-bit) SetupDownload and install the latest version of the Anaconda Python Distribution (5.2.0 as of this writing).  The installation wizard will guide you through the installation process, allowing you to install for “Just Me” or “All Users” and will prompt you choose an install location.  In most cases, the default settings will suffice.

Anaconda3 5.2.0 (64-bit) Choose Install LocationWhen the installation is complete, you will be presented with an option to download Visual Studio Code.  Although I’m using PyCharm by JetBrains, Visual Studio Code is an excellent editor that I find myself using from time to time.  Anaconda’s Spyder is also an excellent IDE and is part of the Anaconda installation.

Note:  You will be asked to sign up for an Anaconda Cloud account.  This will enable you to manage and distribute your packages and upload and download your environments, notebooks, and projects Anaconda Cloud.

Install the Intel Distribution for Python

After you have successfully installed Anaconda on your machine, follow these step by step  instructions to take advantage of the Intel Distribution for Python in your production environment.  I highly recommend reading the instructions BEFORE proceeding with the step by step instructions provided as several installation options are presented and may vary depending on your operating system.  Note that you may elect to install either the core or full Intel Distribution for Python depending on your requirements and versions are available for both Python 2 and Python 3.

Anaconda Prompt From Windows Start MenuOn Windows 10, go to the start menu and scroll down to find the “Anaconda3” application.  From the drop down, click the “Anaconda Prompt”.  This will open a terminal window from which you can enter the applicable “conda” commands referenced in the “Intel Distribution for Python” installation instructions.

We opted to install the full Intel Distribution for Python, although the core Intel Distribution for Python may serve your immediate needs.  Since the Intel Distribution for Python is powered by Anaconda, you can easily manage your Python packages and environments accordingly.

Note that the Full Intel Distribution for Python is quite large and will take some time to download depending on the speed of your internet connection.

Having the ability to significantly increase the performance of your application by using Intel’s Distribution for Python is definitely far more productive, effective, and efficient than having to rewrite your application in another language for the sake of performance alone.

Until Next Time – STAY lean!
Versalytics

Related Articles and Resources

 

 

 

Lean Code and Sticky Fields

Quite some time ago I created a backend interface to serialize and record data for labels printed through Crystal Reports as generated from our ERP system.  Unfortunately, the ERP system makes no provision to enter or update all of the key information required to support traceability of the labels after they are printed.

To solve this problem, I used Excel VBA to create a front end label manager to edit or update labels with the relevant information.  The window appears modally when the “Manage Labels” button is clicked on the ASN E2 Data worksheet (pictured below), allowing us to continue working with our workbook as required.

EDI-LabelManager

I could have written the front end as an independently managed application, however, it is a natural extension of other features and capabilities supported by the workbook in which the VBA code resides.  No code is presented in this post, however, some familiarity with Excel VBA and User Forms is assumed.

LabelDetailsWindow

When the “Manage Labels” button on the worksheet is clicked, a “Label Details” window appears as pictured above.  After confirming or selecting the Server Location and clicking Connect, a Customer Code is selected from the ComboBox.  We then click the “Get Labels” button to load the labels for that Customer accordingly.  More granular search capabilities are also provided.

The core functionality supported by the front end is the ability to edit the data associated with any given label.  Text boxes are used to edit data for the fields indicated.  A check box next to each field is used to make the field “sticky”.

EditBarCodeLabelsPage

Note that although each field can be set independently, all “sticky” checkboxes can be set or cleared by pressing the “Set Sticky” or “Clear Sticky” button respectively.StickyFieldsCheckBoxReset

Sticky Fields

Normally, text boxes are updated when moving from one record to the next.  However, there may be times when we want our data to persist or carry over from one record to the next so we only have to enter it once.

For example, at the time of printing and when parts are being produced, we can’t possibly know the Packing Slip number in advance.  StickyFieldsCheckBoxTrueIf multiple containers (each having a uniquely serialized label) are shipped, we can simply make the Packing Slip “sticky” and update the records without having to re-enter the packing slip for each individual label.  Similar logic applies to the remaining fields.

TextBoxProperties-TagThe “Reset” button is used to overwrite the TextBox with data from the original record.  To do this, we take advantage of the “Tag” property of the TextBox.  When the data is read from the database, a  copy of the data for each field from the original record is stored in the “Tag” for each TextBox.  The “Tag” can store up to 2048 characters and is more than sufficient for our purposes.

Functionality is also provided to Swap the data between the current field value and the original data value of the field by using the up/down arrow button immediately to the left of the “Reset” button.

Note that all fields can either be reset to the original data contained in the record or cleared entirely by pressing the “Reset Fields” or “Clear Fields” buttons on the Edit page respectively.

Carry On

This type of functionality is not typical for most applications though it is not necessarily unique.  I recall seeing a “record level” Carry ON type of functionality years ago where the data from the previous record would carry over to the next record and edited as required.  However, this only applied to new records as they were being entered.

Risks

If the user “forgets” that a sticky field is set, it is possible that some data may be changed unintentionally.  By default, all of the check boxes for the sticky fields are clear (off) when the edit page is presented and must be turned on intentionally by the user.

On the other hand, consider the risks associated with data entry where the user would have to enter the same data multiple times for a larger number of records.

Editing Multiple Records (Global Update)

Though not presented as part of this post, it is also possible to select multiple records from the main “label display area” and globally apply changes to “common fields”.  Of course, “global” edits to multiple records presents it’s own challenges and risks and is the topic worthy of it’s own post.

Final Thoughts

You may already be using Sticky fields or perhaps considered making this capability available to your users.  There are certainly times where this type of functionality may not be desirable and certainly where the risks of “contaminating” your database may be high.  You will note that we did not provide the ability to edit all of the fields for a given record for this very reason.

The efficiency and effectiveness of an application extends from the underlying code to the actual person using the application and is one of the reasons why this was included as part of our ongoing Lean Code series.  Saving the user from having to re-enter duplicate data into multiple fields across large record sets can save a significant amount of time and effort and minimizes the risk of error where “exact” duplication of data is a necessity.

Until Next Time – STAY lean!
Versalytics

Related Articles and Resources

 

No action

Mouse Gestures

Back

Forward

Scroll up

Scroll down

Switch to previous tab

Switch to next tab

Close all tabs except current

Close current tab

Open new tab

Close all tabs

Refresh current tab

Stop loading

Scroll to bottom

Scroll to top

Reopen closed tab

Go to home page

The Dunning-Kruger Effect

 

people vehicle sport motion
Photo by Pok Rie on Pexels.com

Have you ever heard of the Dunning-Kruger effect?  I stumbled across this term while reading 8 Unexpected Signs You’re Smarter Than Average by Jessica Stillman (Contributor Inc.com).

The Dunning-Kruger effect, according to Wikipedia, is best described by the first two paragraphs and paraphrased in context as follows:

The Dunning Kruger effect is a cognitive bias where people of low ability people assess their cognitive ability as greater than it is and do not recognize their low-ability.  Low ability people cannot objectively evaluate their actual competence or incompetence.

High ability people may incorrectly assume that tasks easy for them to do are also easy for other people to do, or that other people will have similar understanding of subjects that they themselves are experienced in.

~ https://en.wikipedia.org/wiki/Dunning–Kruger_effect

Why is this relevant?

Assessing our own abilities or the abilities of others will directly influence our own ability to learn or teach.  Regardless of whether we are teaching or learning, we must first have the ability to recognize that a gap exists.

How many times have you encountered someone who thinks they have all the answers?  Where a knowledge or skill gap exists, a person with this mind set is likely not going to be very teachable.  How engaged will this person be when they think they know all there is to know?

On the other hand, it is as important for the person teaching or speaking to know their audience.  Assuming a certain level of prerequisite knowledge or a given skill set may impede your ability to teach those who are there to learn.

Exposing the Gap

Recognizing the Dunning-Kruger effect gives cause to reflect on the four stages of competence:

  • Unconscious incompetence – unaware, lacks knowledge or skill
  • Conscious incompetence – aware, lacks knowledge or skill
  • Conscious competence – aware, has knowledge or skill with conscious effort
  • Unconscious competence – aware, knowledge or skill is second nature / autonomous

People and organizations are generally not open to criticism, constructive or otherwise.  In this regard, assessing an individual or organization can be quite challenging.  Asking questions that emphasize and expose potential gaps and deficits where a clear and defined value can be found is sure to raise awareness and peak the interest of most.

A Final Thought

As cited from 8 Unexpected Signs You’re Smarter Than Average (# 8),

A study of nearly 10,000 Americans found that natural blonds actually have IQs slightly higher than their darker haired compatriots.

Perception is a matter of perspective.  As a natural blonde, the above was encouraging until I read, “The difference was too small to be statistically significant.”

Until Next Time – STAY Lean!

Versalytics

Related Articles and Resources

8 Unexpected Signs You’re Smarter Than Average – Jessica Stillman (Contributor Inc.com)

Dunning-Kruger effect – Wikipedia (https://en.wikipedia.org/wiki/Dunning–Kruger_effect)

Four Stages of Competence – Wikipedia (https://en.wikipedia.org/wiki/Four_stages_of_competence)

Lean Code and JavaScript

As I’ve said many times before, “There’s always a better way and more than one solution!”  The sentiments of this statement are echoed by the many ways a solution can be programmed using any of the many available languages including JavaScript.

Although I’ve been working with JavaScript for a number of years, I continue to discover interesting nuances in the language.  The learning never stops and is an inherent part of the intrigue that is programming.

While many solutions exist, some techniques and methods of programming are preferred over others.  Once you’ve mastered the basics of JavaScript, the programming challenges you are prepared to accept will inevitably become more complex.

Learning to address various coding problems is directly dependent on the knowledge and tools with which you are already familiar.  Be reminded however that just because they work doesn’t mean they are as effective or as efficient as they could be.

On this premise, I consider programming as a learning continuum.  Books and videos tend to serve as my primary sources of learning and reference.  In the case of JavaScript, one such book is:

Effective JavaScript presents detailed examples of what NOT to do and why followed by effective solutions to resolve the concerns identified.  The examples are succinct and clearly demonstrate complex ideologies in a simple, straightforward manner.  I have learned more from this book than most could begin to offer.

Learning how to code is only one aspect of programming.  Understanding how your code (or the language) works and why is another.  Effective JavaScript does both with a greater emphasis on the latter.  You will save yourself many hours of debugging your code when you have a clear understanding of what JavaScript can do when used correctly.

Of course, there is always Google, however, the information is typically solution oriented without the full benefit of scope or context.  As I’ve said before, “Be careful who teaches you.”  Unless you understand the code you are using, resorting to a “searched” solution may be cause for more trouble than it’s worth.

Until Next Time – STAY lean!

Versalytics

Related Articles and Resources

 

What? Rats WebGL Hit a Snag?

When your code hits a snag, there has to be a solution.  If you’ve discovered the “Rats WebGL Hit a Snag” notification, here are some articles we’ve discovered to both enlighten you and provide potential fixes.

It’s important to be aware of the potential problems your application may encounter, especially those that are beyond your control.  In this same respect, it is important to consider the tools and/or API’s you choose to use in your application.

Simply an FYI …

 

Until Next Time, STAY lean!

Versalytics

Lean Code – Web Graphics

Graphics and Animation

MultipleMachines

Over the past few weeks, I’ve been working on an application to simulate multiple production processes working in tandem and decided to re-introduce myself to the world of animation.  In its present state, the application is working quite well using just the core HTML5, CSS3, and JavaScript web languages.

The HTML5 canvas makes it easy to render graphics where CSS3 and JavaScript are used to manage and manipulate various animation effects.  Aside from the canvas element, OpenGL, WebGL / WebGL 2.0, SVG (Scalable Vector Graphics) and SMIL (Synchronized Multimedia Integration Language) or VML (Vector Markup Language) are also options to render graphics to your web page.

While HTML canvas is relatively easy to understand, working with SVG can be a little more complicated.  Fortunately, a number of packages exist that can be used to create our shapes and several JavaScript libraries are available to work with the generated SVG files.

Creating Vector Graphics

Adobe Illustrator is a great product but also demands a monthly subscription fee which, unless you’re a professional web developer, isn’t something too many of us want to add to our monthly budget.

An SVG Editor (by henoc) is available for Microsoft’s Visual Studio Code that can simplify the task of working with SVG.  You may also wish to consider using:

  • Vectr, a free cross-platform vector graphics editor, that allows you to create scalable vector graphics in 2D.   You can use the online version or download a copy of the application for your operating system (Windows, Mac, Linux, or Chromebook).
  • Inkscape a professional vector graphics editor for Windows, Mac OSx and Linux.  Free and open source.
  • Gravit Designer is a very capable and powerful design tool.  You can use the online version or download a copy of the application for your platform (Mac OSx, Windows, Linux, and Chrome OS).
  • There are also a number of online SVG editors – easily found with a simple Google search –  where you can create simple 2D SVG files online and save them locally to your machine.
  • It is also worth noting that the WebStorm IDE by JetBrains, our IDE of choice for web-based applications, also provides a level of support for working with SVG files.

JavaScript Libraries for SVG

While we can manipulate and work with SVG data directly using CSS and native JavaScript, a number of libraries are available that provide significantly enhanced functionality and effects.  Some commonly used libraries for working with SVG data include:

JavaScript libraries will save you a tremendous amount of time and effort so you can focus on your application.  It is also possible to render 3D models using SVG with more highly capable JavaScript libraries.

Browser Support and Local Files

Browsers provide varying degrees of support for today’s web technologies and knowing what is or is not supported will determine whether your application will run as intended.  IE (Internet Explorer) is one browser that is typically lacking in support for capabilities such as CSS transforms on SVG elements.

Remember:  Browsers are NOT created equal.

FailedtoLoad-CrossOriginRequests

Some browsers like Chrome do not permit access to files or data on your local drive and you may receive an error similar to the one pictured above if you make the attempt.  Fortunately, I’m using the WebStorm IDE by JetBrains and have the option to run code either as a local file or using the built-in server.

Use a local server if you are using Chrome or another browser that does not provide access to data files that are local to your machine.

Responsive Websites

A responsive website is one of the more significant and noteworthy advantages of using SVG for your graphic elements.  Scaling your site to accommodate devices of all shapes and sizes is less of a challenge with SVG.   Images retain their original quality regardless of scale, can be created or edited with any text editor, and can be manipulated or enhanced using CSS and JavaScript.  These reasons alone make learning SVG that much more rewarding for you and your visitors.

The options for animating your website are many and limited only by your imagination.  As I’ve said many times before, “There’s always a better way and more one solution.”  Working with SVG’s and the number of API’s available to animate them proves this statement to be true yet again.

Until Next Time – STAY lean!

Versalytics

Related Articles and Resources:

 

 

SQLite Security And SQLCipher

SQLite is a light weight relational database management system (RDBMS) that is used by many applications.  Unfortunately, your data is not secure and can be read by anyone who has access to your SQLite database.

TCL (Tool Command Language) makes writing SQLite database applications a relatively simple chore where I can focus more so on the application itself.  For this reason and that SQLite is freely available and highly supported, I often prefer to use an SQLite database solution.

Although Microsoft’s SQL Server is typically our RDBMS of choice, having a secure database could well extend where SQLite can be deployed for more data sensitive applications.

Data Security Solutions

The SQLite site offers several Professional Support and Extension Products.  For a nominal one time fee you can purchase a license for the SQLite Encryption Extension that provides the added ability to read / write AES-encrypted databases.

Additional licensing options are available and include the “Compressed and Encrypted Only Database (CEROD)” license to read encrypted and compressed databases and the “ZIPVFS Read/Write Compressed Database Extension” license to automatically compress and encrypt data as it is written and decompress data and decrypt data as it is read.

The above options require a significant financial commitment, however, SQLCipher by Zetetic LLC provides a level of security that may give you cause to consider using SQLite for some of your more sensitive and smaller scale applications for a much lower (or free) price.

SQLCipher offers a variety of paid licensing options, however, according to the Open Source web page:  “SQLCipher Community Edition can be used in both open and closed source commercial software, but you must include our BSD-style license and copyright statements prominently in the application and documentation.

SQLite is one of many database options available to you as a developer.  Use your discretion when choosing which tools will best support and meet the requirements demanded by your application.

Until Next Time – STAY lean!

Versalytics

Related Articles and Resources

SQLite Web Security – SQLite.org

SQLCipher Extension for SQLite – GitHub – Latest release 3.4.2 – December, 2017.

How to Compile And Use SEE – SQLite.org