Blog

Servicios que añaden valor a nuestros proyectos

09/06/2016

Calidad del software

Desarrollar software de calidad y que acompañe los procesos de transformación digital no es fácil. Desarrollar las competencias necesarias para la entrega continua de software tampoco, pero son claves para poder ofrecer servicios de calidad a nuestros clientes.
Desarrollar dichas competencias, no solo de forma individual, sino en equipo, de forma estandarizada requiere años de experiencia y pasión por la innovación.
Estos son los servicios con los que acompañamos nuestros proyectos por defecto, sin coste añadido, con el objetivo  de que la tecnología no sea un problema para poner en marcha nuevas ideas de negocio.

Entregamos los proyectos con aprovisionamiento y deploy integrado.

Ofrecemos a los clientes sus proyectos con todo el stack necesario para su correcto funcionamiento ya instaladas en el servidor. También, una vez finalizado el desarrollo, ofrecemos un mantenimiento del mismo para mantenerlo actualizado. Automatizamos al máximo todo este proceso utilizando Chef y así también nos aseguramos de tener la configuración de nuestras máquinas con control de versiones, mantener el estado ideal del servidor frente a cambios manuales y agilidad a la hora de tener que escalar o provisionar nuevas máquinas. Tenemos casos de clientes a los que les hemos instalado cuatro máquinas en una mañana.
También nos permite revertir los cambios que un ataque al servidor puede hacer de la configuración de la aplicación.

  

Los despliegues "a mano" son más lentos y, por tratarse de procesos largos y repetitivos, suelen estar llenos de errores. Nosotros usamos Capistrano para automatizar los despliegues, ya que está escrito en el lenguaje que es nuestra debilidad, en Ruby.

Sistemas de monitorización continua.

Los sistemas de monitorización continua son clave para poder actuar rápido en caso de que haya algún problema en un proyecto. También nos permite saber dónde y cuándo están los cuellos de botella de una aplicación.
También es importante mantener un histórico del uso y funcionamiento de las máquinas para saber cómo solucionar los problemas que se puedan presentar.
Nosotros usamos en nuestros proyectos:

  • Monit. Monitoriza los procesos en los servidores, lanzando alertas si algún proceso se cae, o se pasa de memoria y realizando acciones como reiniciarse cuando así se le indica.
  • Pingdom. es quien vigila si una web está caída o da un timeout, por lentitud. Su función es monitorizar la URL si obtiene un código HTTP erróneo nos alerta. Esta herramienta también mide nuestro uptime, que actualmente es de un 99,96% de media.
  • Newrelic. Monitoriza y mide los parámetros de todo nuestro stack y nos servimos de estas métricas ver cómo se comportan nuestros servidores y aplicaciones. Nos permite saber las diferencias de rendimiento de la aplicación cuando pasa a producción, nos permite ver la trazabilidad de las transacciones a través de varias aplicaciones conectadas y nos envía alertas, que tenemos integradas en hipchat.

     

Sistema de gestión de errores por defecto.

Importante para estar alerta de qué errores está dando una aplicación en producción. Nosotros usamos Rollbar y lo integramos las notificaciones con Hipchat, de manera que cuando un proyecto de un cliente da un error, nos enteramos en el momento y tenemos un report de qué ha fallado y cuándo.

Calidad del código.

Es cierto que no hay herramientas capaces de medir la idoneidad de la arquitectura de tu aplicación, pero si que nos preocupamos de la calidad del código, pues al fin y al cabo, está íntimamente relacionado con el mantenimiento del proyecto y ésto es importante, pues es donde un proyecto tiene más coste.
Nosotros usamos Codeclimate por poder ser usado con git y por contemplar también la seguridad de las aplicaciones como un plus de calidad.

Sistema de control de versiones distribuido.

Por supuesto utilizamos git para tener un control de versiones distribuido, puesto que hace el trabajo más flexible, más productivo y ofrece la posibilidad de trabajar en varias ramas y subramas que facilitan el trabajo en equipo y la integración del trabajo de los mismos.

Varios entornos de desarrollo.

Tener varios entornos de desarrollo nos permite mayor limpieza en el código y poder hacer las pruebas en un entorno igual que el que vamos a tener en producción, pero sin el impacto que ésto puede tener.
Esto es absolutamente fundamental para que un proyecto vaya creciendo y evolucionando sin que por ello se vea perjudicado y sin que sea un perjuicio para los usuarios finales.

Formación continua.

Fomentamos que todo nuestro equipo acude regularmente a conferencias y abrimos periódicamente varios cursos en Neurok para formarnos unos a otros. También dedicamos tiempo a explorar nuevas tecnologías y a dar charlas sobre nuestras investigaciones.

También te puede gustar…

Caso de éxito: Fronda

Caso de éxito: Fronda

Fronda, es una cadena de centros de jardinería que cuenta con una tienda online que opera por toda España con la que hemos colaborado.

ASPgems icon
C/ Sextante, 9
28023 Madrid,
España

Hablemos.

A %d blogueros les gusta esto: