No estoy seguro de si un buen software podría juzgarse en función de la licencia, las tecnologías, el servicio al cliente y el costo. Estos podrían ser indicadores de una compañía que construyó ese software, pero el software no puede considerarse “bueno” en esos parámetros.
Dicho esto, en mi humilde opinión, un “buen software” tiene las siguientes características:
1. El código es diseño y el diseño es código . Entonces, dice el dicho. Un buen código respeta y resalta automáticamente todas las decisiones con respecto a su decisión. No verá los síntomas de un concepto de “ventana rota” .
- ¿Qué está haciendo Instagram para evitar que los usuarios de aplicaciones de terceros aumenten sus Me gusta? ¿Cómo trata Instagram con estos usuarios?
- ¿Cuál es la mejor aplicación de pago en India?
- ¿Qué programas son más confiables para una eliminación segura en unidades USB y unidades SSD, si las hay? ¿No aceleran el agotamiento prematuro relacionado con el kilometraje?
- ¿Cuál es la mejor aplicación para llamadas internacionales gratuitas?
- Tengo una idea brillante de que quiero convertirme en una aplicación. Solo necesito un desarrollador de aplicaciones que haga realidad este ideal. ¿Cómo puedo conseguir uno?
2. Separación de preocupaciones : un buen software tiene la cantidad correcta de separación de preocupaciones y modularidad. Por lo tanto, puede encontrar el código encapsulado en los niveles / módulos / capas lógicos correctos. Esto lo hace extremadamente mantenible.
3. Sigue las convenciones correctas : un buen software sigue religiosamente todas las convenciones correctas. No encontrará muchas excepciones a las convenciones establecidas para construir el software
4. Unit Test Suite : un buen software es el que se puede probar. Uno encontraría una buena cantidad de casos de pruebas unitarias para que el equipo pueda desarrollar el software durante un período de tiempo. Casi tendría una cobertura de código del 100%
5. Buen manejo y registro de excepciones : un buen software no le permitiría arder en llamas en escenarios excepcionales. Los manejaría con gracia y lo registraría para que puedan resolverse fácilmente más tarde.
6. Rendimiento : funcionaría razonablemente bien en escenarios regulares y estresantes. No se encontrará esperando durante segundos antes de que realmente procese una solicitud. Esto es más cierto para el software orientado a empresas y consumidores. Por supuesto, podría llevar tiempo si se trata de procesar grandes datos o hacer algún tipo de procesamiento de imágenes, etc.
7. Experiencia del usuario : su interfaz de usuario tendría sentido inmediatamente para sus usuarios. Sería simplista, elegante y algo que sea fácil de usar.
Podría destacar algunos más, pero estos son los que se destacan de inmediato.