Permítanme tratar de resumir cosas sobre el desarrollo de software en general que aprendí durante el trabajo independiente:
Sigue tus horas de trabajo:
Invierta tiempo en (seleccionar) software para automatizar el seguimiento y resumir sus horas de trabajo. Una vez hecho e integrado en su flujo de trabajo, nunca se preocupará por perder horas y crear facturas. También te enseñará a hacer mejores estimaciones.
No te vendas demasiado barato:
Comprueba lo que tú y tu trabajo realmente valen.
Recuerde, usted es más que un simple programador, tiene una visión profunda de cómo el software puede mejorar y mejorar el negocio. Estás creando valor, haces que las empresas valgan más.
- ¿Cuáles son algunas vías en línea donde puedo trabajar como analista / científico de datos independiente?
- ¿Qué tan creíble es el periodista independiente con sede en Hong Kong Yoichi Shimatsu?
- ¿Qué debo aprender para convertirme en desarrollador web independiente?
- ¿Tiene que bifurcar todo el código del sitio web como un profesional independiente para el cliente?
- ¿Cómo puedo ponerme en contacto con los lanceros libres para realizar investigaciones de mercado cualitativas en LATAM y África?
No reinventes la rueda:
Somos piratas informáticos por naturaleza, nos gusta desarrollar y codificar.
Resista el impulso de hacer algo solo por crear algo nuevo.
A menudo hay una solución madura de código abierto que es lo suficientemente buena para su caso de uso. Aprenda a ser eficiente en el aprendizaje de nuevas apis.
Espere cambios en los requisitos:
Diseñar la arquitectura del software es fundamental para un buen software.
Pero no se pierda en los detalles de implementación, como los miembros exactos y las propiedades de sus clases.
Los clientes tienen una misteriosa capacidad de detectar qué cambio de requisitos destruirá su arquitectura. Esperar que los cambios sucedan.
Dando a los clientes lo que quieren:
Los clientes a menudo piensan que saben exactamente lo que necesitan y lo que quieren está perfectamente alineado con lo que necesitan.
Darles exactamente lo que quieren puede no ser satisfactorio y no ser lo mejor para su negocio.
Así que concéntrate en el siguiente consejo
Optimice el software para el caso de negocio:
Tómese su tiempo para sentarse con su cliente para descubrir qué tipo de software será más valioso para el negocio.
Descubra cuál es su estado actual y cómo esperan que el nuevo software pueda ayudar.
Verifique sus supuestos, a veces están equivocados.
Puede encontrar nuevas formas de mejorar sus negocios con su software.
No dar a los clientes lo que quieren:
Tómese su tiempo para explicarle a su cliente qué hará y qué no hará su software.
Gestione las expectativas de su cliente.
Comparta su progreso con la mayor frecuencia posible, si su cliente puede revisar su trabajo, podrá brindarle comentarios rápidos (cambios), administrar mejor su proyecto (espere que tenga otros proyectos, planes y plazos) y podrá manejar las consecuencias son mejores si encuentra algunos problemas inesperados durante su desarrollo.
¡Escriba los casos de uso!
Los casos de uso / escenarios tienen múltiples propósitos.
Son importantes para definir sus objetivos y los de su cliente.
Son perfectos para gestionar las expectativas y definir el alcance de su proyecto.
Úselos para estimar su carga de trabajo y riesgos.
Informe a su cliente sobre los riesgos potenciales.
Escribir pruebas!
Sus pruebas harán más que solo garantizar la exactitud de su código.
Si sus pruebas vuelven a ensamblar sus escenarios / casos de uso, pueden usarse para documentar su progreso.
Además, documentarán su código fuente.
Sus pruebas le ahorrarán muchos problemas.
Aumentarán su confianza y la de sus compañeros de trabajo en la mutación del código.
También se pueden usar como prueba de la calidad de su trabajo.
Por último, TDD ayuda (escriba la prueba primero, implemente el código después) ayuda a posponer la decisión arquitectónica mediante la aplicación de código comprobable, funcional e independiente.
Compare todo, optimice más tarde:
Si practica TDD, su código probablemente esté muy desacoplado.
Esto hace posible comparar (aprender a automatizar esto) cada parte de forma independiente.
De esta manera, tendrá una idea instantánea de dónde están sus cuellos de botella y qué optimización produce la mejor mejora.
Utilice Versioncontrol!
El código fuente es una bestia. Nunca deja de evolucionar. El seguimiento de la evolución de su código también crea valor.
Sus mensajes de confirmación son documentación adicional de su trabajo. También documenta los problemas que encuentra y muestra la complejidad de su trabajo.
Además, le permite extraer datos de su código fuente a través del historial, revelando regresiones, posibles problemas en su flujo de trabajo o arquitectura y dependencias ocultas.
También resulta útil si su cliente desea revisar una versión anterior de su software.
Recursos externos:
Control de origen de minería de datos:
Arquitectura ágil (comprobable):
Diseño arquitectónico y principios sólidos (Oncle Bob nuevamente)