Apprenticeship Patterns Guidance For The Aspiring Software Craftsman