Ingeniería de software
Elección de la tecnología, frameworks de front-end, árabe y escritura de derecha a izquierda, nativo o multiplataforma, nube, herramientas de prueba y sistemas antiguos.
12 preguntas
¿Cómo eligen el stack tecnológico?
Partimos de lo que su equipo puede operar y de los perfiles que puede contratar, de lo que usan sus demás sistemas y de lo que debe hacer el software. Para la mayoría del software empresarial, eso significa un lenguaje de uso general como TypeScript, Java, C# o Python, una base de datos relacional como PostgreSQL o SQL Server, y la nube que ya utiliza. Evitamos herramientas de nicho salvo que resuelvan un problema real, y dejamos constancia de cada decisión y sus motivos.
Más información: Desarrollo de software a medidaEnlace a esta pregunta
¿Qué framework de front end utilizan?
Usamos React con Next.js para la mayoría de las aplicaciones nuevas, porque admite renderizado en el servidor, cuenta con herramientas sólidas y es ampliamente conocido por los ingenieros. También trabajamos con Angular y Vue, y continuamos con el framework que usted ya utiliza cuando es la opción sensata. La decisión depende de las competencias de su equipo, de lo que debe hacer la aplicación y de lo que usted mantendrá después.
¿Puede la aplicación admitir el árabe y otros idiomas?
Sí. Mantenemos todos los textos fuera del código para que puedan traducirse, y maquetamos las páginas con propiedades lógicas para que se reflejen correctamente en idiomas de derecha a izquierda como el árabe. Las fechas, los números y las monedas siguen la configuración regional de cada idioma. Lo planificamos desde el principio, porque añadir un segundo idioma a una aplicación creada para uno solo supone mucho más trabajo.
¿Debemos desarrollar en nativo o multiplataforma?
Las aplicaciones nativas en Swift y Kotlin ofrecen el acceso más completo a las funciones del dispositivo y la mejor adaptación a cada plataforma. Las aplicaciones multiplataforma en React Native o Flutter comparten la mayor parte del código entre iOS y Android, lo que reduce el costo de desarrollarlas y modificarlas. Recomendamos el desarrollo nativo cuando la aplicación depende mucho del dispositivo, como en el caso de hardware de pago o contenido multimedia complejo, y el multiplataforma para la mayoría de las aplicaciones empresariales y de consumo.
¿Puede funcionar la aplicación sin conexión?
Sí, cuando los recorridos lo permiten. Guardamos en el dispositivo, cifrados, los datos que necesita el usuario y ponemos sus cambios en cola hasta que vuelve la conexión. Las reglas de sincronización deciden qué ocurre cuando el mismo registro se ha modificado en dos lugares. Diseñamos esas reglas con usted, porque son decisiones de negocio tanto como técnicas.
¿Qué proveedor de nube debemos usar?
Normalmente el que ya utiliza, salvo que haya un motivo claro para cambiar. Amazon Web Services, Microsoft Azure y Google Cloud ejecutan bien cargas de trabajo empresariales. Los factores decisivos son sus contratos y competencias actuales, los servicios gestionados que necesita, las normas de residencia de datos y cómo se conectan sus demás sistemas. Trabajamos con los tres y limitamos el código específico de cada proveedor a los puntos donde vale la pena.
¿Qué herramientas de pruebas utilizan?
Usamos las herramientas que encajan con su stack y su equipo: Playwright o Cypress para las pruebas web de extremo a extremo, Appium para aplicaciones móviles, Jest, JUnit o pytest para las pruebas unitarias, Postman para las comprobaciones de API, k6 o JMeter para el rendimiento y OWASP ZAP para los análisis de seguridad. Siempre que podemos, mantenemos las pruebas en su repositorio y en el lenguaje de sus ingenieros, para que puedan mantenerlas.
Más información: QA y automatización de pruebasEnlace a esta pregunta
¿Cómo prueban las integraciones con bancos, proveedores de pago o ERP?
Usamos el entorno de pruebas o sandbox del socio cuando existe, y simuladores cuando no, para que las pruebas puedan ejecutarse con cada cambio sin depender de un tercero. Los datos de prueba cubren los casos desfavorables: pagos rechazados, tiempos de espera agotados, mensajes duplicados y fallos parciales. Las comprobaciones de extremo a extremo confirman que los totales concilian entre sistemas, no solo que cada llamada devolvió un resultado correcto.
Más información: QA y automatización de pruebasEnlace a esta pregunta
¿Pueden diseñar para el árabe y otros idiomas de derecha a izquierda?
Sí. El diseño de derecha a izquierda es más que invertir la pantalla. La navegación, los indicadores de progreso, los gráficos y los iconos que implican una dirección deben reflejarse, mientras que los números, los logotipos y los controles multimedia normalmente no. El texto en árabe necesita su propia tipografía, su propio tamaño y su propio interlineado. Diseñamos ambas direcciones a la vez y las revisamos con lectores nativos.
¿Qué es un sistema de diseño y lo necesitamos?
Un sistema de diseño es un conjunto compartido de colores, tipografía, espaciado y componentes, con pautas sobre cuándo usar cada uno, sincronizado entre los archivos de diseño y el código. Lo necesita cuando varios equipos o productos deben verse y comportarse de forma coherente, o cuando un producto va a crecer durante años. Para una única herramienta pequeña, suele bastar con una biblioteca de componentes más ligera.
¿Cuándo es mejor encapsular un sistema que sustituirlo?
Cuando el núcleo antiguo es estable y correcto, pero de difícil acceso. Unas API modernas delante de él permiten que nuevos canales, socios y productos usen sus funciones sin tocar sus componentes internos, con un riesgo mucho menor que sustituirlo. Recomendamos la sustitución cuando el sistema impide el cambio, no se puede proteger o ya no es posible encontrar personal para mantenerlo.
Más información: Modernización de sistemas heredadosEnlace a esta pregunta
¿Con qué tecnologías antiguas pueden trabajar?
Trabajamos con las tecnologías sobre las que se construyeron muchos sistemas empresariales, incluidas versiones antiguas de Java y .NET, bases de datos relacionales como Oracle Database y SQL Server, servicios SOAP e interfaces basadas en archivos. Para plataformas menos comunes, evaluamos primero el código y le decimos con claridad si contamos con los conocimientos necesarios o si conviene incorporar un especialista al equipo.
Más información: Modernización de sistemas heredadosEnlace a esta pregunta
Más preguntas
- IA y datosModelos y proveedores, precisión, recuperación o ajuste fino, plataformas de datos, datos en tiempo real y automatización de documentos.12 preguntas
- IntegracionesSistemas ERP, middleware, formatos bancarios, ISO 8583, terminales, host-to-host o EBICS, banca abierta y API de terceros.19 preguntas
- SectoresCore bancario, ISO 20022, monitorización del fraude, tiendas, EDI y transportistas, HL7 y FHIR, accesibilidad y actualizaciones del ERP.15 preguntas
- Costos y preciosQué determina el costo de un proyecto o de un equipo, y cómo lo estimamos.31 preguntas
- PlazosCuánto tarda el trabajo en empezar y en entregarse, y qué lo modifica.18 preguntas
- Propiedad y contratosQuién es dueño del código, los datos y los resultados, y cómo funcionan los contratos.9 preguntas
- Seguridad y datosCómo protegemos sus sistemas, su código y sus datos mientras trabajamos.32 preguntas
- Equipos y personalQuién trabaja en su proyecto, cómo se elige y cómo cambian los equipos.22 preguntas
- Proceso y comunicaciónCómo se planifica, se informa y se acepta el trabajo.43 preguntas
- Soporte y operaciónQué ocurre tras la puesta en producción: soporte, monitorización y cambios.17 preguntas
- Acerca de XSISQuiénes somos, dónde estamos y cómo contactarnos.7 preguntas
Cuéntenos qué necesita desarrollar o conectar.
Describa los sistemas, los plazos y las restricciones. Los ingenieros adecuados se encargan a partir de ahí.