Archivo de Etiquetas de 'development'

Una empresa o un trabajo para tí

Cuando empiezas tu aventura empresarial, se suele decir que no es lo mismo crear un negocio que un trabajo para ti. Lo primero sería una empresa en el estilo tradicional, lo segundo una forma en la que ganes dinero (no quiero decir que no lo puedas ganar de la primera forma). No hay nada intrínsecamente malo ni en una opción ni en la otra, simplemente tienes que saber que estas creando, porque las necesidades son distintas.

Si lo que hacemos, sea lo que sea, no puede sobrevivir sin nosotros, no estamos creando un negocio, estamos creando un trabajo para nosotros mismos. Un negocio no para, esta en marcha y continuamente tiene que producir. Si trabajas para ti, tienes tu tiempo, y tú decides en que te metes porque no podrás hacer más.

Puede parecer lo mismo, pero no lo es. Aunque de cualquiera de las dos formas seas (casi) imprescindible, al crear un negocio tienes que tener claro el camino que sigues, lo que haces/vendes y dónde quieres llegar. Si trabajas para ti, simplemente realizas una función (formar, vender un software, etc. lo que sea) para aprovechar una oportunidad, pero no podrás crecer. Es una cuestión de chip mental, simplemente tienes que ser consciente de ello. Si trabajas para ti sin creer que es eso lo que haces, o si eres un negocio sin un objetivo claro, lo que te sucederá es que estarás siempre escuchando cantos de sirena, sobre otras opciones, otros trabajos.

Por supuesto nada impide evolucionar de un estado a otro, de hecho con recursos limitados y simplemente una idea, es difícil empezar en cualquier caso, pero dentro de la idea de centrarse que ya hemos comentado, el saber lo que eres y dónde quieres ir es el primer paso.

Dump de SQLServer

No me preguntéis por qué, pero resulta que las versiones un poco antiguas de SQL Server no traen “de serie” una forma de hacer el dump de una base de datos como sentencias insert de SQL. Tiene millones de wizards, formatos varios, herramientas de líneas de comando como bcp, pero no tiene un “export as SQL insert” por ninguna parte (que yo haya encontrado, también puedo ser torpe). Esto en sí no debería ser problema, hay opciones de todo tipo como he comentado, hasta que te encuentras que alguien que tiene que recibir la base de datos te pone… ciertas limitaciones.


Buscas por la red… encuentras varias opciones… algún programa simplón, un administrador hecho con ASP.NET, unos cuantos procedimientos almacenados de resultados dispares… hasta que das con SQLServer Dumper. Sencillo, fácil, y que funciona :-D.


Por si a alguno le hace falta.

La forma legal

En algún momento dado querremos empezar a vender nuestros productos, para lo cual necesitaremos una forma legal. A pesar de lo que mucha gente piensa, no es necesario que creemos una empresa para venderlo, tampoco que seamos autónomos, de modo que repasaremos las opciones que tenemos de andar por casa. Debido a las características propias de una Micro-ISV, opciones como la cooperativa o la S.A. (que requiere 60.000 euros de capital social), no las tendremos en cuenta.

Tened en cuanta mientras leéis esto, que yo no soy ni jurista ni asesor, y que la leyes cambian con el espacio tanto como con el tiempo. Una ley vasca del año 2006 no tiene porque ser la misma ni en cantidades ni en obligaciones que una canaría del 2003, ni siquiera que una Valenciana del 2005. Ni un euro cuesta lo mismo en Bilbao que en Cáceres. Tenedlo en cuenta.

La primera de las opciones que tenemos disponible es la de actuar en nuestro propio nombre, como persona, sin ser autónomo, ni empresa, ni nada. Esto tiene varios problemas, a parte del obvio de la imagen, y es que no podremos facturar más de 18.000 Euros sólo podemos hacerlo para cuestiones excepcionales, no como fuente principal de ingresos, y para eso no nos metemos en este lío, ¿no?.

La segunda opción sería hacernos autónomos. Esto tiene un coste de (aproximadamente) 300 euros, entre la cuota de autónomo y una asesoría decente para que nos lleve las cuenta. Esto último no es obligatorio, pero creedme, 100% recomendable. Por el equivalente a dos horas de tu trabajo te quitarán muchas preocupaciones.

Seguimos siendo una persona, por lo que nada nos controla las entradas y salidas de dinero de nuestra cuenta, tenemos libertad. En todo caso, como recomendación, decir que en el tercer mundo, lo primero que enseñan a los emprendedores es a separar el dinero del negocio del personal, de modo que mejor que tengas dos cuentas separadas, y te saques algo parecido a un sueldo cada mes.

Ser autónomo tiene dos problemas principalmente:


  • imagen: queda claro que eres tú sólo. En función de tus clientes, puede no ser aceptable. Además los autónomos tiene más difícil (o imposible) el acceso a determinadas instituciones y ayudas.

  • responsabilidad: en caso de que algo vaya mal, el autónomo responde con su patrimonio. Así de duro :-D.



De modo que pasaremos a considerar la tercera opción: Sociedad Limitada. Para convertirnos en sociedad limitada lo primero que tendremos que hacer es buscar un nombre y solicitarlo en el registro (en bloques de tres). Algo que parece tan tonto no siempre lo es. Linking Paths me salió a la primera (como pa’ no ;-) ), pero conozco casos en los que hicieron falta tres intentos, para acabar con un nombre si gran significado. Una vez hecho esto, redactaremos unos estatutos y listos, a firmar. A todo este proceso nos ayudará nuestra asesoría, de forma que no tendremos que hacer demasiado.

Para constituir la S.L. tendremos que poner un capital social inicial, que tiene que ser de al menos 3006 euros. De estos 3000 euros (o de la cantidad que sea)aproximadamente una tercera parte se irá entre el registro mercantil, el notario y la asesoría, el resto lo podemos usar como queramos (ejem, ejem). No hace falta que aportemos la cantidad total en dinero contante y sonante, podemos aportar algunos bienes (por ejemplo un ordenador o una mesa) siempre que presentemos su factura y sepamos que se calcule su depreciación.

Hay que tener en cuenta que sí no tenemos socios (aunque sea nuestra madre con el 1%), en lugar de ser S.L. seremos S.L.U. (Sociedad Limitada Unipersonal). Esto es más bien una cuestión de imagen, porque por ejemplo Azucarera Española es una S.L.U. y nadie se imagina a un hombre sólo en la empresa. En todo caso, todos los socios que trabajen en ella con más de un 30% de la empresa tienen la obligación de ser autónomos aunque cobren nómina, y tendrán que pagar los 200 Euros de la cuota de autónomos (o lo pagará la empresa en su nombre). También el coste de la asesoría será mayor (el doble que como autónomo, aproximadamente).

Al ser una S.L., nuestras obligaciones legales son algo mayores. No podemos andar sacando dinero de la caja y tendremos que entregar más información sobre nuestra actividad al registro y demás instituciones públicas. Como parte buena, nuestra responsabilidad sobre los problemas de la empresa es limitada (de ahí la L de S.L.): sólo nos haremos cargo del dinero puesto como capital social de la empresa. Sólo hay una salvedad: el administrador. El administrador es uno o varios socios que tienen poderes y mayores responsabilidades sobre la empresa, es decir, tienen la capacidad de actuar en el nombre de la empresa (firmar papeles, etc.). La limitación de responsabilidad sobre lo que pasa en la empresa no se les aplica en caso de que se demuestre que han actuado de mala fe. Esto es importante, porque esta responsabilidad ¡debería pagarse!.

Y con esto tenemos resumidas nuestras opciones. Dependerá sobre todo de nuestro producto o servicio inclinarnos por una u otra.

Comentarios y puntualizaciones son siempre bienvenidos.

Dependencias molestas en Maven

Uno de las grandes ventajas de Maven puede ser uno de sus grandes problemas: las dependencias transitivas. Esto es, si en maven yo digo que necesito, digamos el API de MyFaces, él solito se encargará de bajar todas las librerías que necesita MyFaces. Esto que es un gran avance, puede ser molesto si la persona que ha preparado MyFaces (o cualquier otro proyecto, hablo de MyFaces sólo como ejemplo) no ha tenido en cuenta que dependencias son reales y cuales no.

Dentro de Maven se pueden declarar dependencias de cinco tipos, tal y como se explica en la propia documentación (aquí concretamente). El problema viene si usamos una librería cuyo autor ha declarado todas las dependencias como compile, normalmente por comodidad. ¿Qué podría ocurrir por ejemplo en el caso de Hibernate?. Para compilar el proyecto, necesitaremos un montón de librerías que luego no nos harán falta en tiempo de ejecución, por ejemplo sólo nos hará falta una de sus implementaciones de pool de conexiones o de caché. Si el autor pusiera todas esas dependencias en modo compile nuestro proyecto incluiría TODOS esos jar. Demasiados.


Pero más aún. Supongamos que ese proyecto incluye un API desfasado, o que choca con otras versiones que tengamos, o con nuestro servidor de aplicaciones. Por ejemplo supongamos que un proyecto incluye una dependencia a un API de XML desfasado que impide que Tomcat vuelva a arrancar. Es sólo un suponer. ¿Como puedo eliminarlo sin perder la ayuda de las dependencias transitivas?.

Afortunadamente la gente que escribió Maven ya ha pensado en eso, y al declarar una dependencia podemos eliminar de nuestro proyecto una de estas dependencias transitivas. La forma de hacerlo sería la siguiente:

    
        myfaces
        myfaces-api

        1.1.0
        compile
        

            
                xml-apis
                xml-apis

            
        
    



Sencillo, ¿no?.

JavaConGanas.com

Hace ya muchos muchos meses, hablé por aquí de crear alguna forma de comunidad formativa online. Hablé con algunos amigos de la red, y poco después compramos javaconganas.com con la idea de implementar esa idea en él. Montamos snipsnap y listo, empezamos.


Lamentablemente he de reconocer que el resultado podía haber sido mejor. En realidad sigue siendo poco más que un embrión, pero todo se andará. La idea de anunciarlo ahora es la de ver si alguién más quiere participar, de la forma que sea, y tomar un poco de aire.

La idea de lo que ofrecer es sencilla:


  • el javapath. Que te ayude a comprender la relación entre algunas partes de java, darte indicaciones de por dónde seguir, etc.

  • un weblog para fomentar discusiones amistosas.

  • crear un podcast sobre java en castellano.



Eso de momento. Sigo valorando la idea que comenté en su día sobre cursos online, pero la verdad es que para eso si que necesitaré ayuda, para hacer algo que tenga sentido. De momento necesitaría que varios interesados en un curso se pusieran de acuerdo para arrancarlo.

¿Quedará esta en una de tantas ideas que dejo a medias con mi autodeclarado familiar?. Espero que no, pero como comentaba ayer prefiero hablarlo ahora antes de invertir más tiempo.

¡Qué mania tengo de meterme en follones!.

UPDATE: Para particpar, enviame un mail (alberto.molpeceres ARROBA gmail PUNTO com) contándome en que estarías interesado, en que puedes/quieres colaborar, que querrías conseguir de un sitio así, etc. y algo sobre tí y tu trayectoria hasta ahora.

¿Qué se ofrece?: Participar en un grupo de gente interesante y muchas posibilidades de aprender.

mi tessssssssooooooro, o “mi bien será mi perdición”

O al menos así se comporta demasiada gente del mundo del software, como Gollum con su anillo. Me pregunto por qué. Sobre todo a determinados niveles. Puede haber gente que está inventando la solución a los problemas del mundo, pero la mayoría me temo que no estamos en eso.


Escribía el otro día en Vivir del software sobre la posibilidad de establecer lo que llamaba alianzas creativas, que no es más que intentar jugar al yo gano, tu ganas. Y es que no es comprensible que nosotros los mortáles que sobrevivimos con esto de la informática pensemos en que somos los primeros en tener una idea deteminada. ¿Con 1.000 millones de personas conectadas a la red?. ¿Lo puede creer alguien de verdad?.


Pues me temo que sí. Demasiados. Y sólo el 0,0001 de ellos esta haciendo algo realmente innovador. JNJo deberíamos tener miedo de expresar nuestras ideas, al menos en gran parte, de intercambiar opiniones, de ponerlas a punto, de mejorarlas. No pensar así significa no conocer mucho de que va esto del software.

Siempre se ha dicho que quién da primero da dos veces, pero volviendo a lo anterior, teniendo en cuenta que no vas a dar primero, ¿qué tiene de malo compartir tus ideas?. Lo importante no es lo que haces, es cómo lo haces. Lo más que puedes conseguir a día de hoy son tres meses de ventaja si te guardas tus ideas (y si es que son tan geniales). Después, se acabo, no tienes ventaja si alguien quiere “clonarte” (hasta al genio de la página del millón, o al de la casa por el clip).


Sin embargo, si pones a prueba tus ideas, si las contrastas y las mejoras, puedes conseguir grandes ventajas:


  1. No perder el tiempo. Siempre creemos que tenemos buenas ideas, lástima que el resto del mundo no lo vea así.

  2. Lamentablemente es probable que no lo sepas todo, quizás alguien te pueda ayudar a mejorar tu idea.

  3. Velocidad. Es difícil tener socios (que me lo digan a mi), pero quizás encuentras alguien con la que colaborar y salir antes, o mejor, o más bonito.



Con esto tampoco quiero decir que vayas regalando ideas de un millón de dólares, pero tampoco te encierres en ti mismo pensando que si lo cuentas te van a copiar. Hacen falta muchas cosas para eso.

¿Cuando tienen sentido en internet clientes más pesados que el HTML?

Aunque por distintas razones sólo se puede descargar en forma de EXE de Windows, ProjectioPM esta desarrollado en Java, y es ejecutable vía Java Web Start, nuestra primera intención. En realidad, su editor (el que permite crear las preguntas, más noticias en breve), también es una aplicación Java Web Start. Tengo que reconocer que desde hace años estoy enamorado de algo tan simple y tan elegante como Java Web Start, que permite instalar y actualizar aplicaciones de escritorio a través de la red sin (demasiados) problemas.


Esto me ha hecho considerar la opción de que la interface de Projectio Office (del que ya he hablado por aquí) tenga una aplicación web mínima, pero que el grueso de la misma fuera una aplicación de escritorio.


¿Razones?.


  • Cada vez soy más vago y perezoso como para pelearme con el HTML.

  • Tengo la sensación de que aún hay muchos usuarios no informáticos de que siguen sin tener claro la diferencia entre aplicación web y aplicación de escritorio. Y que incluso no les gusta la parte web.

  • Incluso para los informáticos… ¿abrir una página web?. ¿Y por qué no integrarlo en el IDE (opcionalmente, claro)?.



Inconvenientes también los hay, aunque de momento me los callo, simplemente me gustaría recoger el feedback sobre esta idea. ¿Comentarios?.

Como hacer que te conozcan: primer paso

Dejaremos para otro día las motivaciones para crear nuestra empresa, o las formas de llegar a nuestra idea féliz. Atendiendo a la petición del gran Alberto Gimeno, hablaremos un poco de marketing.

Ok. Tengo o voy a tener mi producto en breve, me interesa que ya se empiece a conocer mi producto. ¿Qué es lo primero que tengo que hacer?. ¿Mi web?. ¿Abrir un blog?. ¿Anunciarme en Adwords?. ¿Contratar una página en El País?. No. Lo primero que tenemos que hacer es tener claro quién queremos que nos conozca, definir nuestro público objetivo.


  • ¿Quién va comprar nuestro producto?.

  • ¿Quién va a usar nuestro producto?.

  • ¿Quién decide si se compra o no nuestro producto?.

  • ¿Cómo puedo llegar a cada uno de ellos de la mejor forma?.

  • ¿Qué les digo a cada uno de ellos?.

  • ¿Qué quiero que hagan cada uno de ellos al recibir mi mensaje?.



Efectivamente, lo primero que tenemos que hacer es pensar un poco sobre el mercado al que va destinado nuestro producto. No es lo mismo tener un generador de código que una herramienta de posicionamiento en buscadores. No es lo mismo vender asesoría tecnológica que un simulador de exámenes.

Pongamos el caso de MPO de Ribe Software. Nuestra primera idea podría ser la pensar que enfocar el producto a los desarrolladores, publicando noticias en javaHispano es lo más correcto. Ummm… ¿seguro?. Pensemos un poco más, sólo un poco más.

(NOTA: Alberto, no te voy a hacer el plan de marketing, son tres ideas lanzadas, te tocar darle un par de vueltas).


  • ¿Quién va comprar nuestro producto?: Empresas de desarrollo de software. Es posible que alguna startup unipersonal, pero muchas veces este tipo de personas tiene su propio camino. ¿Qué empresas?. A primera vista diría que empresas más bien pequeñas (< 30 empleados), puesto que a partir de ahí tienen recursos para muchas más cosas.

  • ¿Quién va a usar nuestro producto?. Los desarrolladores. Esta es la más fácil normalmente :-D.

  • ¿Quién decide si se compra o no nuestro producto?. Pues me temo que normalmente los desarroladores no :-(. En ese tipo de empresas será el jefe de desarrollo, aunque programe de vez en cuando y sea asesorado por los propios desarrolladores.

  • ¿Cómo puedo llegar a cada uno de ellos de la mejor forma? y ¿qué les digo a cada uno de ellos?. Esta es la parte difícil. Puedo intentar llegar a quién decide de forma directa o indirecta (¿hacer que los desarroladores le hablen de mí?). A través de un anuncio en una revista, un weblog interesante o artículos con ejemplos de uso de mi software. ¿Qué hacer?. Como dijimos en un post anterior, nuestro tiempo y dinero es limitado, de modo que tendremos que definir nuestro plan y ajustarnos a él para hacerlo bien y no dar bandazos.

  • ¿Qué quiero que hagan cada uno de ellos al recibir mi mensaje?. No hay que ser demasiado ambicioso, no quieres que te compren, esto es marketing, no comercial. Quieres que te conozcan a ti y (más aún) tu producto. Quieres que lo conozcan y si es posible que lo prueben.



Finalmente, una vez que te pones en marcha, decide como vas a medir el impacto de tu plan y mide el resultados. Descargas de demos, visitas en la web, lecturas de un artículo, email o llamadas. Cualquiera de estas opciones y muchas otras más valen. Pero teniendo en cuenta de nuevo la limitación de recursos, lo mejor que puedes hacer es dedicarte a lo que realmente merece la pena.

Suficiente por hoy.

Presentación

Estoy realizando un master, un executive MBA por la UPC concretamente. Como trabajo final del mismo tengo que realizar una tesina, sobre un tema de mi elección, y el que escogido es: “Lanzamiento de una micro ISV en España”. No podía escribir de otra cosa :-D.

Para realizarlo, a parte de mi propia experiencia, me gustaría contar con las ideas y comentarios de mucha gente, algunos ya conozco, otros aún no. Por eso me he decidido a crear este weblog, como punto en el que compartir ideas y opiniones, en el que todo aquel metido en esta aventura pueda participar (incluso como autor si lo quiere).

Ya que es el contenido que tendrá mi tesina, la temática debería incluir todo lo referente a la creación de una startup, desde temas de organización, a temas de marketing o legales. Mi tesina se centrará en España, pero entiendo que eso sólo es aplicable (al menos de forma más fundamental) a los aspectos legales.

Veremos que sale.

Maven 2 y DBMT

Para otro proyecto, me he visto en la necesidad de retomar uno de esos pequeños proyectos que tengo por ahí, medio abandonado, pero que siempre acaba reapareciendo: DBMT, una pequeña herramienta para migrar bases de datos (en un principio), pero que gracias al trabajo de Alexey Gaidukov también soporta otras fuentes o destinos de datos como CSV, DBF o TXT.

Bien, puesto a retomarlo, mínimamente en serio, algunos cambios en el código, limpieza de los scripts de ant… y la web… en lugar de un sistema propio en XML…. ¿por qué no probar Maven 2?. Mis escarceos con él son de hace un año y más bien cortos. Ok, ¿por qué no migrar el proyecto entero a maven 2?. Ok. 4 horas me ha costado. Lo que más ha sido migrar la web. El hacer tablas está muy bien y sencillo con APT (un formato estilo wiki), aunque es un poco coñazo. Aquí mis impresiones sobre el proceso:


- Me sigue gustando más Ant. Tengo más control sobre ello. Sé que se puede llamar a ant, se puede extender, y muchas más cosas. Pero no me imagino haciendo con Maven el proceso que tengo en otros proyectos para: compilar, enhancer jdo, empaquetar, ofuscar, firmar, generar JNLP y hacer deploy. Hay cosas que se harían de forma más sencilla, pero me da una pereza probar todo eso…. .

- El tema de las dependencias promete, pero aún es un poc lioso para mí, quizás porque la documentación, para mi gusto, deja aún que desear. A maven no le gusta tener los jar en el CVS/SVN (sobre esto aún tengo mis dudas, ver post anterior, porque hace que mi repositorio no sea completo), por eso tiene “repositorios” de dónde bajarse las librerías. Aunque “más o menos” se puede usar al repositorio central de maven, la verdad es que a nada que uses una librería rara o propia, mejor que te crees tu propio repositorio, más control.


- Me sigue sin gustar que todas las web sean “tan iguales”. Aunque bueno, teniendo en cuenta lo vago que soy para algunas cosas, es un mal menor.

En fin…. aunque para algunas cosas promete, veo poco probable que cambie muchos proyectos a Maven a día de hoy, no creo que me ofrezca nada que me merezca la pena. Si puede que me tome más en serio el tema de las dependencias, pero dentro de Ant, con soluciones como esta.



PS: si alguien hace un logo para DBMT se lo agradeceré :-D.



Close
E-mail It