Training

Gilmation provides bespoke, hands on, example based training courses, in English and/or Spanish. Where our courses stand out is in their application to real life situations so that when we have finished the attendees understand not only the underlying concepts but also how and when to apply them in their day to day jobs. Where possible, generic slides are not used and we work closely with you to create the custom presentation materials and select suitable real world examples from your company's projects, processes and/or codebase which are then used as the basis for the course.

The following is an example of the approach that we would take for a simple build, test and deployment course (the same approach could be applied equally to any other subject) but the best thing to do if you would like an idea of what your course could be like is to get in touch and talk it over with us.

Build, test and deployment automation (Java)

  • Introduction - Duration would depend on the experience of the attendees
    • Testing (unit, integration, web)
    • Optional in-depth look at testing examples, testing of framework components, Test Driven Development, mocks, stubs, etc
    • Version control (outline centralised versus distributed models, followed by a focus on different implementations - CVS, SVN, Git, Mercurial, etc)
    • Optional discussion/examples of repository structure, branching, merging, managing code common to multiple projects, build artefact repositories, troubleshooting, etc
  • Take a suitable client project as an example or if this is first client's first java project, then create a one.
  • Overview and choice of a build tool for the source code - Ant or Maven
    • Optional discussion/examples of installation, configuration and extension of the selected tool
  • Conventions - Directory structure, Naming, Configuration
  • Logging
  • Build / Test Report Generation
  • Static code quality analysis options
  • Identification of external dependencies
  • Automatic database creation
    • Conventions - Directory structure, Naming, Configuration
    • Identification of the minimum viable application data
    • Identification of representative test data
    • Scripted creation of objects - schemas, users, permissions, tables, keys, indexes, etc
  • Other types of data storage creation/configuration (caches, noSQL stores)
  • Automation of deployment (local and remote)
    • Scripting (bash, ssh, Powershell, AutoIt, NSIS)
    • Capistrano