Recientemente, he escrito bastante sobre mis reflexiones acerca del desarrollo independiente. Quería resumirlas hablando del viaje de Mole, desde una CLI de código abierto hasta un software de pago para Mac: lo que pensaba en ese momento, lo que realmente funcionó y, quizás, aportar algo de información para los amigos que trabajan en sus propios proyectos.
El sitio web oficial de Mole es
mole.fit , y la CLI es de código abierto en
GitHub . Puedes probarlo primero.
El año pasado, durante las vacaciones del Día Nacional, escribí unos cientos de líneas de código junto a una piscina en Sanya y creé una herramienta de limpieza para Mac llamada Mole CLI, que publiqué como código abierto en GitHub. Originalmente, solo la había pensado para mí y mis colegas. Resultó que, en menos de un año, consiguió 60.000 estrellas, lanzó más de 50 versiones y 121 desarrolladores de todo el mundo enviaron código, resolviendo casi 800 sugerencias de funciones y errores.
En realidad, no me di cuenta de cuánta gente la estaba usando hasta que, una vez, como tenía dos imágenes en el README aceleradas por Vercel, el tráfico superó el límite de facturación y le debía 80 dólares a Vercel. Fue entonces cuando me di cuenta de que era hora de crear una versión de escritorio.
Anteriormente, el tipo de correo electrónico más común que recibía era de usuarios internacionales, con el sentimiento general de: "Mis padres usan Mac, mi hermana también, pero no saben cómo abrir la terminal. ¿Puedes hacer una versión que no requiera escribir comandos?". Pospuse esto un tiempo, principalmente porque sentía que la CLI en sí no era lo suficientemente madura. Más tarde, dediqué dos fines de semana a crear la versión de escritorio para Mac. La publiqué a las 10 de la noche y las notificaciones no pararon de sonar toda la noche: francos, euros, todo tipo de monedas. Finalmente, apagué las notificaciones por correo electrónico solo para poder dormir un poco. Mirando hacia atrás, ese lanzamiento inicial era bastante básico; ¿qué tan completo puede ser algo construido en dos fines de semana? Muchas funciones se añadieron poco a poco durante los meses siguientes. Básicamente, fue un grupo de usuarios que pagaron primero y luego me acompañaron para terminarlo. La CLI permanece igual, sigue siendo de código abierto y gratuita, y continuará actualizándose; solo la versión de escritorio es de pago.

Tres tipos de basura creada por la IA
Después de construir la versión de escritorio, la función que más usé yo mismo fue la de limpieza, porque la IA estaba llevando mi Mac al límite. Tengo Claude Code y Cursor abiertos todo el día para escribir cosas. Al principio, no le presté mucha atención, pero luego descubrí que la basura que deja la IA es muy diferente a la del software tradicional, y se divide en tres categorías.
La primera categoría son los artefactos de compilación. Esto no es nuevo, pero la IA ha ampliado la escala. Antes, podía escribir manualmente unos cientos de líneas de código y compilar de tres a cinco veces al día; ahora, dejo que un agente ejecute una docena de rondas en una tarde, compilando una vez por ronda. Los objetivos de proyectos Rust, las carpetas .next y dist de frontend, y DerivedData de Xcode crecen muy rápido. Una vez limpié 86 GB solo de estas cosas. La segunda categoría son las versiones antiguas que dejan las propias herramientas de IA. Herramientas de línea de comandos como Claude Code, Cursor Agent y GitHub Copilot se actualizan automáticamente. Se actualizan descargando la nueva versión completa en un nuevo directorio; cada versión ocupa unos 250 MB, y las antiguas no se eliminan. En unos meses, se pueden acumular una docena de versiones inútiles. La tercera categoría son los archivos de modelo: modelos descargados por Ollama y LM Studio, y los cachés de HuggingFace, que a menudo ocupan decenas de gigabytes.

Mole limpia las dos primeras categorías, pero no toca ni un solo byte de la tercera. Más tarde, fui pensando en esto en tres niveles, categorizando todo lo escaneado antes de decidir si debería estar marcado por defecto. El primer nivel es renovable: cachés HTTP, cachés de GPU, artefactos de compilación y la mayoría de los registros. Si la aplicación relevante se ha cerrado y la ruta está clara, se puede limpiar. El segundo nivel tiene un alto costo de reconstrucción: los cachés de registro de gestores de paquetes, los pesos de modelos locales y iOS DeviceSupport se pueden reconstruir, pero cuestan ancho de banda y tiempo, por lo que el usuario debería revisarlo él mismo. El tercer nivel es irremplazable: el historial de chat, las bases de datos de correo electrónico, las bibliotecas de fotos y el estado de los proyectos actuales. Creo que estas cosas nunca deberían incluirse en una lista de limpieza con un solo clic.
Comprimir estos tres niveles en una sola lista de "seguro de eliminar" sería más fácil, pero el costo es tomar la decisión por el usuario. Las diez categorías en la página de limpieza están ordenadas de esta manera: los cachés renovables están arriba, y cuanto más abajo, más necesario es que el usuario verifique por sí mismo.

Cosas como target, build, dist, __pycache__ y DerivedData se pueden recuperar recompilando, al costo de unos minutos de CPU. node_modules, Pods, venv y vendor también parecen directorios de dependencias, pero eliminarlos requiere descargarlos de nuevo de internet. Si estás en un tren de alta velocidad o en un avión y quieres ejecutar un proyecto, te quedarías esperando. Estas dos categorías se parecen y es fácil eliminarlas como basura. Mole CLI hacía esto al principio, pero luego eliminé específicamente todos los directorios de tipo de descarga de la lista de limpieza de la versión para Mac.
Los modelos son la categoría más pesada aquí. Volver a descargar decenas de gigabytes es un desastre, y una herramienta de limpieza general ni siquiera los eliminaría correctamente. Ollama divide los modelos en un montón de bloques nombrados por hash; varios modelos podrían compartir el mismo bloque. ollama rm calcula si alguien más está referenciando un bloque antes de atreverse a liberarlo. Si eliminas manualmente un bloque de gran tamaño del sistema de archivos, podrías romper otro modelo. Solo la propia herramienta entiende estas referencias.
Por lo tanto, rutas como ~/.ollama/models y ~/.cache/huggingface están codificadas en una lista de protección en el código. Ni siquiera aparecen durante la fase de escaneo; solo muestran su tamaño ocupado en la sección de análisis de disco, dejando que los propios modelos sean gestionados por Ollama o LM Studio.

Hay otra categoría de cosas aún más intocables que los modelos: los registros de sesiones de IA. ~/.codex/sessions, ~/.claude/projects y ~/.grok/sessions almacenan tus diálogos completos con la IA durante meses o incluso un año. Contienen tus pensamientos en ese momento, las soluciones rechazadas y las razones de cada cambio. Si se eliminan, se pierden para siempre y, en cierto modo, son más valiosos que el propio código. Por lo tanto, estas rutas nunca se limpiarán en Mole, sin importar cuánto tiempo lleven ahí. También están protegidos los recuerdos, planes, habilidades e imágenes generadas.

Estas listas de protección no se pensaron todas al principio; se aprendieron principalmente a base de prueba y error. El error más tonto fue com.apple.e5rt.e5bundlecache. Tiene "Caches" en el nombre y está ubicado en el directorio de caché, por lo que parece un caché, pero en realidad es un modelo compilado por el Neural Engine de Apple. La CLI, al principio, lo trató como un caché y lo limpió, lo que provocó que todas las aplicaciones que usaban funciones de reconocimiento se bloquearan hasta reiniciar. Desde entonces, he desarrollado un hábito: cuando veo un directorio con "cache" en el nombre, me hago tres preguntas: ¿Quién lo escribió? ¿Quién lo leerá después de un reinicio? ¿Cómo lo recupero si lo elimino por error? Si no puedo responder a una, no lo toco.
Mira antes de eliminar
No juzgo la calidad de este tipo de herramienta por cuánto puede limpiar, sino por si te permite ver claramente antes de eliminar.
Cuando Mole limpia, primero escanea, enumera los elementos uno por uno y muestra exactamente qué es cada elemento, dónde está y cuánto espacio ocupa. Los elementos de los que no estoy seguro están desmarcados por defecto. Confirmas antes de eliminar y, al eliminar, los elementos van primero a la Papelera para que se puedan recuperar si te arrepientes. El escaneo y la limpieza se realizan completamente en local; los archivos y los resultados nunca se suben. El costo es que es más lento y requiere un paso de confirmación adicional, lo que puede parecer tedioso cuando tienes prisa, pero prefiero omitir una eliminación que eliminar algo por error.

La desinstalación sigue la misma lógica. Cuando seleccionas una aplicación, Mole encuentra todo lo que está disperso por el sistema, etiquetando cada elemento con su ruta y tamaño. En la imagen de arriba, la aplicación Claude en sí solo ocupa 781 MB, pero ~/Library/Application Support/claude ocupa 7,67 GB. Nunca es el paquete de la aplicación en sí lo que realmente ocupa espacio. Los elementos de inicio y los servicios en segundo plano también están en la misma página, para que no tengas que buscarlos en la Configuración del Sistema.
Por ejemplo, los instaladores de actualizaciones del sistema macOS, el directorio /macOS Install Data, a menudo superan los 10 GB y parecen objetivos de limpieza perfectos. Pero el sistema podría necesitarlos para completar la actualización; eliminarlos demasiado pronto podría impedir que la máquina arranque. Por lo tanto, en Mole, es un elemento de revisión desmarcado con tres capas de protección: si hay una actualización esperando para instalarse, toda la fila está oculta; si el instalador se tocó en los últimos 14 días, está oculto; si los procesos relacionados con la instalación aún se están ejecutando, está oculto. Si no se puede leer ninguna señal, se trata como un riesgo y no se muestra en absoluto.
En el momento de la ejecución, el script con privilegios de root vuelve a ejecutar estas comprobaciones. Si fallan, sale con un código distinto de cero. No verás una situación en la que "el informe dice que se limpiaron 12 GB pero no se movió ni un solo byte".
Tengo una forma muy sencilla de juzgar si una herramienta de limpieza es buena. Instala dos productos del mismo proveedor, desinstala solo uno y mira si incluye el directorio principal de Application Support compartido o el contenedor de grupo. Si lo hace, significa que está emparejando por nombre, no por propiedad. No me atrevo a dejar que una herramienta que ni siquiera puede aclarar la propiedad elimine cosas en masa.

No te molestará normalmente
Limpiar 86 GB de una sola vez no se logra eliminando algunos registros; al desinstalar Claude, puedes encontrar cosas diez veces más grandes que la propia aplicación repartidas por todo el sistema. Encontrará lo que necesita encontrar, pero no te molestará activamente.
Una vez instalado, no aparecerán notificaciones cada pocos días para recordarte que limpies, ni saltará después de un escaneo para decirte lo peligroso que es tu ordenador. Ábrelo cuando quieras limpiar; cuando no, es como si no existiera.
La interfaz sigue la misma filosofía. Si el escaneo no ha terminado, no entra en la página de resultados. Para las cosas que estarán listas en un momento, ni siquiera da un aviso de carga; solo después de un tiempo aparece una animación de "ocupado". La página de finalización también tiene espacio reservado de antemano para que la ventana no salte cuando aparezcan los resultados. Todas estas reglas son muy triviales, pero juntas son la razón por la que se siente estable de usar.
Las tareas subyacentes son inherentemente impredecibles, por lo que agregar animaciones no ayuda; el proceso en sí debe ser confiable. No quiero una herramienta de mantenimiento que requiera monitoreo constante. Inicia la tarea, espera a que termine y luego recupera la pantalla; eso es suficiente. No necesita mantener las luces parpadeando para recordarte que la mires.
La accesibilidad también es parte de esto. El orden de lectura, las operaciones con el teclado y la estabilidad del enfoque son parte de la misma experiencia "tranquila". Cuando el "Reducir movimiento" del sistema está activado, los planetas detienen su rotación decorativa y los cambios de estado reducen el movimiento espacial. Ninguna operación depende de que el usuario entienda una animación.

Hacerlo utilizable incluso para un septuagenario
Anteriormente, cuando hacía cosas, básicamente solo consideraba si eran fáciles de usar para mis colegas y amigos. Al pasar de la CLI a la versión de escritorio, me di cuenta de que hacerlo utilizable para un abuelo de 70 años implica mucho más, y es mucho más interesante. Lo siguiente está extraído de los correos electrónicos de los usuarios de los últimos tres meses; mis mayores logros están casi todos aquí.
Un usuario británico de casi 70 años dijo que tuvo un "momento de despiste" y compró Mole otra vez. "Considera el segundo pago como un regalo para ti; gracias por esta excelente herramienta, me ha ahorrado muchas más libras que CleanMyMac". Le sugerí que solicitara un reembolso o regalara la licencia extra. Preguntó y respondió al día siguiente: "Ninguno de mis vecinos usa Mac, ni mis seguidores en Bluesky. Esta va por mi cuenta". Recibir cartas así me hace sentir que debo hacer el producto aún mejor para ser digno de esa confianza.
Un usuario estadounidense corrigió una idea errónea que tenía sobre los hábitos regionales. Siempre pensé que los estadounidenses tenían que usar Fahrenheit para la temperatura, así que configuré Fahrenheit por defecto para la región de EE. UU. Dijo: "Los estadounidenses usan Celsius en todos los contextos técnicos; solo el clima y la temperatura corporal son excepciones. Me sorprendió ver 110 cuando instalé Mole. Las especificaciones que Apple muestra a los estadounidenses también están en Celsius, y fastfetch/neofetch usan Celsius por defecto en los sistemas estadounidenses. Sugiero mantener el interruptor de Fahrenheit pero usar Celsius por defecto para todas las regiones". Más tarde lo cambié a Celsius por defecto con un interruptor para Fahrenheit. También envió un seguimiento sobre el precio, diciendo que el número que di no parecía un precio deliberadamente establecido, sino más bien una conversión de otra moneda. Añadió: "Con 'extranjero', no me refiero a antichino, sino a que la gente quiere sentir que el autor los entiende". Para ser honesto, saqué ese precio de la nada; nunca pensé seriamente en el precio antes de hacer el producto. Que un desconocido me señalara fue bastante vergonzoso; resulta que una cifra de precio también afecta las decisiones de los usuarios.
Un usuario con discapacidad visual leve dijo: "Parece una aplicación muy bonita, pero desafortunadamente no puedo usarla; parece que tiene el modo oscuro codificado. Mi sistema está en modo claro y solo uso aplicaciones con modo claro". Hacer que Mole fuera solo modo oscuro fue una decisión deliberada; el panel de la barra de menú flota sobre el fondo de pantalla como un HUD, y el vidrio oscuro tiene menos deslumbramiento, eliminando la necesidad de un cambio de tema. Pero esta razón no fue válida para él. Siempre sentí que me tomaba en serio la accesibilidad, pero fallé completamente al darme cuenta de que el modo claro en sí mismo es un requisito de accesibilidad. Ha pasado un tiempo desde que recibí ese correo electrónico, y Mole sigue siendo solo modo oscuro; el modo claro todavía está en la lista, sin terminar. Me siento un poco culpable de que un producto que dice preocuparse por la accesibilidad haya dejado esperando tanto tiempo a un usuario que dijo explícitamente que no podía usarlo.
Un profesor de una universidad alemana solicitó una licencia educativa, diciendo que era "no solo un apoyo para mí personalmente, sino también un apoyo significativo a nivel educativo". Resulta que hay profesores internacionales usando mi producto en un entorno de aula, un caso de uso que no había anticipado. Un médico húngaro dio la reseña negativa más honesta: "Para ser honesto, el precio es un poco alto para algo que una aplicación gratuita también puede hacer". No me pareció duro en absoluto; el poder adquisitivo varía mucho entre países. No se quejaba; me estaba ayudando a localizar un problema.
Mis funciones favoritas en Mole no fueron realmente ideas mías. La notificación cuando los AirPods tienen poca batería se añadió mientras trabajaba en la salud de la batería; no me había encontrado con ese escenario hasta que una tarde la recibí realmente: fue muy considerado y no intrusivo. Añadí tres comportamientos diferentes para mantener la pantalla encendida después de un recordatorio de usuario; cuando salgo de repente los fines de semana, la codificación con IA puede seguir ejecutándose, ahorrándome mucho tiempo asíncrono. Poder ver el nivel de batería del iPhone en el estado fue difícil de implementar al principio, pero finalmente encontré una manera. Todas estas fueron cosas que los usuarios me pidieron que añadiera, y terminé siendo el que más se benefició de ellas.
En realidad, he estado respondiendo correos electrónicos manualmente
Las preguntas frecuentes, los reembolsos y el restablecimiento de códigos de activación representan menos del 1% de la base de usuarios. Podría escribir un script en media hora para automatizarlo todo, pero no lo he hecho. Solo procesándolos uno por uno puedo sentir lo que los usuarios realmente quieren, por qué solicitan un reembolso y qué los hace sentir incómodos, y eso a menudo no es lo primero que preguntan. Mi umbral para la automatización es cuando se cumplen tres cosas: el problema se repite, la respuesta es estable y se entienden todas las excepciones. Hasta entonces, prefiero responder una por una. Esto sigue siendo efectivo; no he gastado dinero en marketing, y el crecimiento proviene principalmente del boca a boca. La tasa de reembolso está por debajo del 0,8%. Muchos compradores son usuarios de larga data de la CLI.
Antes del lanzamiento, no configuré un sistema de tickets, plataforma de atención al cliente ni base de conocimientos. A los ingenieros les gusta construir estos sistemas de soporte primero porque es un trabajo familiar, y la IA lo ha comprimido a medio día, lo que hace que sea más fácil comenzar demasiado pronto. Pero aunque solo se tarda medio día en construirlo, el mantenimiento es un compromiso a largo plazo, y simplemente no es necesario todavía. El día en que la bandeja de entrada comience a perder solicitudes, los tiempos de respuesta se vuelvan poco claros o la misma pregunta obtenga diferentes respuestas, entonces será el momento de necesitar un nuevo sistema. La IA hace posibles muchas partes de este producto, pero la comunicación con las personas no puede ser reemplazada por la IA; de lo contrario, no sería interesante. Puede mejorar la eficiencia, pero es difícil mejorar los sentimientos mutuos y la confianza. Esta también podría ser una forma en que los productos nacidos de la codificación con IA mantengan un toque humano.
Cosas que encontré útiles para hacer
En la construcción de un producto, siento que la habilidad de codificación solo representa alrededor del 30%. Más esfuerzo se dedica a conectar tus propios puntos débiles con los de la mayoría de los usuarios, crear algo que sea fácil de usar sin un manual y ponerlo frente a las personas adecuadas para que sientan que resolvió un gran problema. Un ingeniero de producto es aproximadamente una combinación de investigador, gerente de producto, ingeniero, operador, analista de datos y estratega de negocio.
Lo que no haces es mucho más importante que lo que haces. Para una herramienta que elimina tus archivos, esto se convierte en lo que no eliminas. Esas listas de protección codificadas provienen todas de esta regla. Tuve la suerte de leer muchos libros sobre cultivo de ingeniería cuando comencé como novato; frases como "las entidades no deben multiplicarse sin necesidad" y "la simplicidad es la máxima sofisticación" se filtraron lentamente en mi vida, trabajo y código. Siento esto aún más profundamente después de hacer productos. La diferencia entre un buen producto y uno mediocre radica en gran medida en la capacidad de decidir qué no hacer. Algunas funciones son buenas en sí mismas, pero si no están en el camino principal, no las incluyo; de lo contrario, se convierte fácilmente en un montón de funciones difíciles de mantener.
Otra sensación es que debes tener una hoja de ruta para los próximos seis meses en tu cabeza, sabiendo claramente qué añadir en cada versión, cuáles son necesidades falsas y qué funciones deben colocarse donde sean útiles para los usuarios. Para los usuarios comunes, el que se puede usar sin leer un manual es el bueno. El posicionamiento de Mole es como un guardián silencioso del mantenimiento del sistema Mac. Muchos amigos han sugerido funciones excelentes que he rechazado cortésmente. Mi objetivo es simple: si uno de cada cien usuarios de Mac está dispuesto a conservar Mole, ya es lo suficientemente útil.
Ahora, antes de que una función entre en la hoja de ruta, debe pasar tres puertas: no puede haber temporizadores, oyentes o sobrecarga de muestreo permanentes si el usuario no ha hecho clic en la función; no se pueden ampliar los ayudantes privilegiados ni agregar nuevos permisos del sistema para una pequeña conveniencia; y no se pueden agregar configuraciones cuando hay valores predeterminados razonables. Estos no son principios universales para todo el software, sino reglas que Mole se ha fijado a sí mismo. Cada tarea permanente, privilegio y configuración adicional requiere que el usuario confíe un poco más en ti.

Básicamente, no ahorro para "grandes movimientos"; intento lanzar una versión cada semana para que los problemas de los usuarios se resuelvan rápidamente y pueda tener un diálogo de ida y vuelta. Cada lanzamiento, actualización y promoción es una gran oportunidad de comunicación y permite que las personas que no han visto las noticias sepan lo que estás haciendo.
En la era de la IA, las barreras del código son cada vez más pequeñas. Lo que necesita más control es cómo gastar los Tokens exactamente en resolver los problemas de los usuarios. No me importa gastar más, pero debe gastarse de manera efectiva, por ejemplo, discutiendo los requisitos a fondo, profundizando en los datos para encontrar el problema real y escribiendo un texto que la gente entienda de un vistazo. Estas áreas valen la pena el gasto. Veo los Tokens como una inversión, y las inversiones deben dar rendimientos.
Mole ha sido global desde el primer día, y publico más contenido en inglés que en chino. Mi sensación durante este tiempo es que el mundo es enorme, la base de usuarios es amplia y están dispuestos a confiar en ti desde el principio. Las personas a las que ayudas de paso a menudo se convierten en tus usuarios más tarde porque hubo una interacción real. No he gastado dinero en promoción; los picos en X son altos pero de corta duración, mientras que las cosas publicadas en YouTube se degradan muy lentamente. Siempre que el contenido sea bueno y alguien lo recomiende, puede vivir allí durante mucho tiempo.
Pasé más tiempo en los datos de lo que imaginaba. Mirar las ventas por dimensión y tiempo, combinado con los datos de tráfico, los comentarios de los usuarios, todos los registros de interacciones con los usuarios, las razones de los reembolsos y todos los problemas en el lado del código abierto: todos estos son recursos preciosos. Me ayudan a descubrir muchos problemas que no conocía y a ver exactamente dónde se rompe el embudo de ventas.
El último punto tiene más que ver con mi propio enfoque. Construir una cuenta con un utilitarismo profundo te pone ansioso; prefiero construirla como una marca, conmigo mismo como la marca misma. Mis pensamientos, ideas, actualizaciones de productos, conocimientos, interacciones y comentarios están agregando confianza a esta marca. La confianza es especialmente importante en el mundo de la IA, falso pero próspero de hoy. Las cosas que suenan increíbles pero que se sienten mediocres una vez que haces clic ya han bajado las expectativas de muchos usuarios. Incluso si tienes un producto realmente bueno, no obtendrás atención sin confianza. Esto se puede hacer a muy largo plazo; mientras estés en internet, esta marca vivirá: es el producto con el ciclo de vida más largo de tu vida.
Por qué cinco planetas
El escritorio de Mole tiene actualmente cinco módulos: Limpieza, Desinstalación, Optimización, Análisis de Disco y Estado del Hardware. Cada módulo corresponde a un planeta en la interfaz: Limpieza es la Tierra, Desinstalación es Marte, Optimización es Mercurio, Análisis es Júpiter y Estado es el Sol. Esto está relacionado con mi amor infantil por ver las órbitas planetarias, además de que lo primero que realmente quería aprender después de aprender frontend hace diez años era WebGL. Las texturas de los planetas se cambiaron no menos de 10 veces; descargué muchas del sitio web oficial de la NASA antes de decidirme. La dirección de rotación, la velocidad y los efectos de vuelo después de la finalización siguen los cuerpos celestes reales.

Esta parte podría haberse omitido; una pequeña herramienta de la barra de menú que limpia con un clic también funcionaría. Pero la basura cibernética generada por la IA ya es suficiente. En lugar de usar Tokens para apilar otra interfaz que apenas funciona, quería hacer algo un poco más cómodo: no desperdiciar mis Tokens y no contaminar tu línea de tiempo.
Me gusta que las cosas sucedan de forma natural en lugar de perseguir resultados con urgencia en poco tiempo; estos tres meses lo han reforzado. Hace un tiempo, pensé en una frase: El mejor trabajo del mundo es probablemente para un aprendiz continuo en un mercado libre que use su juicio, habilidad y estética para crear continuamente valor por el que otros estén dispuestos a pagar.
La CLI es de código abierto y gratuita en GitHub, y la versión de escritorio para Mac está en el sitio web oficial mole.fit.
Como es mi primera vez creando un producto de pago, puede que haya aspectos que no haya considerado del todo. Agradezco sugerencias y consejos de amigos con más experiencia. Los cambios mencionados anteriormente no fueron ideas mías; todos surgieron de un correo de un usuario o de un issue. Por eso, nunca desaproveches la oportunidad de comunicarte con los usuarios; escucha sus quejas y sugerencias a fondo—pueden ayudarte mucho y hacerte entender mejor a tus usuarios.





