Desarrollo a Medida

METODOLOGÍAS ÁGILES Y METODOLOGIAS CLÁSICAS O PREDICTIVAS PARA ASEGURAR EL ÉXITO DE LOS PROYECTOS.

Realizados haciendo uso de las últimas tecnologías del mercado, por un equipo de profesionales con una dilatada experiencia en la construcción de sistemas de información, los desarrollos a medida permiten cubrir las necesidades de creación e implantación de nuevos Sistemas de Información o de adaptación de los existentes a las nuevas tecnologías.

Independientemente de la tecnología de implementación que su empresa elija para acometer estos desarrollos, CRC Information Technologies pone a su disposición un equipo de trabajo altamente cualificado y con gran experiencia laboral, dirigido por metodologías de trabajo para favorecer en todo momento un desarrollo dinámico del producto, en estrecha colaboración con el cliente.

ÁREAS DE TRABAJO

Desarrollos con JEE

CRC ofrece a su organización la posibilidad de realizar desarrollos a medida haciendo uso de la tecnología JEE.

La tecnología Java Enterprise Edition ofrece en la actualidad una de las soluciones más versátiles y fiables para desarrollar Sistemas de Información en la empresa.

En nuestros desarrollos, apostamos por la utilización de código abierto, de frameworks y librerías de amplía utilización en las aplicaciones implementadas bajo lenguaje Java, y de estándares de programación en Java. A este respecto, sin limitarnos a los mismos, cabe citar:

  • Spring framework, como mecanismo de inyecciones de dependencias y definición de componentes y servicios. Además de este aspecto genérico, también podemos utilizarlo en diferentes ámbitos de aplicación concretos como, por ejemplo, hacer uso del modelo MVC proporcionado para implementar aplicaciones Web o servicios REST, desarrollar servicios Web bajo Spring Web Services, implementar procesos batch y de EAI, etcétera.
  • Hibernate, como ORM bajo JPA para favorecer la portabilidad entre diferentes SGBDRs.
  • JUnit, y librerías relacionadas como Mockito y Assert4j, en la definición de los casos de test unitarios a los que sometemos el código a fin de asegurar que el mismo posee la calidad adecuada y se comporta conforme a lo establecido con el cliente.
  • Spring Web Services, Metro, Jersey y Apache CXF, en orden a implementar servicios Web bajo tecnologías SOAP o REST y los estándares JAX-WS y JAX-RS.

En nuestros proyecto combinamos y explotamos estas y otras tecnologías no indicadas explícitamente siguiendo patrones de diseño que favorezcan y aseguren la fiabilidad del código desarrollado.

Desarrollos con .NET

Dentro de la plataforma .NET, una de las tecnologías donde CRC ha focalizado sus esfuerzos en los últimos años ha sido en .Net Core, un framework multiplataforma de código abierto que tiene como objetivo la creación de aplicaciones modernas.

.NET Core permite la creación de APIs Web e interfaces de usuario web mediante ASP.NET Core MVC.

Algunas de las características propias del framework, así como de los desarrollos de terceros utilizados de forma complementaria, son:

  • Capacidad para desarrollarse tanto en Windows, macOS y Linux.
  • API Rest para la construcción de sistemas basados en servicios web.
  • Inserción de dependencias integrada.
  • Entity Framework. Motor ORM nativo de Microsoft para el acceso a datos.
  • Desarrollo orientado a pruebas (TDD), con librerías como NUnit y XUnit.
  • Capacidad de hospedarse en IIS, Nginx, Apache o Docker.

Además de en el desarrollo de aplicaciones NET Core, CRC sigue manteniendo numerosos equipos de trabajo en otras tecnologías de Microsoft:

  • WPF y XAML: tomadas como base en el desarrollo de aplicaciones de escritorio de alto rendimiento en arquitecturas cliente/servidor como algunas de nuestras soluciones de ingeniería.
  • WCF, como mecanismo primario en el desarrollo de servicios Web bajo la plataforma .NET.

Desarrollos para Front End

Desde hace años, llevamos desarrollando la parte front-end de las aplicaciones haciendo uso de los siguientes lenguajes, herramientas y frameworks:

  • HTML5, como mecanismo primario de construcción de UI.
  • CSS3 y librerías como Bootstrap y Material Design, utilizadas en el maquetado.
  • Javascript, desde sus primeras versiones hasta los actuales estándares ES6 y ES2016.
  • Angular, React y VueJS, como frameworks SPA de front-end.
  • Karma, Jasmine, Jest y librerías relacionadas, como Mocha, Chai y Typemoq, para la definición de pruebas automatizadas.
  • NodeJS y herramientas como NPM y yarn, y Webpack.
  • Electron, para el empaquetamiento como aplicaciones de escritorio.
  • Y también, JQuery y librerías como AngularJS y Knockout, utilizados en sistemas legados.

Desarrollos para dispositivos móviles

Aunque no podemos hablar de una tecnología propiamente dicha, mediante este epígrafe queremos poner de manifiesto el firme convencimiento que a nivel de empresa tenemos de que, en nuestros días, los dispositivos móviles juegan un papel esencial en el día a día de individuos y organizaciones.

Por ello, en CRC disponemos de profesionales que pueden asistirle en la creación de aplicaciones para estos dispositivos.

Dentro del desarrollo de aplicaciones de movilidad tenemos gran experiencia en aplicaciones hibridas y nativas haciendo uso de:

  • Cordova, Ionic y ReactNative para aplicaciones hibridas.
  • Android Studio para Android y XCode para iOS en las aplicaciones nativas.

Por último, indicar la experiencia que tenemos en el desarrollo de Progressive Web Apps como alternativa a la realización de aplicaciones nativas.

Desarrollos con herramientas Oracle

No cabe duda de que en la actualidad la tecnología de base de datos de Oracle constituye un referente de fiabilidad y rendimiento, contrastados a lo largo del tiempo por innumerables clientes a lo largo de todo el mundo.

Gran parte del éxito de los SGBDR de Oracle se encuentra fundamentado en el desarrollo de diferentes herramientas relacionadas que complementan y potencian la funcionalidad ofrecida por los mismos.

Desde sus orígenes, CRC Information Technologies ha participado en el desarrollo de Sistemas de Información construidos bajo esta tipología propietaria de productos, fundamentalmente Oracle Forms, Oracle Reports y Oracle Discoverer. Cuenta, por supuesto, con una gran experiencia haciendo uso del lenguaje PL/SQL codificado dentro de la propia base de datos.

Aunque en la actualidad algunas de estas herramientas son consideradas en desuso, todavía existen gran cantidad de sistemas legados implementados mediante estas tecnologías: nuestros profesionales pueden ofrecerle una solución de continuidad si desea mantenerlos o ayudarles a migrarlos a una tecnología más novedosa como pueden ser JEE o .NET si así lo desean.

Cuente con nosotros en cualquiera de los casos.

Además de estas tecnologías, CRCofrece a sus clientes su experiencia en la implantación, gestión y mantenimiento de productos de Oracle, entre los que pueden destacarse:

  • Oracle Database
  • Servidores de aplicaciones: Weblogic
  • Oracle Access Manager (OAM) sobre Webgate o mod_osso
  • Oracle Business Intelligence (OBIEE)

Desarrollos con otras herramientas

Dada la naturaleza Web de las aplicaciones que normalmente suelen desarrollarse en nuestros días, la mayoría de los Sistemas de Información construidos lo son haciendo uso de las tecnologías JEE y .NET, si bien en ocasiones aparece la necesidad de construir aplicaciones implementadas en arquitecturas cliente-servidor y/o con los lenguajes de programación diferentes a Java y aquellos vinculados a .NET.

Nuestros ingenieros en CRC Information Technologies han hecho uso, entre otros, de los siguientes lenguajes de programación en diferentes proyectos desarrollados para nuestros clientes:

  • PHP y Perl, utilizado en el desarrollo de aplicaciones Web como alternativa de lenguaje de servidor a las tecnologías JEE y .NET.
  • C y C++, de relevancia en la implementación de soluciones de ingeniera y Sistemas de Información en tiempo real.
  • Y también en el mantenimiento y evolución de sistemas legados, construidos fundamentalmente en Visual Basic

Servidores de bases de datos

CRC cuenta con una dilatada experiencia en el manejo de datos, garantizando su seguridad, calidad y confidencialidad.

Nuestro equipo es capaz de realizar todas las acciones requeridas, desde la creación, gestión, mantenimiento o administración de diferentes motores de base de datos, tanto relaciones como no relaciones.

Algunos de los sistemas de base de datos con los que hemos trabajado son:

Base de datos SQL

  • Oracle
  • SQL Server
  • BD2
  • PostgreSQL
  • MySQL

Base de datos No SQL

  • MongoDB
  • Redis
  • Cassandra

Entorno Cloud

Desde hace unos años, un gran número de nuestros desarrollos e infraestrctura IT son desplegados en entornos en Cloud. De igual mantera, hacemos uso de los distintos servicios e infraestructuras proporcionados por estos entornos. Tenemos gran experiencia y personal certificado en los principales proveedores comerciales del mercado:

  • AWS (Amazon Web Services).
  • Microsoft Azure.
  • Google Cloud.

MODALIDADES DE CONTRATACIÓN

A la hora de contratar nuestros servicios, usted puede optar por una de varias opciones:

  • Contratar con CRC Information Technologies la totalidad del proceso de construcción del sistema, desde el análisis a la implantación, incluyendo formación, adaptación y mantenimiento.
  • Contratar sólo alguna de las fases del proyecto a desarrollar.
  • Contratar sólo una parte de un proyecto global coordinado por su organización o por terceras partes.
  • Obtener de CRC Information Technologies asistencia técnica en forma de personal cualificado que se incorpore a su organización y se responsabilice de una parte de su proyecto.

METODOLOGÍA DEL TRABAJO

En CRC Information Technologies trabajamos tanto con metodologías clásicas, como con metodologías Agile, en función de las necesidades del proyecto y de los requisitos metodológicos impuestos por el cliente.

Con las metodologías ágiles conseguimos adaptar la forma de trabajo a las condiciones del proyecto. A través de entregas cada dos o tres semanas, conseguimos gran flexibilidad para ajustar el desarrollo a las necesidades cambiantes del proyecto.

Estas metodologías agiles establecen de forma fija un presupuesto y un plazo, mientras que el alcance del desarrollo se va definiendo y ajustando a lo largo de todo el proyecto. Se intenta conseguir la mayor y mejor funcionalidad con los plazos y presupuestos establecidos, trabajando siempre con total flexibilidad de cara a cambios que puedan surgir.

Es cierto que en determinados proyectos se tiene definido a priori el alcance final, y lo que se desea establecer es el coste y el plazo para la funcionalidad deseada. En estos casos, entendemos que la metodología a aplicar sería una metodología clásica con sus fases de:

  • Análisis de Sistemas.
    • Especificación de Requisitos.
    • Análisis Funcional.
  • Diseño.
  • Construcción.
    • Desarrollo de componentes del sistema.
    • Desarrollo de aplicaciones de usuario.
    • Documentación.
  • Verificación y puesta a punto.
    • Pruebas de Aceptación.
    • Configuración final.
  • Plan de Implantación.
  • Formación de usuarios.
    • Manual de usuario.
    • Cursos.
    • Ayuda on-line.
  • Mantenimiento.

No obstante, en CRC Information Technologies, aunque usemos una metodología clásica, siempre intentamos integrar al cliente final a lo largo de todo del desarrollo del sistema y conseguir su retroalimentación lo antes posible. Gracias a esta retroalimentación, y dentro de los limites establecidos en el alcance del proyecto, adaptamos, de la mejor forma posible, el desarrollo final a las preferencias del cliente.

Durante todo el período de realización del proyecto e independientemente de la metodología utilizada, CRC Information Technologies ofrece la posibilidad de incorporar en sus equipos de desarrollo a personal de IT de la empresa cliente para favorecer la transferencia de tecnología de forma natural.

GESTIÓN DE CALIDAD

El cumplimiento de los objetivos de un proyecto de desarrollo en CRC Information Technologies se garantiza en base a su especificación en la fase inicial del proyecto, conforme a la siguiente información:

  • Objetivos del proyecto, cuantificados en la medida en que sea posible.
  • Alcance y ámbito del proyecto.
  • Fases del proyecto y productos a obtener en cada una de ellas.
  • Estimación de recursos.
  • Planificación del proyecto.

A partir de esta información se elabora el Plan de Calidad del Proyecto, haciendo hincapié en aquellas fases y productos más críticos. El plan contendrá los procedimientos e instrumentos de control necesarios para garantizar la calidad del producto final y del proceso de elaboración (en caso de que se siga una metodología concreta).

De forma general, podemos considerar los procedimientos de control divididos en las siguientes categorías:

  • Revisiones, enfocadas a los productos obtenidos en las distintas fases en formato documental.
  • Pruebas de los productos: Unitarias y de Integración (en la fase de Construcción) y de Aceptación (en la fase de Implantación).
  • Control del código fuente: Con herramientas como GIT, garantizamos el control y la trazabilidad de los cambios realizados en el código.
  • Integración Continua: Gracias al entorno de integración continúa usado en nuestros proyectos a través de Jenkins automatizamos la realización de las pruebas automáticas y las tareas de control de calidad del código mediante SonarQube.

La variedad e intensidad de estos procedimientos de control se establecerá de acuerdo a las preferencias y necesidades de cada cliente en cada proyecto concreto.

Contacta con nosotros