Monday, October 9, 2017

Get Things Done Better; Pound the Rock, Find a Sledgehammer, Build a Howitzer


The stonecutter's credo of "pound the rock" is a popular theme in business and in sports.

"I go and look at a stonecutter hammering away at his rock perhaps a hundred times without as much as a crack showing in it. Yet at the hundred and first blow it will split in two, and I know it was not that blow that did it, but all that had gone before."
-Jacob Riis

It makes a lot of sense.  When working at something, follow a good process and don't give up, even when progress seems slow.  By persevering and trusting the process, the job will get done and be done well.
I have found this credo to be useful and true, so I've added to it.  My philosophy for getting things done is:

"POUND THE ROCK, FIND A SLEDGEHAMMER, BUILD A HOWITZER"

"Pound the rock" means following the process, and sticking to it.  For instance, in an engineering project, it means going through all the experiments planned and looking at all the results.   Sticking to the plan requires a good, clear plan, and a buy-in from the team.  


POUND THE ROCK
"Find a sledgehammer" means that while pounding the rock, think about how to get it done a little faster, a little better.  Improvements of 10% to 50% can be found by speeding up the slowest step or reducing the number of steps needed or automating a few steps.


FIND A SLEDGEHAMMER
"Build a Howitzer" means developing a method where the task is done in one or a few steps.  Blast that rock into tiny pieces in one, single step!  The user must have a clear vision of how to do the task and all the typical inputs, settings and outputs.  This requires changes outside of the specific task.  Inputs must change and be standardized to make the task simple and repeatable.  The task itself must be automated and set up to handle the most common scenarios.  The outputs must be well-defined and ready to pass to the next task with no edits.
BUILD A HOWITZER
As a signal integrity engineer, I'm constantly running simulations with field solvers.  Here's how the process looks in a specific scenario.

"Pound the rock" Simulation Method
> Make a new simulation file
> Load all the physical objects, typically a .STP file from the mechanical engineer
> Setup the materials for each object
> Setup the energy sources (aka ports)
> Setup the solve
> Run the solve, typically on a big compute array
> Extract the results, typically s-parameter files
> Final output = s-parameter file -> Goes to next task of analyzing the results
TOTAL STEPS: ~50 mouse clicks and a few entries typed in
TOTAL ENGINEERING TIME: ~30 minutes

"Find the Sledgehammer" Simulation Method
> Run a script/macro to make a new simulation file and load the .STP file
> Setup the materials for each object
> Setup the energy sources (aka ports)
> Run a script/macro to setup the solve
> Run the solve, typically on a big compute array, and automatically export s-parameter files when complete
> Final output = s-parameter file -> Goes to next task of analyzing the results
TOTAL STEPS: ~20 mouse clicks and a few entries typed in
TOTAL ENGINEERING TIME: ~10 minutes

"Build a Howitzer" Simulation Method
> Run a tool that takes a .STP file, and a settings file, press GO !
Makes a new simulation file and load the .STP file
Sets up materials based on the settings and lookup table
Sets up the energy sources (aka ports)
Puts in the solve settings
Queues the solve on the compute array
Exports s-parameter file with a clear, descriptive filename, and a detailed, standardized header file
Runs continuity, causality and reciprocity checkers on the data to verify good data
Puts the s-parameter file in a specified location, ready for the analysis task
FINISH THE JOB IN ONE STEP
> This method requires some infrastructure and standards to work well, especially for the input mechanical geometry file
3D geometry file must follow a naming convention such that the tool can match objects to materials
mechanical object to material lookup must be built; such as any object MAT12345_sigA2.... is assigned to Copper
mechanical object names must be labeled to indicate signal and ground metal; such as MAT12345_sigA2... = signal, MAT12345_gndC1... = ground
tool must be able to both read the settings file and implement those settings in the solver;
For instance: read start frequency and stop frequency from a text file, then run a script to setup those frequencies in the solver
TOTAL STEPS: 1 mouse click and 2 filenames
TOTAL ENGINEERING TIME: 1 minute


TIME SAVINGS CHART
What howitzers do you need to build?
What would it take?  What standardization?  What changes are needed for how the task is done?  What changes are needed before and after the task?
It's not easy to build the howitzer, but there's always a way to do it.  I encourage everyone to think about it and start building one!

1 comment: