views:

136

answers:

1

Hi All

Am currently evaluating a build tool/framework. I need to meticulously record my findings and present it to the projects for consideration.

I am having trouble coming up with a good way of covering all salient points of such a tool. Anyone know any good sites that cover this topic? (Doesnt have to be specific to build tools - a general outline for tool evaluation will be sufficient, I can tailor it to suit my needs)

It would be awesome if you can share some tips - my presentation skills suck :-( and I want to learn to do this properly.

thanks in advance!

+3  A: 

A build tool will help you automate and integrate tasks related to putting software pieces together. This tasks may differ in importance depending on the environment they are designed for. We could generalize these environments:

  • development - Each developer should have (at least) one development environment, it should be independent, thus you should be able to use a laptop without internet access to successful perform most development tasks. The build tool guarantees that it is easy to setup a development environment.
  • integration - There should be only one integration, on which integration with different components, created by different teams is performed. Everything should be automated here, the build tool guarantees this.
  • test - There can be various test environments, with different roles, on which tests are performed by (real) humans. The build tool helps setup the test environment.
  • production - There can be many of these with different versions on different states. The build tool helps manage different versions - operation tasks.

All tasks will be available on all environments, for example you can deploy on each of these.

Development

These tasks are important for: developers.

  • clean - Cleans up the development environment
  • fetch - Gets the latest sources from the SCM
  • validate - Validate different software components and configuration integrity
  • compile - Compiles compilable code
  • test - Performs unit tests, regression tests, other tests
  • start/stop servers - All servers should be easily controlled with simple commands
  • generate ide files - Prepares various ide project files

Integration

These tasks are important for: developers, project managers, technical writers, QA.

  • build - Creates a new (nightly) build with a new version
  • package - Create software packages
  • generate documentation - Generates api docs, specs
  • generate deliverables - Generate all deliverables - source archive, etc
  • report - Generates various reports for test, quality, changes
  • deliver - Puts deliverables on a open location, a software repository
  • deploy - Deploy all artifacts on the integration machine - which should self test for integrity, thus performing the integration

Test

These tasks are important for: project managers, (functional) testers, administrators.

  • generate test data - This could be mock data, or real data, brought from a production environment.

Production

These tasks are important for: administrators.

  • upgrade / update - Update on a newer version should be done automatically, for example schema and data upgrade
  • rollback - Performs rollback to a previous version

For your presentation:

  • Make a selection of common build tasks (5 to 10), the list above should help.
  • Describe why each of it is important to the parties involved: 1 slide for each task.
  • Make a selection of build tools (around 5) based on relevance to your working environment and popularity.
  • Describe how can you achieve selected tasks, and how do these tools integrate with existing languages and tools: 1 slide for each build tool.
  • So you would have 10-15 slides.

More information here:

Mercer Traieste
thanks for your detailed response! Will study in a bit and see how far I get. thanks !
Critical Skill
you might want to add "support for existing languages and tools" under "for your presentation" and make sure the build tool you are planning to use has good support for the tools you are already using
sal
Done.
Mercer Traieste