Éstas son las características en las que he pensado yo.
Se aceptan comentarios/sugerencias/correcciones/aclaraciones/etc.
– La extensión tiene que cubrir una única funcionalidad.
No puede ser un cajón de sastre que toque áreas no relacionadas.
– Tiene que funcionar con cualquier funcionalidad estándar.
Por ejemplo, si la extensión utiliza productos, tiene que contemplar las variantes, ya que algunas empresas pueden estar utilizándolas.
– Tiene que ser fácil de instalar.
Si la extensión requiere de recursos externos, como una dll, una fuente de Windows, un WebService externo o una estructura de carpetas en el servidor, la propia extensión tiene que ser capaz de descargarlo, instalarlo y/o crearlo.
– Tiene que ser fácil de configurar.
Si se necesitan secciones de diario, o números de serie, o cualquier otra configuración, la extensión tiene que comprobar que existan (usando notificaciones), ayudar al usuario a crearlo (Assisted Setup), crearlo por defecto, o una combinación de las anteriores.
– Un usuario normal tiene que poder configurarlo.
No tiene que ser necesario tener permisos de SUPER para configurar la extensión.
– Tiene que ser fácil de utilizar e intuitivo.
Se deben usar ToolTips para explicar todos los campos. La extensión debe usar la misma terminología y el mismo flujo de datos que en el estándar.
– Tiene que haber material de formación accesible.
No puedes basar la formación a usuarios finales en consultores que hagan sesiones presenciales o remotas, porque no llegarás a tener suficientes consultores para formar a usuarios en 10.000 implantaciones.
– Tiene que haber un sistema de soporte accesible.
Necesitas un foro o un correo donde los usuarios puedan reportar incidencias, para que puedas corregir cualquier fallo en un tiempo razonable.
– Mantén una única versión, y continúa mejorándola.
Las nuevas versiones de la extensión tienen que ser fáciles de instalar y tienen que funcionar con las configuraciones y los datos existentes en los clientes.
– Crea la extensión de forma que sea fácil de traducir a otros idiomas.
– Permite que tu extensión se pueda extender.
Cada vez que sea relevante, lanza un evento. De esta forma otros se podrán suscribir a él y extender aún más tu funcionalidad.