Devops at the sharp end

admin's picture

Working with offshore development teams can be challenging. Often differences in culture, working hours and language can make the process of briefing work complicated and error prone. Those same ambiguities at the specification stage can later lead to time wasted at the delivery or quality assurance (QA) stage. Requirements need to be right: verified in QA (did we build it right) and but validated right at the beginning of the process (are we going to build the right thing).

Requirements are where the attention should be, but so often when inducting new staff the focus is on devop details. To get the first line of code written, a developer needs a myriad of technologies to work in harmony:

  • Desktop computer (e.g. Mac/PC)
  • Operating system (e.g. Linux/Windows)
  • Integrated development environment (IDE) or at least a good text editor (e.g. Eclipse, Textpad)
  • Version control client (e.g. Git/SVN)
  • Compiler/interpretter (e.g. gcc/javac/Apache with mod_php/Firefox with javascript)
  • Secure mechanism for connecting to the server (SSH, ideally PKI)
  • Team communication software (e.g. Skype/IRC/Google chat)
  • Brief communication software (e.g. Google drive)
  • Bug/issue tracking software (e.g. Bugzilla/Redmine)

There are also a set of additional tools and services, which might make the development process more efficient:

  • Component-specific management tools (e.g. Drush for Drupal)
  • Boilerplates or Boilerplate management tools (e.g. NPM/Yeoman)
  • Debugger (e.g. XDebug with Eclipse or an IDE-integrated debugger)
  • Code profiling (e.g. XDebug with KCacheGrind)
  • Database access (e.g. HeidiSQL/MSSQL Management Studio)

Offshore or short-cycle development is the sharp end of devops. Projects may only last a few months or even weeks, so it's crucial to be able to spin-up quickly and reliably. Established development teams may have adopted specific variants of some or all of the tools above, but they may not gel with the tool chains used by the client or commissioning party. Also since the client may take long-term responsibility for the hosting and extension of the code produced, it's that much more important that both parties can agree a comprehensive 'standard' for all the (coded) processes in the software development lifecycle:

  • Development
  • Unit/integration testing
  • Code review
  • Addition of tests to test suite
  • Deployment to staging
  • Regression testing
  • Load testing
  • Deployment to live
  • Post-implementation review

Devopera provides a set of standardised virtual appliances and server builds to ensure continuity across all your development projects, teams and servers. We make our virtual machines available as free downloads so developers can get started in just a few minutes. If you'd like help setting up a development process for a new or existing team, please get in touch.

Recent Articles

published 3 years 1 month ago

Site

Follow Us

Twitter icon
Facebook icon
LinkedIn icon
SlideShare icon
YouTube icon
RSS icon