Essence and Problem-Solving Paul E McMahon Using Essence to solve common software development challenges