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

JavaFX-12.0.1

With the recent release of Java Development Kit 12 (JDK 12), it’s time to upgrade to JavaFX-12.0.1 as well. JavaFX is now managed and released as it’s own independent entity and is not shipped as part of the Java Development Kit.

If you are new to Java and JavaFX, visit Getting Started with JavaFX 12 to install and test the latest version of JavaFX. Instructions are presented for use with Linux/Mac and Windows.

If you already have Java 12 installed, download the JavaFX runtime, unzip the file to your location of choice, and add the PATH_TO_FX environment variable: set PATH_TO_FX=”path\to\javafx-sdk-12\lib”

Now you’re ready to test the installation using the HelloFX.java sample which is available for download from GitHub.

From the command line, use javac to compile the program as follows:

  • javac –module-path %PATH_TO_FX% –add-modules javafx.controls HelloFX.java

Now execute the program using:

  • java –module-path %PATH_TO_FX% –add-modules javafx.controls HelloFX

If all went as planned, running the program should produce a window as pictured below:

Why JavaFX?

Every book, online tutorial, or course typically begin with writing programs that run on the console or terminal. An initial frustration for new users is that Interactive Development Environments or IDE’s such as Eclipse, NetBeans, or Visual Studio Code all use a Graphical User Interface or GUI interface and leaves us wondering why we can’t do graphics.

Of course, the books and tutorials do eventually address GUI’s; however, the subject of GUI’s is a topic for later chapters or course segments. Since JavaFX is not part of the JDK distribution, you must download it separately.

Until Next Time – STAY lean!

Related Articles and Resources

Lean Code and Comments

When I learned to program, hardware and storage were scarce. It is imperative for the code to be tight and the speed of execution is and remains a first and foremost concern. Achieving this isn’t always easy and often requires some very sophisticated programming techniques.

If there was ever a time or place to demand comments, a clever or complicated code sequence is it. Many books and courses will tell you to comment on your code and many experienced programmers do an excellent job of doing so. Writing clear and useful comments is as much a skill as it is a discipline.

The coding style where indentation, line length (80 characters maximum), avoiding the use of global variables and writing single purpose functions also help to understand and debug the code. Make your comments relevant and don’t restate what should already be clear.

Some will argue that good well-written code is self-documenting although my experience strongly suggests otherwise. Well-worded variable names are helpful; however, their intended purpose may not always be clear. Functions, subroutines, or classes may also have well-defined names yet arguments and/or parameters and results may not be.

I recently found myself having to debug a program I wrote over a year ago. The application was working on all machines but one. I learned that the client replaced the computer with an old legacy system. Fortunately, I have been working with PC’s for more years than I care to admit and understand what was happening and why.

Needless to say, were it not for the comments, fixing the issue in the actual code would’ve been a daunting task otherwise. The very sections of code that were to occupy my time were cause for previous visits. The comments clearly describe what the code sequence is supposed to do and the potential caveats to avoid.

Good Meaningful Comments

All of my code modules have an opening comment block that, aside from the author(s), date created, purpose, and revision, provide specific details regarding the methods/techniques and how they are used in the code to follow. Even the method of versioning the module is clearly outlined.

Complete history with version/revision number, date, and description of the changes accompanies the opening block. The specific changes are dated and documented in the revised code segments as well. Dating the changes in my code serves as a frame of reference and allows me to better recall the events that triggered the changes in the first place.

/* System.out.println(“Don’t use block comments to block out code\n”); */

Rule of Thumb

A good “rule of thumb” is to provide sufficient comments to reteach yourself or to teach others what the code is supposed to do. I also provide ample warnings and advise of possible side effects that code changes may introduce.

If there is ever a place to serve yourself best in your coding skills, it’s in the comments. Everything that appears fresh today will be everything but fresh a year from now. A well-documented program requires focus and discipline, but the effort will make the debugging process so much easier when you visit your work in the near or distant future.

Until next time, STAY lean!

Related Articles and Resources

Review – Microsoft Surface Keyboard

Microsoft Surface Keyboard - Unopened Box

Background

Everyone has a preference when it comes to keyboards. I know I do.  I’m a long time user of Logitech’s Solar K750 (USB) and K760 (Bluetooth) keyboards and I’m very happy with them. While the materials used in their construction are primarily plastic, they are sleek, well-crafted keyboards and I don’t have to worry about changing the batteries in the short term.

Logitech K760 KeyboardAlthough it doesn’t have a fully extended keyboard layout, the Logitech K760 is one of my personal favourites. I can connect it with any one of 3 devices and switch between them with the simple press of a function key. One keyboard for my iPhone, iPad, and MacBook Pro.

The profiles of all the Logitech Solar keyboards are minimal and rival those of any competitor. Lightweight, thin, and battery-free. With all this praise for Logitech’s keyboards, you may be wondering why I decided to take a look at the Microsoft Surface keyboard.

Why Change?

As I’ve said many times before, there’s always a better way and more than one solution. I watched and read a number of compelling reviews of Microsoft’s Surface Keyboard.  One reviewer claims he was typing at 105 words per minute and can now type up to 130 words per minute consistently. The reviewer also states the keys are quieter.

Aside from the minimalistic design of the keyboard, faster and quieter were two key (no pun intended) points that sparked my interest to find out just how good this keyboard is. I’m not a fan of battery powered keyboards but the benefit of having a quieter and more efficient typing experience may be worth the compromise. I decided to take a closer look at the Microsoft Surface keyboard.MicrosoftSurfaceKeyboardOpenBox

The footprint of the Microsoft Surface keyboard is minimal (420.90 mm x 112.60 mm x 19.30 mm high), requiring only enough space to accommodate the extended keyboard layout. The keyboard’s Bluetooth 4.0 wireless technology has a range of 7 to 15 meters, depending on your location, and makes connecting to your computer quick and easy.

Setting up the keyboard

Remove the keyboard from the box and remove the plastic ribbon that extends from under the magnetic battery cap on the rear of the keyboard. The battery cover is easily removed by pulling it away from the keyboard.

To pair the keyboard with your computer, simply press the “Bluetooth” button on the left end of the rear support bar for at least 3 seconds. A flashing light will appear above the “up arrow” key indicating the keyboard is ready to pair with your computer.

Microsoft Surface Keyboard ConnectedOn your computer, go to Windows Settings and select “Devices – Bluetooth, printers, mouse”. Click on the Bluetooth option and, when the “Manage Bluetooth devices” screen appears, click on the “Microsoft Surface Keyboard” icon. Using the Microsoft Surface keyboard, enter the password that appears on the screen.  Once paired, the keyboard’s device driver software installs automatically and the keyboard is ready to use.

First impressions

The angle of the keyboard, key spacing, and key travel make this keyboard quite comfortable to use. The key tops are relatively flat compared to my Logitech K750, but the fingers settle quite nicely as they should. Of course, your typing speed depends on your typing skills and ultimately how fast you can move your fingers.

Did my typing performance improve? I tested my typing speed using an online speed test and there was no measurable difference when using the Microsoft Surface keyboard or the Logitech K750 or K760 keyboards.

Finger movement across the keyboard is fluid though slightly more effort is required to strike the keys as compared to my Logitech keyboards. The difference is slight and may be less noticeable as I become accustomed to using this new keyboard.

Is the keyboard quieter? The tone of the key presses on the Microsoft Surface keyboard is lower pitched and the keys don’t “clack” as much when compared to my Logitech keyboards.  This may also be a factor of the keyboard’s inherent resonance by design and the materials used in its construction.

The keyboard feels solid thanks to the aluminum top and full-length contact between the base of the keyboard and my desk. A full-length rubber grip strip under the front of the keyboard and two shorter length grip strips along the rear support bar prevent the keyboard from slipping and also serve to prevent scratching your desktop.

The keyboard is not backlit but shift indicator lights appear on the Fn, Caps, ScrLk, and NumLk keys. My fingers know their way around a keyboard so backlighting isn’t an issue and the “F” and “J” keys have small raised bars making the “home row” easy to find.

The “Fn” key makes it easy to toggle or set which function key features are active. When the light is on, the function keys behave normally as F1 … F12. When the light is off, the “icon” features become the active function key behaviour.

The insert key does not have a shift state indicator light and there are times I wish it did. Most software applications will change the shape or size of the cursor to indicate whether you are inserting or overwriting text, however, this is not always the case.  I really can’t complain because other keyboards lack this feature as well.

The only concerns I have with the Microsoft Surface keyboard – at this time anyway – have to do with the power source. I don’t like batteries due to their potential impact on the environment. The Microsoft Surface keyboard is powered by two ‘AAA’ batteries that, according to the box, will last at least 12 months.

If the power source is limited by design, the least Microsoft could do is follow the footsteps of others like Apple or Logitech and provide a power status indicator. Always having to carry spare batteries is another of my pet peeves with portable with keyboards.

There is no disclaimer as to the type of batteries that can be used, so rechargeable batteries may be an option. A USB charging port to an internal battery may even prove to be a better option in the long run.

I knew the keyboard didn’t have the best of power options when I bought it so I really can’t spend a lot of time festering over it. However, considering the price of this keyboard, I was expecting more.

At $129.99 CAD the Microsoft keyboard carries a hefty price tag and is considerably more expensive than Logitech’s keyboards selling in the $75-$80.00 CAD range.

Overall, I’m quite impressed with the construction of the Microsoft Surface keyboard and intend to keep using it – at least until the batteries run out. As for the price, I find it relatively steep when compared to my Logitech keyboards and the performance is not necessarily worth the extra money.

The Microsoft Surface keyboard does not deliver the value for the money when other “as capable” keyboards are available at much lower prices.

Related Articles and Resources

Typing Trainer – 100% Free Online Typing Tutor for Everyone

Microsoft Surface Keyboard Review – My New Favourite – The Tech Chap (Video)

Microsoft Surface Keyboard – A Modern Looking Office Keyboard – Saleh Tech.

Hands-On with Microsoft Surface Keyboard and Surface Ergonomic Keyboard – The Mac Observer (Video)

Karakuri is Lean

Karakuri is a mechanism that uses gravity, springs, and gears instead of external power sources to manipulate objects as a means to “save energy”, and is a key element of Kaizen that when put into practice, can translate into significant productivity and efficiency gains including:

  1. Eliminate overwork
  2. Eliminate waste
  3. Eliminate uneven workflow
  4. Improve safety
  5. Improve quality
  6. Improve productivity
  7. Improve maintenance

Karakuri is also a tradition innate to Toyota’s culture since its inception and the practice extends to companies throughout Japan. It is interesting to see the tools that can provide a significant benefit to your operations without the necessity of adding overhead beyond the initial investment and routine maintenance that may be required.

Give me a lever long enough and a fulcrum on which to place it, and I shall move the world.

Archimedes

Eliminating or at least minimizing the need for external energy sources results in a net reduction of operating expenses. A gravity flow rack is certainly one of the more primitive and obvious examples of Karakuri as demonstrated by this video of an AMS MRS Rack Storage. Check out the video in the “Related Articles and Resources” below to see how Karakuri can help to simplify and improve your operations.

Until Next Time – STAY lean!

Versalytics

Related Articles and Resources:

Lean – Have it Your Way

It’s easy to determine whether the leadership of a company truly embraces lean thinking.  One of the more frustrating “tells” is the insistence of leadership to precisely follow the path others have taken.

The underlying notion of achieving the same or similar results may be appealing but it does not address why the specific path or methodology was chosen by a given company to begin with.  Many automotive companies have learned that lean is not a simple matter of copying and duplicating the practices of a company like Toyota.

If lean is indeed a journey, it is only fair to say that any competitor or other company you have chosen as a model to follow is still in the pursuit of perfection to achieve the ever elusive ideal state.  Since we don’t or can’t possibly know what their ideal state could possibly look like, implementing the best practices of other companies is merely nothing more than a starting point.

To be a “copy-cat” or “me too” company does little to differentiate you from the competition.  What advantage or benefit will the customer realize if you are just like all the others?

The tools of lean and six sigma are not the concern here.  Rather, the concern extends to the very systems and processes of the organization and business itself.  It is the underlying thinking that forms the foundation on which the organif the underlying thinking and assumptions

Innovation is Lean Thinking by Design

Differentiation is a trait best demonstrated by a company like Logitech.  While some companies simply attempt to make products faster and cheaper, Logitech’s appeal is to offer something more in the product itself.

Consider Logitech’s recently introduced flow technology where a single keyboard and mouse combination can seamlessly switch between two computers as though they were one.  Spending a little more money on a premium or advanced product offering is still cheaper than having to buy three of each and also offers the benefit of having more available desk space.

As another example, Logitech recently released the MX Vertical Mouse, an ergonomically designed mouse that improves performance, productivity and reduces the risk of injury that may occur due to prolonged use of the device.  Although the design changes are only slightly radical, they demonstrate the never-ending cycle of continuous improvement.

Systems, methods, processes, and procedures are present in every facet of an organization or business.  Consider how lean thinking can be applied to increase their effectiveness, improve performance, and ultimately eliminate waste.

As I’ve said before, “What you see is how we think.”  I contend that Lean thinking is best demonstrated by what differentiates your company from the competition.  The greatest value may be found in those elements that defy logic and the small things that set you apart to position your company ahead of the curve.

Until Next Time – STAY lean!Versalytics

Related Articles and Resources

 



 

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 provide 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