Updated: 10/12/16

Project Management (or Tool Chain)


Build

The main proposed solution is the Design Guide and Form Renderer. Both of these elements are web-based. Below is a selection of tools at our disposal. They are mainly split into text editors and web IDEs. They both have their pros and cons. We explore these options and come to a conclusion to how we are going to utilise these tools.


Advanced Text Editors

Advanced text editors are lightweight and lightning fast tools for on the fly creation and modification. They offer a wide of range of advantages over their heavyweight IDE rivals.

  • Speed
  • Due to the lightweight nature of text editors, they offer a very fast and smooth usage experience. Rarely will the user experience freezes or ‘lags’.

  • Familiarity
  • Text editors usually only natively support the core functions that one would expect from a traditional editor. These functions, when combined with shortcuts allow the user to become a respectable level of proficiency rapidly.

  • Customisation & improvements
  • Some text editors allow extensions to be installed to mimic the functions of their more powerful IDE counterparts. For instance, Google libraries for emacs. Some more modern text editors such as Atom provide project management options as well as customisation of a list of the languages recognised.

  • Consistency style
  • In many scenarios, a clear structure and declaration of style allows ease of understanding of code and thus negates some of the use of of IDEs. In particular in the sense of understandability and readability.

  • Stability
  • Most text editors do not often have large updates or patches that completely overhauls the software. This allows the user to be focus on the software content rather than the tool being used.

    Some popular text editor tools are Atom, Sublime and Notepad++. In case of web development, a web browser is usually used in conjunction to provide compilation and execution. Many modern browsers today such as Google Chrome and Mozilla Firefox also offer debugging consoles.


    Web IDE

    Web IDEs provide an integrated environment for developers. This means that it contains an almost comprehensive array of tools that the developer may use throughout the development of the project. Some of these tools include but are not limited to the following: debugger, navigation, code auto completion and class explorers.

    This variety of tools provide the integrated environment which is the main advantage IDEs have against lightweight text editors.

    Although IDEs will always provide more tools than simple text editors, these tools are not usually required or used by the developer. Thus these tools only make for a slower use experience. Many users prefer the faster speed text editors. Additionally, more recent text editors natively or allow the option to install some tools that are traditionally only available through IDEs. This has further levelled the playing field between text editors and IDEs.

    An example of a popular web IDE is Webstorm. This is an extremely popular IDE due to its reputation for stability.


    Decision

    We have decided the best option is to use a combination of both tools since individual use of any tools do not conflict with each other and the best tool for use is essentially a matter of preference.


    Version Control

    Our client already has an official Peach GitLab page setup for use. Thus this is naturally the version control tool that we are going to be using in term 2 when it comes time to building. We also use personal GitHub repositories for experimentation, testing and prototypes. For further information about links and repositories, please folow this link.


    Deployment

    There is a fast growing selection of cloud computing web service available. With these different services comes different approaches to deployment. This section mainly looks at the way Amazon Web Services and Microsoft Azure deal with deployment and automation. Other notable cloud computing services also include Google Cloud Compute.

  • Amazon Web Services
  • Clearly, AWS offers manual deployment. The most popular tool used for deployment automation is CodeDeploy. As a bonus, with some further configurations, CodeDeploy also offers automated testing upon deployment. AWS Elastic Beanstalk can also be used for application deployment and management.

  • Microsoft Azure
  • Microsoft Azure has auto deployment built in through its Resource Manager. Web application can be linked to repositories and automatically pushed. This feature is script free and can be accomplished entirely through Azure’s GUI.


    Decision

    From our perspective, the AWS and Azure both offer auto deployment without the need of additional custom scripting. However in the end, Azure will be the more probable option since the UCLH Peach project is sponsored by Microsoft and a paid Azure account is provided to us.


    Tags

    overview requirements development architecture version control our project