Ahorra código y subobjetos con la función de campo isModified()

Nota: este artículo está extraído del blog de Jesús Arboleya, Evangelista y consultor de Velneo en el departamento de éxito de clientes.

Tradicionalmente en Velneo hemos usado el comando ¿Ha cambiado el campo? para controlar cuando el valor de un campo había sido modificado.

Ahorrando código y subobjetos

Gracias al uso de la función de campo isModified() podemos detectar si el valor de un campo ha cambiado de forma directa en la fórmula ahorrándonos dos cosas:

  • Una línea con el comando ¿Ha cambiado el campo?
  • Una variable local booleana

Ejemplos comparativos

Vemos a continuación la diferencia entre hacerlo con el comando y con la función de campo.

Con el comando

Este código muestra las líneas donde se controla si ha cambiado el campo dejando en una variable local booleana el valor.

Estas son las variables que es necesario declarar para usar con los comandos de instrucción del código anterior.

Con la función de campo

Este es el código que se necesita para hacer lo mismo con la función de campo. El ahorro de código y subobjetos es muy notable.

Para escribir funciones de campos en el editor de la fórmula, simplemente tenemos que escribir dos puntos “:” después del identificador del campo y se abrirá una lista de selección, donde si comenzamos a escribir “ism” ya se mostrará la función isModified().

¿Merece la pena hacer Refactoring?

En principio el código antiguo no es necesario repasarlo, pero sí utilizarlo en el nuevo código.

Este artículo Ahorra código y subobjetos con la función de campo isModified() es original de Velneo.

Tagged , , , , | Comments Off on Ahorra código y subobjetos con la función de campo isModified()

30 consejos para tener éxito como desarrollador autónomo (II)

La semana pasada publicamos la primera entrega de 30 consejos para tener éxito como desarrollador autónomo. Repasamos las primeras 14 recomendaciones para pasar de ser programador dentro de una empresa por cuenta ajena a ser un desarrollador autónomo. En esta entrada seguiremos con el resto.

Este artículo está pensado para aquellos que quieren iniciarse como desarrolladores autónomos o aquellos que tienen una pequeña empresa de programación con 2 ó 3 desarrolladores, y se dediquen especialmente al desarrollo de aplicaciones empresariales y software de gestión.

#15 Cuida a tu principal activo

Tú eres el principal activo de tu negocio. Si te quemas, o enfermas, o si tus conocimientos se quedan desfasados, tu empresa lo pasará mal. Apenas tienes vacaciones, las bajas por enfermedad no existen y tienes que cumplir los plazos sí o sí sin apoyo.

Como desarrollador tienes que mantenerte actualizado, pero invierte el tiempo en investigar y aprender de forma inteligente, y no solo en las cosas que puedan demandar tus clientes, sino también en aquellas que te gusten a ti.

De vez en cuando apaga el ordenador y sal a dar un paseo. Socializa con tus amigos, invierte en tiempo de calidad para estar con tu familia y seres queridos, haz lecturas no-técnicas y disfruta de ser humano.

Y lo más importante, cuando las cosas en la empresa se ponga difíciles, cógete un tiempo para recargar pilas y recuerda por qué te embarcaste en esta aventura. Compensa muchísimo el tiempo libre para poder coger de nuevo el foco y centrarte en el proyecto.

#16 No piques código hasta la quiebra

Una muy buena calidad en el código es vital para tener éxito como desarrollador independiente, pero solo programar es un empleo, no una empresa. Para estar seguro, siempre tienes que ser exigente y exhaustivo, con el fin de crear el mejor software que puedas. Pero asegúrate también de tener algo más que hacer en tu flujo de trabajo cuando termines de programar.

Al estar programando solo, es demasiado fácil caer en la trampa de focalizar solo en el trabajo que tienes delante. De hecho es mucho más efectivo -siendo realista- hacer una tarea a la vez que estar haciendo múltiples tareas (desarrollando, marketing, ventas, contratos, facturación, planificación, administración, etc…). Lo malo de esta historia es que para tener éxito como autónomo y empresario tu fuerte tiene que estar en justo eso, en hacer varias cosas a la vez y bien a lo largo del tiempo. Hacer el trabajo que vas a facturar paga los gastos, pero encontrar más clientes es lo que permite que el negocio se mantenga a flote.

#17 Nunca te olvides de que eres una marca

Igual no te das cuenta al empezar, pero incluso si estás trabajando como externo para un solo cliente, tienes una marca, y tu marca eres tú.

Recuerda: la marca es una promesa de calidad y consistencia, y aunque puede representar cualquier cosa que consideres fundamental como desarrollador, tiene que ser preciso y unívoco.

La forma en la que te presentas a ti mismo, tu trabajo, tu equipo, tu filosofía de programación es la base de tu marca, y debe estar reflejada en todas las facetas de tu empresa, desde tu página web hasta tu tarjeta de empresa o hasta como hablas de tu negocio con un conocido fuera del trabajo. Si no eres constante o hablas vagamente sobre lo que haces, tu empresa lo tendrá difícil.

Muy a menudo las empresas de desarrollo de autónomos definen a su negocio usando uso de una herramienta o una moda pasajera. ¿Prefieres contratar a “Java Pro” o a un “experto en aplicaciones empresariales”? Las marcas que se desarrollan en torno a una herramienta de moda pueden ser lucrativas al principio y temporalmente, pero rápidamente se convierten en estándares o básicos, perdiendo identidad, personalidad y exclusividad.

Cuanto más específico seas sobre lo que haces, por qué lo haces y lo que representas, más fácil será distinguir tu marca de otros, y en consecuencia más fácil será identificar y encontrar clientes potenciales. El hecho de fijar una marca clara e unívoca se traduce en mayores oportunidades a medio y largo plazo.

#18 No puedes contentar a todo el mundo

Como autónomo la satisfacción de los clientes es primordial, pero no puedes obsesionarte con intentar contentar a todo el mundo porque corres el riesgo de hundir el negocio. Hacerlo te obliga a exprimir a fondo todos tus recursos, en exceso, y al final no trabajas bien para nadie. Esto no quiere decir que no haya que volcarse con los clientes lo mejor que sepas, ni que no aceptes trabajos fuera de tu zona de confort. Pero presta atención a los límites de tus habilidades y recursos. Comprometerse más de la cuenta y aceptar proyectos que no puedas realizar con la calidad esperada por tus clientes puede rápidamente derrumbar tu empresa.

Por el contrario, tienes que ser muy estricto a la hora de registrar cuánto tiempo te toma cada tarea, para que seas capaz de saber cuánto trabajo puedes asumir en momentos de sobrecarga. Ten en cuenta que tienes que guardar tiempo para formarte, tienes una empresa que gestionar y tener el dominio técnico necesario para dar el servicio de calidad que quieres también te quita tiempo del trabajo para los clientes.

#19 Preocúpate de estar apuntando al nicho correcto

Las PYMES que buscan escapara del trabajo basado en procesos manuales pueden a priori ser un cliente ideal para tu pequeña empresa de software incipiente que busca despegar, ya que al final todas a¡las empresas buscan recoger los frutos de los procesos automatizados. Al mismo tiempo son las PYMES las empresas más desconfiadas hacia la tecnología y hacia los proveedores autónomos desconocidos, y quizás su tesorería no es la más boyante para poder costear tus servicios.

Dirigirse al nicho apropiado es más un arte que una ciencia, pero una máxima muy simplificada es buscar una combinación de clientes potenciales a los que les encaje tu producto, que lo puedan pagar y que no tengan resistencia ni miedo al cambio. ¿Fácil no? 😉

Encontrar a clientes potenciales a los que les cuadre tu producto es un proceso complejo y volátil donde se mezclan ambiciones, problemas, necesidades, destrezas, lagunas, beneficios y tiempos.

Lo más común es que no haya signos externos de los anteriores, así que tienes que hablar y tantear a muchísimas personas de varios sectores y organizaciones para averiguar si les encaja.

Y mientras estás en ello puedes evaluar la parte económica -si una empresa no puede pagar tus servicios, todo el proceso es un sinsentido.

Medir la capacidad de asumir el cambio y el no tener miedo a cambiar es algo que se percibe más con intuición que con otra cosa. ¿Los clientes potenciales del nicho de mercado elegido tienen el valor y pueden ver la luz si se convierten en tu socio tecnológico? Los sistemas de software cambian los procesos de negocio: para muchos sectores y muchas organizaciones, los cambios dan miedo. No pierdas el tiempo buscando oportunidades que al final no van a atreverse a dar el salto.

#20 ¿Quién defiende tu proyecto? ¡Identifícalo!

Todo proyecto de software que hagas para una empresa tendrá un “defensor” de tu producto dentro de la compañía. Normalmente es la persona que tiene autoridad para decidir las inversiones, y si ha apostado por ti defenderá tu proyecto para garantizar que tenga éxito. Es fundamental identificar a esta persona y establecer con ella una relación de confianza, cuando sea posible.

Muchas veces en las reuniones consultivas en casa del cliente, la persona que decide finalmente no está presente, o no se revela ni  menciona. Y lo que es peor, muchas veces los jefes de departamento afirman tener la autoridad y el presupuesto para llevar a cabo un proyecto, pero no siempre es verdad.

Siempre fíjate en quién financia el proyecto. En algunas empresas los responsables de departamento pueden gestionar el presupuesto a discreción, y en tal caso ellos son tu aliado dentro de la organización. En otras empresas, hay directivos de rango superior -y muchas veces hay más de uno- que son los que realmente han evaluado y aprobado tu proyecto sin tú saber precisamente quién ha sido. En estos casos esa persona es clave: se necesita su aprobación para futuras inversiones en proyectos.

No es inusual, especialmente en PYMES, que el gerente de la empresa tenga la apariencia de ser la figura decisoria, pero en realidad es el dueño o el financiero el que firma los presupuestos… No te dejes engañar y no confíes en que existe un compromiso más serio que el que tienes en realidad.

#21 Establece y conserva un flujo comercial

Vender desarrollos de software hechos a medida para nicho es un proceso lento y consultivo. Los clientes potenciales puede que sepan que tienen una necesidad, pero lo más probable es que no tengan mucha idea de cómo solucionar ese problema.

Al fin y al cabo, la decisión de adoptar una solución de software echo a medida puede variar el rumbo y los cimientos de una empresa completamente: cuanto más grande la empresa, más se tarda en la toma de decisiones y en seguir el nuevo rumbo.

Los cierres de presupuesto se eternizan, incluso si tienes muy buenas referencias y recomendaciones, y puedes estar meses esperando a que se firme un proyecto

Por estas razones, debes intentar tener clientes potenciales entrando en tu flujo de ventas. Siempre tienes que medir el tiempo invertido y los resultados obtenidos. Estos indicadores son cruciales a la hora tener un flujo comercial constante.

Imagínate que necesitas de media un cliente para que durante 6 meses puedas mantener la empresa a flote, y que averiguas que de cada 600 potenciales clientes, cierras 1 de media. En este ejemplo simplista, si entran menos de 100 clientes potenciales en tu flujo comercial al mes ya sabes que te va a costar mucho poder financiarte.

En el mundo real, los números son más complicados, pero la estructura de tu embudo de ventas es siempre la misma: entra un cliente potencial, tiempo transcurrido, cierre de la venta. Hay que medir los tiempos de cualificación de clientes, los tiempos de cierre de presupuestos y ventas, la facturación media por proyecto vendido, y los porcentajes de cierre de presupuestos de venta.

Aprende a usar esos números para proyectar ingresos futuros del actual embudo de venta y fíjate más en las tendencias que en un resultado particularmente bueno o malo en un mes.

#22 Diversifica tu base de clientes, minimiza riesgos

La mayoría de los desarrolladores de software independientes saltan a la aventura de tener su propia empresa cuando tienen la oportunidad de hacer un proyecto importante para una empresa. Esto puede ser bueno para empezar, pero hay que tener cuidado porque no puedes sostener tu negocio con un solo cliente. Si ese cliente te deja, tú te hundes.

Otro inconveniente de tener un solo cliente es que su trato contigo será como la de un trabajador “externo”, no como la de un “socio tecnológico consultor de valor”. Esto se traduce en que cada vez te van a exigir más al mismo precio, como hacen todas las empresas con sus empleados, pero sin los derechos de los empleados contratados por cuenta de ajena.

Es mejor tener tres clientes medianos que uno grande. Y lo óptimo es tener 20 pequeños, ya que no te van a dejar tirado los 20 a la ves.  Recuerda la máxima: tener un cliente es como tener un mal puesto de trabajo, tener varios clientes, y diferentes fuentes ingresos, es tener una buena empresa.

#23 Piensa en impuestos y costes fijos

Tener problemas con Hacienda por no tener una buena estrategia fiscal es algo que puede ahogar tu negocio. No se trata solo de contratar una gestoría para que te “muevan los papeles” o hacer tu los trámites online para estar al día con tus impuestos, se trata más bien de estar bien informado y planificar una estrategia fiscal. Si no tienes recursos al principio para pagar el servicio de un asesor, puedes empezar tu mismo, pero dedica tus primeros ingresos a buscar la ayuda de un profesional que te asesore en estos asuntos.

Te puede parecer una inversión innecesaria al principio, pero a medio plazo te darás cuenta de todo el dinero que te ayuda a retener. No hablamos en ningún caso de defraudar, pero si de estudiar para cada caso cuál es el mejor plan según tus circunstancias profesionales y personales. Una mala estrategia fiscal te puede llevar a la ruina por falta de previsión y conocimiento.

Lo mismo se puede decir sobre los costes fijos, aunque estos son más previsibles y no dan lugar a muchas sorpresas.

# 24 Gestiona bien los cobros y procura tener liquidez

La mayoría de las pequeñas empresas de desarrollo se gestionan de forma ligera en términos de liquidez. Lo normal es no tener una tesorería muy boyante, sobre todo al principio de la actividad. La gestión de los cobros es otra piedra angular de cualquier empresa y es una tarea que requiere dedicarle más tiempo a medida que crecen el número de clientes para los que programas aplicaciones.

En el mundo real tenemos que tener cierta flexibilidad con los clientes, no todos siempre pagan en plazo y es importante saber empatizar, siempre y cuando sean situaciones puntuales ya que ayuda a tu relación con él. Si ves que un cliente entra en un comportamiento repetitivo en el que siempre se retrasa en los pagos de forma injustificada, o por problemas administrativos de gestión de facturas, retraso en la ejecución de las transferencias, etc… El cliente puede que esté pasando por problemas internos de los que no te está informando.

Puede que sea una situación temporal, pero si se prolonga mucho en el tiempo, puede que te quedes sin liquidez para cubrir tus costes fijos. Haz todo lo que puedas por cobrar a tiempo. Estudia el proceso de pagos de cada cliente, quién participa, quién está implicado, cuánto tiempo le toma, y ponte en alerta si el cliente empieza a fallar en el proceso.

#25 Contrata solo cuando tengas suficientes proyectos para pagar nóminas

Una gran preocupación a la hora de hacerse autónomo es determinar en qué momento ya no puedes seguir solo. Muchos optan por disponer de menos liquidez con tal de tener a alguien que les ayude. Pero es fácil sobrestimar el alcance o la certeza de nuevos proyectos y contratar a personas con ganas y talento, incluso a un coste razonable, Al fin ya al cabo, la única forma de crecer es creciendo, ¿no?

El problema es que esto incrementa tus costes fijos desde el día 1 sin necesariamente incrementar tu facturación. Implica cambios en tus presupuesto y en tu forma de organizar el tiempo. El hecho de cambiar los procesos de trabajo para acomodar a una nueva persona, formarla, gestionarla, etc… Todo esto te puede descolocar y lastrar tu capacidad de cerrar ventas y hacer los proyectos con la calidad esperada. Contrata con cuidado.

#26 Sal a la calle y habla con potenciales clientes

La mayoría de los programadores que se hacen autónomos lo hacen para solucionar problemas, crear aplicaciones, y dar buenos resultados. Quizás no disfruten de las tareas relacionadas con Marketing y Comercial, pero estas tareas no se pueden dejar de lado, y no te recomiendo que las subcontrates. Al menos no las fundamentales.

No existen los atajos en el proceso de ventas, no si quieres montar un flujo más o menos fiable. Puede que te salga alguna buena venta por suerte, pero lo mejor es apostar por un método de venta constante, fijo, fiable y que puedas ir ajustando. Y lo más importante, que entiendas al 100%. Evalúa cada táctica y herramienta de marketing y ventas con el mismo ojo crítico que usarías a la hora de decidir qué nuevo lenguaje de programación o entorno de desarrollo adoptar.

Haz pruebas y compara, analiza los flujos, busca por dónde te entran los clientes mejor y apuesta por un método, dale tiempo y no caigas en la tentación de hacer giros ni cambios bruscos. Incluso los métodos de ventas más probados en el tiempo necesitan ajustarse a tu negocio para funcionar. Debes fijar expectativas realistas y plazos asequibles, y date tiempo para entender bien los sistemas. Si fueras dando saltos por cada nueva tendencia de programación cada mes, nunca terminarías de entender ninguna y estarías perdiendo el tiempo. Lo mismo se puede decir de las tendencias y herramientas de ventas y marketing. Para decirlo en otras palabras, no hay forma de escapar de el proceso de aprendizaje en ventas y marketing, tiene una curva de aprendizaje y requiere mucho esfuerzo.

Una empresa que no vende no es una empresa, y vender no es nada fácil. Lo mejor es ir aprendiendo por el camino, habla con clientes potenciales y usa esa experiencia para ajustar los procesos a mejor.

#27 Documenta, afina y automatiza los procesos

Todo lo que suena a procesos y documentación suena a organizaciones elefantiásicas del jurásico, y son de esas cosas que te empujan a dejar una empresa grande por la lentitud con lo que se mueve todo.

No te confundas, una empresa pequeña se debe hacer diferencial basándose en ello. Si lo piensas, seguro que ya tienes procesos que sigues, que repites y que llevas años afinando. Y si ya tienes años de experiencia probablemente se los hayas enseñado a otros.

Hazte un favor, documéntalos, contrástalos con otros, mejóralos y automatízalos cuando sea posible. La automatización es tu pan de cada día. Cuando vendes un proyecto, ensalzas las ventajas de la automatización todo el rato, ¿no? ¿Y tú a nivel interno? ¿Tus procesos son manuales o directamente no existen?

No seguir procedimientos hace que los resultados del trabajo sean impredecibles, y lo que es peor, te hace perder el tiempo, y para un empresario, su tiempo es el recurso finito más crítico.

Hacer cosas de forma manual está bien al principio, pero si una tarea se vuelve muy tediosa y repetitiva, automatízala ya que ayuda a reducir fricciones a lo largo de todos los demás procedimientos. Analiza dónde pierdes el tiempo haciendo tareas improductivas, y automatízalas. El concepto de “Automatización” debes verlo en sentido amplio, desde sistemas de software automático que hacen cosas por ti mientras duermes o estás en tu tiempo libre, hasta asistentes virtuales, asistentes personales, servicios subcontratados, etc…

#28 ¿Cómo vas a dar soporte técnico?

Prestar un mal servicio técnico es una de las razones principales por las que un cliente se te puede ir a la competencia. Cuanto menos soporte tengas que dar, mejor, en un mundo de color de rosas… Pero si tienes muy buena reputación por dar un soporte excelente, eres oro puro con piernas, y no solo porque te permite mantener una buena relación con el cliente, sino porque tus clientes se convierten en tus evangelistas cuando siente que les solucionas los problemas con rapidez y sencillez.

Esto no quiere decir que tengas que privarte de dormir para solucionar problemas por la noche (como norma :)). Significa que tienes que educar a tus clientes para que puedan entender cada aspecto de tu aplicación, enseñándoles como resolver problemas y hacer tareas por sí mismos, y también formarles para que tengan la sensación de que tienen toda la información que necesitan y confíen en ti y en tu producto, reafirmándoles que su decisión de estar contigo es lo mejor para su empresa.

Tú no haces software para un cliente, lo que creas es su futuro. Quizás tú no tengas que vivir en su futuro mucho tiempo, pero ellos van a vivir ahí para siempre. Apoya su visión y sus decisión, dales refuerzo y garantías. No existe tal cosa como “eso no es mi problema”. La prevención es clave, los clientes no quieren hablar contigo por temas de soporte.

#29 Aprende a delegar de forma efectiva

Cuando emprendes en solitario, cualquier decisión que tengas que tomar es importante, y dado que est tu empresa, te toca a ti tomarlas todas. A medida que crezca tu empresa, las decisiones que tienes que tomar se van amontonando: ¿qué proyectos emprender? ¿cómo gestionar la sobrecarga de trabajo? ¿dónde conseguir nuevos prospectos y clientes? Ten mucho cuidado. Puedes verte envuelto en un cuello de botella que puede arruinarte.

Con directrices claras, responsabilidades bien asignadas, y procedimientos funcionales, la delegación puede convertirse en tu herramienta más valiosa, incluso si eres de esos perfiles obsesivos que necesitan tener absolutamente todo bajo control.

#30 Apuesta por herramientas rentables y especializadas

Si eres un desarrollador autónomo o si tienes una pequeña empresa de desarrollo con 2 ó 3 desarrolladores, lo más normal es que tus cliente sean PYMES que están buscando modernizar o mejorar procesos dentro de la empresa mediante el uso de aplicaciones empresariales, páginas web, soluciones de movilidad, cloud, etc…

Una buena herramienta no hace un buen programador. Como dice mi compañero Jesús Arboleya: “un buen programa nace del trabajo que realizan los buenos desarrolladores no de que el lenguaje o herramienta utilizada sean buenas, ya que en realidad no existen buenas o malas herramientas sino malas selecciones o usos de herramientas de forma inadecuada”. 

Si vas a apostar por hacer aplicaciones empresariales, lo mejor es que elijas una herramienta especializada para ello, una herramienta que tenga en cuenta la problemática de este tipo de desarrollos, la fiabilidad y la seguridad de la base de datos, que aporte características propias del ámbito de la empresa (cloud, multiplataforma, fácil refactorización y mantenimiento, etc…).

Eligiendo la herramienta adecuada para cada proyecto además ganas en rentabilidad y tienes más tiempo para otras cosas.

Citando de nuevo a mi compañero Arboleya: ” todos los que nos dedicamos al desarrollo de software sabemos desde el primer día que el elemento más importante en nuestro trabajo es el tiempo. El tiempo no solo es el más importante, además también es limitado, no se puede ampliar, por lo que lo mejor que podemos hacer es ser lo más productivos posible en nuestras horas de trabajo”.

Espero que todos estos consejos te hayan resultado útiles. Están pensados para aquellos que quieren iniciarse como desarrolladores autónomos o aquellos que tienen una pequeña empresa de programación con 2 ó 3 desarrolladores, y se dediquen especialmente al desarrollo de aplicaciones empresariales y software de gestión.

Si quieres hacer cualquier otra recomendación, te invito a que lo hagas en la zona de comentarios. ¡Ánimo con tus proyectos!

Este artículo 30 consejos para tener éxito como desarrollador autónomo (II) es original de Velneo.

Tagged , , , , , , , | Comments Off on 30 consejos para tener éxito como desarrollador autónomo (II)

La Tabla estática en un Combo sin Origen

La Tabla estática es un objeto del proyecto de datos cuyos registros se pueden crear y editar en tiempo de diseño. En tiempo de ejecución solo podemos mostrar los registros de la Tabla estática sin posibilidad de filtrarlos (siempre se muestran todos) o modificarlos.

Seguramente alguna vez has tenido la necesidad de mostrar los Items de una Tabla estática en un formulario sin Origen o filtrar los registros de la Tabla estática de forma dinámica. En estos casos el API de Velneo viene en nuestra ayuda, veamos cómo hacerlo.

tabla estática

 

Para definir la tabla estática tenemos que crear registros o Items con 3 propiedades:

    • Identificador de un solo caracter alfanumérico que identifica de forma unívoca el registro
    • Nombre para mostrar en el Interface de usuario
    • Dibujo que se corresponde con un Objeto dibujo del proyecto para mostrar también en el interface de usuario

El uso más común de la Tabla estática consiste en enlazar un campo a dicha tabla mediante un enlace de Tipo estática. Lo que se guarda en el campo enlazada es el Identificador del Item seleccionado.

En tiempo de ejecución el usuario podrá desplegar un control Combobox en el formulario con todos los elementos de la Tabla estática y cambiar el Identificador guardado en el campo indicado en la propiedad Contenido.

Como vemos en la siguiente imagen tenemos un formulario de configuración con un Combobox CBO_LOGNIVEL mostrando los 5 Nombres de una Tabla estática con el Dibujo a la izquierda. 

Los Identificadores son los caracteres 1, 2 ,3 4 y 5.

Este formulario no tiene Origen de tabla y por lo tanto no podemos fijar la propiedad “Contenido” del Combobox a un campo de dicha tabla.

El valor del Identificador seleccionado en el Combobox se guardará en una variable global numérica G_APP_LOG_LEVEL.

En el POS_INI del formulario ejecutamos el manejador javascript LOGNIVEL_RELLENAR_JS que nos permite acceder a los Items de la Tabla estática y rellenar con ellos el Combobox. Como la propiedad Contenido del Combobox ya nos es operativa debemos gestionar la selección y lectura del Item, algo que ocurre de forma automática cuando el contenido es un campo.

// Formulario sin Origen
// Manejador de Evento JS - LOGNIVEL_RELLENAR_JS
// Rellena el Combobox con los Items de la tabla estática

var cAliasAPP = theApp.mainProjectInfo().alias()
var cAliasDAT = cAliasAPP.replace("app","dat")
var oCbo = theRoot.dataView().control("CBO_LOGNIVEL")
// Obtenemos el número de Items de la Tabla estática
var nNumNiv = theApp.staticTableItemCount(cAliasDAT + "/APP_LOG_LEVEL")

// Rellenamos el Combo desde la Tabla estática con Dibujo, Nombre e Identificador
if (nNumNiv > 0) {
        for (var i=0 ; i<nNumNiv ; i++) {
                oCbo.addItem(
                        theApp.staticTableItemImage(cAliasDAT + "/APP_LOG_LEVEL",i),
                        theApp.staticTableItemName(cAliasDAT + "/APP_LOG_LEVEL",i), 
                        parseInt(theApp.staticTableItemId(cAliasDAT + "/APP_LOG_LEVEL",i)))
        }
}

// Establecemos el Item seleccionado inicialmente desde la variable Global
var nNivel = theApp.globalVarToInt(cAliasDAT + "/G_APP_LOG_LEVEL")
var nIndex = oCbo.findData(nNivel)
if (nIndex > -1) {
        oCbo.setCurrentIndex(nIndex)
}

Cuando el usuario seleccione un nuevo Item del Combo tenemos que guardar el Identificador seleccionado en la variable global G_APP_LOG_LEVEL.

Desde el evento Item: Cambio de seleccionado del Combobox ejecutamos el manejador javascript LOGNIVEL_CAMBIO_JS

// Formulario sin Origen
// Manejador de Evento JS - LOGNIVEL_CAMBIO_JS

var cAliasAPP = theApp.mainProjectInfo().alias()
var cAliasDAT = cAliasAPP.replace("app","dat")
var oCbo = theRoot.dataView().control("CBO_LOGNIVEL")

// Obtenemos el Identificador del Item seleccionado y lo guardamos en la variable global
var nNivel = oCbo.itemData(oCbo.currentIndex)
theApp.setGlobalVar(cAliasDAT + "/APP_LOG_LEVEL", nNivel)

Y esto es todo, el API ha aportado a la programación del Combobox ese grado dinámico que no tenemos en Velneo nativo. Sin embargo perdemos la potencia de la refactorización por lo que tendremos que ser muy cuidadosos con el código.

Hagamos un componente de todo esto

Quizás quieras darle un poco de abstracción a la resolución de este ejercicio y te planteas el diseño de un Combobox personalizable. Un control Combobox que sirva para cualquier Tabla estática del proyecto y tenga los manejadores RELLENAR y CAMBIO incluidos en el componente.

El control Vista de Datos del formulario nos permite incrustar componentes del proyecto e interactuar con él mediante comandos de Velneo.

Veamos como crear un Combobox genérico para mostrar cualquier Tabla estática del proyecto en un formulario sin Origen.

Diseñamos un formulario FRM_SIS_COMBO_ESTATICA sin Origen con un Combobox CBO_ESTATICA y un Label para mostrar la variable local CID_ELEMENTO que guarda el identificador del Item seleccionado.

El formulario FRM_SIS_COMBO_ESTATICA va a ser nuestro componente que insertamos en un formulario sin Origen mediante una Vista de datos.

Este componente necesita 2 valores, el Alias del proyecto de datos CALIAS y el Identificativo de la Tabla estática CTABLA_ESTATICA.

Un manejador de evento javascript CBO_RELLENAR_JS es ejecutado desde el ON_SHOW del formulario. Rellenamos el Combobox en el evento On_Show porque es la única manera de asegurarnos que las variables locales CALIAS y CTABLA_ESTATICA han sido asignadas correctamente a la Vista de datos desde el evento POS_INI del formulario principal.

// Componente Combo de Tabla estática
// Manejador de Evento JS - CBO_RELLENAR_JS
// Rellena el Combobox con los Items de la tabla estática

// El componente necesita personalizar 2 valores: Alias del proyecto y Tabla estática
var cAliasDAT = theRoot.varToString("CALIAS")
var cTablaEstatica = theRoot.varToString("CTABLA_ESTATICA")
var oCbo = theRoot.dataView().control("CBO_ESTATICA")

// Solo rellenamos si el combo está vacío (recordad que estamos en el evento On_Show)
if (oCbo.count == 0) {
        // Rellenamos el Combo desde la Tabla estática
        var nNumNiv = theApp.staticTableItemCount(cAliasDAT + "/ " + cTablaEstatica)
        if (nNumNiv > 0) {
                for (var i=0 ; i<nNumNiv ; i++) {
                        oCbo.addItem(
                                theApp.staticTableItemImage(cAliasDAT + "/ " + cTablaEstatica,i),
                                theApp.staticTableItemName(cAliasDAT + "/ " + cTablaEstatica,i), 
                                theApp.staticTableItemId(cAliasDAT + "/ " + cTablaEstatica,i)
                        )
                }
        }
        // Establecemos el valor inicial
        var cID = theRoot.varToString("CID_ELEMENTO")
        var nIndex = oCbo.findData(cID)
        if (nIndex > -1) {
                oCbo.setCurrentIndex(nIndex)
        }
}

Desde el evento Item: Cambio de seleccionado del Combobox ejecutamos el manejador javascript CBO_CAMBIO_JS

// Componente Combo de Tabla estática
// Manejador de Evento JS - CBO_CAMBIO_JS
// Obtiene el ID seleccionado en el Combobox

var oCbo = theRoot.dataView().control("CBO_ESTATICA")

// Obtenemos el ID seleccionado
theRoot.setVar("CID_ELEMENTO", oCbo.itemData(oCbo.currentIndex))
theRoot.dataView().updateControls()

Con esto ya tenemos el componente terminado y listo para insertarlo como Vista de datos en cualquier formulario sin Origen.

En el manejador POS_INI del formulario principal establecemos la personalización del componente con los valores del Alias del proyecto de datos, nombre de la Tabla estática e Identificador inicialmente seleccionado.

Para recoger el Identificativo seleccionado en el Combobox podemos usar un manejador LOGNIVEL_CAMBIO que se dispare con el evento Item: Cambio de seleccionado del Combobox de la Vista de datos.

Rem (Manejador LOGNIVEL_CAMBIO para obtener el identificativo seleccionado)
Interfaz: Get variable local de vista de datos ( CTR_LOG_NIVEL, CID_ELEMENTO, CID_LOGNIVEL )
Modificar variable global ( APP_LOG_LEVEL@MiProyecto_dat, CID_LOGNIVEL, LOK )

Aquí vemos un ejemplo de la secuencia de eventos en Velneo. Cuando en el Combobox se cambia el elemento seleccionado, primero se dispara el evento Item: Cambio de seleccionado del componente incrustado en la Vista de datos y a continuación se dispara el evento del control Vista de datos definido en el formulario principal.

 

¿Qué pasa con los formularios con Origen si quiero insertar una Vista de datos sin Origen?

Pues también tiene solución, pero eso lo dejo como ejercicio y pones tu solución en los comentarios.

La entrada La Tabla estática en un Combo sin Origen aparece primero en AyudaVelneo.

Tagged , , , , , , , | Comments Off on La Tabla estática en un Combo sin Origen

5 consejos técnicos para desarrollar aplicaciones empresariales

En este artículo hacemos una recopilación de consejos técnicos para desarrollar aplicaciones empresariales de la mano de Jesús Arboleya, evangelista y consultor de Velneo en el departamento de éxito de clientes. Es el autor del curso Mi primera aplicación con Velneo, que puedes hacer gratis. Todos los conceptos que se comentan a continuación están explicados en la documentación de Velneo

#1 Pensar en listas es más natural

Hoy en día la gran mayoría de personas usamos a diario algún tipo de aplicación. Casi todas las aplicaciones gestionan información y disponen de interfaces adecuados para conseguir la mejor experiencia de usuario posible.

A nivel de interfaz como usuario solemos navegar por la información igual que lo hacemos en un mapa, que no deja de ser un tipo de información que nos hemos acostumbrado a visualizar de forma gráfica, es decir solemos comenzar con un mapa general sobre el que vamos haciendo zoom para acercarnos y ver con detalle solo aquello que realmente nos interesa.

Seguir leyendo

#2 Ficha y lista de registro

Este es un concepto que debemos tener claro al programar con Velneo ya que algunos de los comandos de instrucción de acceso a la base de datos están orientados a listas y no a fichas. Por este motivo podemos llegar a buscar un registro concreto usando un comando como cargar lista o un objeto como la búsqueda que devuelven listas.

Cuando resolvemos de forma precisa todas las partes de un índice de clave única de una tabla, Velneo nos devolverá ese registro, si estamos usando cargar lista o una búsqueda, por ejemplo, nos encontraremos que lo que obtenemos es una lista de un registro.

Seguir leyendo

#3 Formularios de alta, baja y modificación

Uno de los aspectos más cómodos de Velneo para los programadores es la sencillez con la que declaramos en un objeto de lista como una rejilla o grid cuáles serán los formularios de alta, baja y modificación.

Podemos no declarar ninguno, declararlos todos o declarar solo algunos según nuestras necesidades funcionales. Por ejemplo, no poner el formulario de alta si no queremos que el usuario pueda añadir registros, o no declarar el de baja si no queremos permitir al usuario eliminarlos.

La cuestión que en algunos casos nos podemos plantear es ¿Uso el mismo formulario para las tres operaciones o creo formularios diferentes? ¿Qué ventajas o inconvenientes tiene hacerlo de una u otra forma?

Seguir leyendo

# 4 Funciones y procesos

Funciones y procesos. Cada objeto tiene sus virtudes y también sus limitaciones. Conocerlas nos ayuda a decidir cuando usar uno u otro.

Seguir leyendo

# 5 Índice de los campos punteros a maestros

Algo que es habitual cuando diseñamos la estructura de la base de datos de nuestra aplicación es la creación de las relaciones entre tablas. Al crear dichas relaciones en las tablas se añaden campos de tipo de enlace maestro. Si este campo lo añadimos usando las herramientas del esquema, el asiente de creación de tablas o la opción de la toolbar del editor de tabla, además de crearse el campo puntero a maestro se crea su correspondiente índice de tipo acepta repetidas.

Sin embargo, en ocasiones creamos estos campos de forma manual o duplicando otro campo puntero a maestro. En estos caso no se crea el índice. Y ya te adelanto que no es conveniente eliminar estos índices que se crean automáticamente.

Seguir leyendo

Este artículo 5 consejos técnicos para desarrollar aplicaciones empresariales es original de Velneo.

Tagged , , , , , , , , | Comments Off on 5 consejos técnicos para desarrollar aplicaciones empresariales

29 consejos para tener éxito como desarrollador autónomo (I)

Ser desarrollador autónomo puede ser una forma de ganarse bien la vida y para muchos es un trabajo de ensueño. Sin embargo en muchas ocasiones los sueños se convierten en pesadillas, así que lo mejor es estar preparados.

El panorama laboral al que se enfrentan los desarrolladores de software hoy en día es todo un reto. Por un lado, las principales ventajas de trabajar como programador por cuenta ajena han ido menguado después de la crisis económica de 2007: la seguridad en el empleo, posibilidades de crecimiento y promoción profesional, el sueldo, los extras… Todo ha cambiado mucho desde entonces. Y por otro lado, sigue creciendo la demanda de programadores cualificados. Esto nos conduce a que cada vez más desarrolladores opten por establecerse como trabajadores autónomos.

No obstante, antes de lanzarse a la piscina y abandonar el cubículo, te recomendamos que leas con detenimiento estos 29 consejos para tener éxito como desarrollador autónomo independiente, extraídos de las experiencias de muchos de mis compañeros y colegas autónomos de la programación.

En este artículo señalamos los retos de ponerse a trabajar como desarrollador por cuenta propia, desde el punto de vista de una persona que hace la transición de trabajar por cuenta ajena a tener su propio negocio. Repasaremos aspectos que van desde los contratos, el marketing, destrezas empresariales, organización, clientes y demás temas importantes para desarrolladores que quieran convertirse en autónomos y tener la posibilidad de algún día triunfar.

Ser tu propio jefe puede ser un sueño, fijar tus propios horarios y trabajar solo en aquellos proyectos que realmente te gustan, además de tener la posibilidad de hacerse con una buena cuenta de ahorros. Sin embargo, debes estar preparado para afrontar la cruda realidad. Nadie te garantiza que vas a triunfar. Esa es la primera premisa de la que siempre debemos partir. Descubre cómo leyendo a continuación los consejos de otras personas que han pasado por lo mismo y han tenido éxito como desarrolladores independientes.

#1 Saber por qué te haces autónomo

Antes de comunicarle a tu empresa que te vas, que dimites, tienes que tener muy claro en tu mente por qué te quieres hacer autónomo como programador. ¿Quieres trabajar desde casa? ¿Quieres viajar más? ¿Quieres más dinero? ¿Trabajar menos horas? ¿Cuales son los motivos principales que te llevan a tomar esta decisión? Apúntalas en un papel o en un documento porque lo más probable es que tus objetivos no se cumplan en el corto plazo. Cuando las cosas se pongan difíciles, esa lista te recordará por qué estás haciendo lo que haces, y eso puede marcar la diferencia entre rendirse o tener éxito.

Sobre todo, tienes que poder entender y aceptar que “hacerse autónomo” implica “crear una empresa”, y gestionar una empresa no tiene nada que ver con tener un empleo. Y no te creas los mitos sobre los emprendedores.

#2 Ten todo planificado antes de dejar tu empleo

No puedes tener todos los flecos cerrados, es imposible. Pero sí se necesita planificación. Emprender tu propia empresa te puede dar más poder a la hora de decidir qué tipo de trabajo quieres hacer. Y en el mundo del software hay un sinfín de posibilidades y opciones: no tienes que hacer lo justo lo mismo que haces en tu empresa. La consultoría, el desarrollo, la distribución de productos de terceros, formación y otros servicios son todos caminos viables hacia la independencia laboral. Haz una lista lo más detallada posible de todo lo que podrías hacer, todo lo que te gustaría hacer, y todo lo que te pueda interesar aprender a hacer. Teniendo esa lista te ayudará a estar preparado para reconocer las oportunidades cuando surjan.

Igualmente, haz una lista de todas las formas que tienes para encontrar y atraer clientes. Cuando des el salto, tienes que estar preferiblemente en una posición en la que tengas que decir que no a algunos proyectos por falta de tiempo.

#3 Cerrar tu primer proyecto en firme es clave

El primer contrato puede ser el más difícil, o el más fácil. No es tan infrecuente el hecho de dimitir como empleado y luego ofrecerle servicios al ex-empleador, haciendo lo mismo que hacías antes, pero con un acuerdo económico distinto -pero esto no se da siempre.

Otra posibilidad es dirigirse a una empresa de recursos humanos y que te llamen para puestos que te gusten. Una vez establecido el contacto puedes ofrecer tus servicios como autónomo-proveedor en vez de como empleado. Muchas empresas están más que dispuestas a llegar a este tipo de acuerdos por un sinfín de razones.

#4 Diversifica tus habilidades empresariales

Tus responsabilidades lo incluirán todo, no solo programar. La independencia implica hacerlo todo solo. Tendrás que hacer todo el trabajo que tu equipo y tu organización ahora hacen por ti. Esto es aplicable tanto a destrezas técnicas como a habilidades de gestión -o aprendes a hacer todo por tu cuenta o contratas a alguien para que lo haga por ti.

Si contratas a alguien tendrás que tener capacidad de organización si es una asesoría, o capacidad para gestionar personas si es un empleado, incluso saber liderarlas. Las dotes de comunicación pueden ser más determinantes en tu cuenta de resultados que el talento programando.

#5 Ofrece calidad y eficiencia

Esto suena a típico tópico. Pero hay a que aplicarlo. Piensa en el trabajador medio en una oficina: se estima que es productivo de tres a seis horas al día, según varias fuentes. El resto del tiempo se va en reuniones, emails, cafés, interrupciones varias y otras distracciones improductivas.

Cuando tú eres la empresa, puedes optar por estar sentado todo el día frente al ordenador comiendo donuts y bebiendo café, y pasar el día navegando por Internet. Pero solo te pagan por hacer cosas, así que si haces las cosas de manera constante, eficiente y bien podrás sacar la empresa adelante y sobrevivir. El diario Marca o Facebook son mucho menos interesantes que cobrar facturas. Y para cobrar los clientes tienen que estar contentos. Darles resultados extraordinarios hace que estén muy contentos. A mayor felicidad de los clientes, mayores serán tus ingresos.

#6 Se constante con las cosas pequeñas

Muchas de las tareas no implican una facturación directa, pero si las dejas de lado pueden llevarte directamente al fracaso (ya no hablemos de los líos legales o tributarios). Contabilidad, tesorería, cobros, seguro de responsabilidad y demás son las típicas cosas que son fáciles de olvidar o posponer… ¡No lo hagas!

Hay otra serie de detalles que de repente son importantes. Tienes que tener un horario laboral estable y estándar, para poder recibir llamadas y contestar correos con inmediatez. Tienes que tener ropa de trabajo para todo tipo de contextos, como reuniones con clientes y pre-clientes.

El look informal y desenfadado que se lleva en las empresas de programación puede que no funcione siempre cuando tú eres el único que representa a la empresa. Las personas te van a juzgar por sus expectativas y prejuicios inherentes a su forma de ser y eso es algo que no puedes controlar. Lo que sí puedes hacer es ser consciente de ello y anticiparte. No se trata de siempre llevar traje, ni de siempre ir informal. Se trata de preparar cada encuentro con una ropa adecuada para cada contexto.

#7 Haz marketing todo el rato

Si solo pones el foco en el trabajo por el que recibes una facturación directa y dejas todo lo demás de lado, lo más probable es que te quedes sin negocio. Presta atención a nuevas oportunidades que puedan salir con tus clientes actuales, pide recomendaciones, haz prospecciones constantemente, e intenta mantener un flujo de trabajo constante y ocupado.

El Marketing y las ventas no son el demonio. Son muy necesarios. Incluso si lo único que tienes es tu CV subido a un portal de empleo o de freelance, eso también es Marketing y tú eres el producto. Incluso los mejores clientes pueden sufrir contratiempos y no puedes estar a merced de un solo cliente. Si un porcentaje muy importante de tus  ingresos vienen de una sola fuente, no tienes una empresa, tienes un empleo…

#8 Organízate

Ya que eres responsable de todo, te tienes que organizar. Busca un sistema y aplícalo de forma constante. El hábito es más importante que el sistema en sí. Todo lo que hagas tiene que estar dentro del sistema y no depender de tu memoria. Es muy fácil caer en la trampa de pensar que te vas a acordar de todo lo que tienes que hacer, y quizás puedas al principio, pero es un esfuerzo que te agota y te desgasta.

Una agenda, un gestor de proyectos, no es más que una herramienta. Lo realmente importante es que la apliques a tu trabajo de forma constante, y no solo a las tareas técnicas que tengas pendientes, si no a todas las áreas organizativas que conlleva tener una empresa. El sistema te tiene que permitir tener todo lo que tengas pendiente por hacer bajo control.

#9 Hacerse autónomo no es un ascenso

Hay una gran diferencia entre hacerse autónomo y recibir un ascenso para gestionar personas. Si te ascienden a un puesto de gestión, eres responsable principalmente del trabajo de otros, junto con un montón de tareas administrativas que no le gustan a casi nadie… Si trabajas por cuenta propia, asumes todo ese trabajo de gestión además de tener que seguir haciendo todo el trabajo técnico de programación, evidentemente.

Hay muchos buenos programadores que terminan siendo muy infelices cuando son ascendidos a puestos de gestión. Hay perfiles técnicos buenísimos que simplemente rehuyen de convertirse en gestores de personas y del trabajo de terceros. Si tú eres uno de esos, no pasa nada, pero tenlo en cuenta y planifícate. Puedes empezar por reservar un día de la semana para todas las tareas de administrativas y, en cuanto puedas, emplear a un ayudante o apoyarte en una asesoría o una gestora para las cosas más críticas como toda la gestión tributaria.

Como programador freelance, eres tanto gestor como programador, y tienes que hacer ambas bien para tener éxito.

#10 No te pongas palos en la ruedas

No te conviertas en un obstáculo para el crecimiento de tu propia empresa. Llegará un momento en el que alcanzarás el límite de cuánto trabajo puedes hacer sin que afecte al negocio en general, tu salud, tu vida personal, familia, amistades, etc… y, sobretodo, sin quemarte.

Puedes subir precios, pero solo hasta un punto. Lo importante en estos casos es darse cuenta a tiempo y aprender a delegar. Todos conocemos casos de autónomos que mueren de éxito porque llega un punto en el que no pueden estar a todo, llega un cuello de botella que ahoga al negocio, y todo porque no saben delegar.

Si notas que las cosas salen con retraso y los clientes están esperando por ti, es una señal de alerta. Es mejor aprender a delegar más pronto que tarde.

#11 Aprende cuando contraer o expandir el negocio

Cuando llegas a tu límite puedes optar por contraer el negocio o expandirlo. Para hacer menos cosas, puedes optar por deshacerte de los clientes que no te interesan subiendo tarifas y optimizando el tiempo. Para expandirte, puedes contratar o subcontratar ayuda, delegando tareas o eliminándolas, y diversificar la oferta de servicios.

Hay varias formas de reducir el trabajo que tienes que hacer cada semana a la mínima expresión, obteniendo el mismo nivel de ingresos. Algunas de estas tácticas puede que funcionen en el caso concreto de desarrolladores de software autónomos, tales como la subcontratación de todo el trabajo que no tenga que ver con tu propuesta de valor (ya hemos mencionado arriba: asesorías, gestorías, etc…).

Lo realmente importante aquí es no seguir a pie juntillas los consejos de nadie, si no ir viendo lo que hacen otros y dar con una estrategia que funcione para ti.

#12 Piensa en producto

Los productos tienen una ventaja muy grande frente a servicios: los productos son escalables. Solo puedes vender una hora de tu tiempo a la vez, es finito y se acaba, pero un producto lo puedes vender mil y una veces, incluso mientras duermes o no estas trabajando.

Evidentemente hacer un producto es un quebradero de cabeza y hay que esforzarse. Tienes que diseñarlo, desarrollarlo y, lo más importante y difícil, venderlo.

Todo este proceso es costoso. Pero una vez que tienes tu producto a la venta y las cosas empiezan a ir más o menos bien, “solo” implicará de tu tiempo los mantenimientos. Piensa en crear software que demande un nicho concreto, y vende tus servicios en forma de mantenimiento. Si puedes incluso convertir algunos de tus servicios en productos, ¡hazlo!, es mucho mejor a la larga (un plugin, integraciones, etc…).

#13 Marca y red de contactos

Las personas tienen que saber quién eres, qué vendes y por qué. Incluso antes de tener el producto, es muy importante que trabajes la marca entre tu red de contactos. Llámale comunicación, marketing, branding o “dar la paliza”: tienes que difundir una imagen y un mensaje de manera constante sobre el tipo de producto/servicio y la calidad que ofreces.

Además de montar una web, y un blog, y un canal de YouTube y todas esas cosas que hace todo el mundo, lo mejor que puedes hacer es salir de la oficina y elegir un nicho geográfico que puedas abarcar (no importa si al principio es muy pequeño) y difundir tu mensaje hasta que todo el mundo en ese pequeño círculo te conozca. Empieza por las asociaciones locales, grupos profesionales de tu zona, pequeños eventos de software y trabaja esa red hasta que te conozcan todos.

Intenta dentro de ese segmento geográfico reducido diferentes enfoques, sé creativo, usa la imaginación, usa canales menos saturados como el correo físico con clientes potenciales importantes, y haz seguimiento. Procura por todos los medios saber por donde te llegan los clientes potenciales. Y hazles seguimiento, no les pierdas el rastro.

#14 Hazte prescindible

Si tienes miras a crecer como empresa y empresario, y no quieres ser una autónomo toda la vida, debes trabajar desde el primer día con el objetivo de hacerte prescindible. Tienes que coger el hábito de trabajar para hacerte prescindible desde el primer día. Si no concibes tu empresa con ese fin, luego cuando quieras serlo quizás ya es muy tarde.

No pierdas cada oportunidad de conocer a personas que en un momento dado pueden trabajar contigo. Lo ideal es trabajar con personas que compartan tu filosofía del trabajo, y la búsqueda tiene que ser constante. En un proceso de selección quizás no des con esas personas, es una misión constante.

Si recurres a procesos de selección, lo mejor es hacer pruebas antes de apostar por la formación. Uno después de varias semanas trabajando con una persona ya se hace una idea de si la cosa puede funcionar. Si la cosa funciona, bien. Si no, lo mejor es ser honestos y no cargar con más trabas de lo que exige el ser autónomo. No tiene sentido formar a alguien que no comparte tus valores.

Hasta aquí 14 de los 29 consejos para tener éxito como desarrollador autónomo. La semana que viene publicaremos la segunda entrega.

Este artículo 29 consejos para tener éxito como desarrollador autónomo (I) es original de Velneo.

Tagged , , , , , , | Comments Off on 29 consejos para tener éxito como desarrollador autónomo (I)

Pensar en listas es más natural

Hoy en día la gran mayoría de personas usamos a diario algún tipo de aplicación. Casi todas las aplicaciones gestionan información y disponen de interfaces adecuados para conseguir la mejor experiencia de usuario posible.
Tagged , , , | Comments Off on Pensar en listas es más natural

¿Cómo mejorar el soporte técnico de software?

No tengo tiempo para escribir una carta corta, así que escribiré una larga en su lugar. Mark Twain

.

Hoy iré al gimnasio. La próxima vez no pediré postre. Mañana madrugo. Empezaré a comer verdura, dejaré la carne. Menos TV y más lectura. Haré esa llamada. Pasaré más tiempo con mi familia. El 31 de diciembre dejo de fumar. Cumpliré el horario de esta reunión.

Retraso hábitos que son positivos para mi futuro. Sé qué hacer pero no lo aplico. Lo urgente supera lo importante. Parece fácil, es difícil.

Bugs sin resolver. Si estoy al teléfono no resuelvo bugs. No tengo tiempo para crear documentos. Voy a darme prisa con este cliente porque hay otro esperando. Es imposible refactorizar. Se repiten bugs y no los soluciono.

En soporte lo urgente gana a lo importante. No somos preventivos. No hay tiempo a pensar en el futuro. Pierdo tiempo hoy en vez de ahorrarlo mañana. Cambiar los hábitos será la clave del éxito para mejorar el departamento de soporte.

rawpixel-com-250087.jpg

 

Tus clientes no quieren hablar contigo

Los clientes no quieren hablar conmigo, porque los clientes no quieren tener problemas. El cliente te llama como último recurso. Intenta resolver el problema, después busca en google y por último llama. Creía que los clientes prefieren el teléfono al autoservicio web y los estudios realizados por CEB demuestran que no es así.

soporte.png

Hace 10 años el 66% de los clientes usaba en primer lugar el teléfono.

Hoy día sólo el 25% usa como primer medio el teléfono.

Mi preferencia por el teléfono partía de asunciones erróneas:

.

  • El autoservicio web se usa para incidencias fáciles y sencillas, cuando las incidencias son complejas el cliente prefiere llamar.

 

  • El servicio web es para clientes que tienen 20 años, son técnicos y manejan internet.

 

  • Es difícil y caro montar un buen sistema de autoservicio web.

 

Como cliente me da igual el canal, quiero soluciones sencillas y rápidas con poco esfuerzo por mi parte.

 

Solución rápida, problema persiste

Si tengo prisa no pienso, remedios rápidos. Me duele la cabeza: me tomo aspirina,  mi hija llora: le pongo dibujos, estoy cansado: veo tele, software falla: le pongo código parche, se cuelga el software: reinicio, ordenador lento: pongo más memoria. Remedios rápidos problemas que vuelven, tu niña volverá a llorar, el bug se reproduce y el ordenador se queda sin memoria.

Según estudios The effortless experience, la mitad de incidencias que creemos solucionadas vuelven, una, dos, tres, cuatro y hasta cinco veces  de manera explícitas o implícitas.

.

Tipos de incidencias.png

 

Anticipar, profundizar, buscar problemas colaterales, nos evita que los clientes vuelvan a llamar. Un indicador para medir este problema es el número de soportes de un mismo cliente en 7 días. Me sorprendo cuando veo las veces que durante 7 días nuestros clientes vuelven a contactar por la incidencia original o adyacente.

 

¿Cuál es tu problema real?

Mi hija llora, ¿Por qué lloras? me dice que está aburrida y pide Pocoyó. Si le digo que no vea tele, llora, si juego con ella es la niña más feliz del mundo.

No contamos problemas, pedimos soluciones. Un cliente me dice que quiere una columna en el informe, le digo que NO y se cabrea. No dedico tiempo a conocer el problema original del cliente. El problema original no tiene que ver con la solución propuesta o las soluciones alternativas que le puedo ofrecer; exportar a excel, usar otra opción, etc …

¿Cómo mejoro?

  • No soy rápido diciendo NO. Centro mi energía en conocer el problema original, la raíz de la consulta, la motivación, el interés. ¿Qué tiene el cliente en la cabeza?

 

  • No invierto energía en explicar el NO. Centro mi energía en dar alternativas, soluciones al problema. Cuando alguien te plantea una petición doy alternativas de solución al problema original.

 

  • No me centro en la petición. En un software tengo que conocer los contextos de uso, el momento, los usuarios, la instalación, existen muchas variables que condicionan la solución al problema. Para un problema existen muchas soluciones, no sólo la petición original.

 

.

.

Bibliografía y gráficos: The effortless experience & CEB

 

 

 

Tagged , , , | Comments Off on ¿Cómo mejorar el soporte técnico de software?

Usa la función de campo isModified()

Tradicionalmente en Velneo hemos usado el comando ¿Ha cambiado el campo? para controlar cuando el valor de un campo había sido modificado. Gracias al uso de la función de campo isModified() podemos detectar si el valor de un campo ha cambiado de forma directa en la fórmula ahorrándonos dos cosas...
Tagged , , , | Comments Off on Usa la función de campo isModified()

¿Cómo accedo a la Lista o Ficha de cualquier Vista de datos de mi Aplicación?

Una de las tareas que inicialmente más me costó asimilar fue cómo se podía acceder a los registros de un objeto Vista de datos.

Sigue leyendo para averiguar el porqué.

Cuando uno descubre Velneo, viniendo de un entorno de programación totalmente diferente, debe asumir que va a tener que aprender un nuevo paradigma de programación y esto conlleva algunas dificultades para entender algunos aspectos esenciales del nuevo lenguaje.

vista de datos

 

Como ya sabemos un objeto Vista de datos es un objeto del Proyecto de aplicación que nos permite mostrar en el Interfaz un conjunto de registros de una tabla del Proyecto de datos.

En Velneo se denomina Lista al conjunto de registros y Ficha a un solo registro.

Primero me hice una serie de preguntas en lo que respecta al acceso y gestión de las Listas y Fichas que están contenidas en los objetos gráficos de la Aplicación.

Respondiendo a estas preguntas entenderemos el mecanismo de Velneo y quedará resuelto el problema planteado.

1ª ¿Dónde puedo colocar el objeto Vista de datos en el Interfaz de mi Aplicación?

Los objetos de Vista de datos normalmente irán insertados en un formulario a través de un control de tipo Vista de datos.

También podemos colocar un objeto Vista de datos en un formulario de un Dock del objeto autoexec.

Las Cestas globales también contienen una Lista que podemos mostrar como una Rejilla en un Dock del autoexec.

2ª ¿Desde dónde puedo acceder a la Lista o Ficha de una determinada Vista de datos?

Si no usamos el API, en Velneo solo tenemos acceso a los controles de un formulario desde los manejadores de evento del propio formulario.

Desde un proceso solo tenemos acceso a los controles de objeto autoexec.

3ª ¿Qué comando o comandos me permiten dicho acceso?

En Velneo se entiende por Procesar como la acción de acceder a la Lista o Ficha de la Vista de datos.

Disponemos del comando Interfaz:Procesar que, tal como dice la ayuda, permite acceder a los datos de un control de tipo objeto usado en un formulario o en cualquiera de los subformularios del mismo.

En un control de tipo objeto podremos presentar una ficha o una lista de registros de una tabla.

Mediante este comando podremos acceder a los datos de dicho control e interactuar con ellos, ya sea para leerlos, modificarlos, borrarlos, etc.

En un proceso usaremos este comando para acceder a los objetos Vista de datos de un Dock del autoexec.

Para procesar la Lista de una Cesta global disponemos del comando Cesta:Procesar.

4ª ¿Tiene algo que ver esto con los conceptos de Origen y Destino de los procesos en Velneo?

Por supuesto, si entendemos los conceptos de Origen y Destino, entenderemos porqué necesitamos el comando Procesar.

Cuando ejecutamos el comando Interfaz:Procesar o Cesta:Procesar se crea un nuevo subproceso dentro del manejador de evento o proceso actual. El subproceso cambiará el Origen a la Ficha o la Lista de la Vista de datos que hayamos seleccionado y de esa forma tenemos acceso inmediato.

Cuando finaliza el subproceso, se vuelve a recuperar el Origen que había antes de ejecutar el comando Procesar.

 

Para resumir:

  • En Velneo programamos mediante manejadores de evento y procesos cuyo Origen determina a qué Lista o Ficha tenemos acceso.
  • El comando Procesar crea un nuevo proceso (en realidad es un subproceso) que cambia el Origen a la Lista o Ficha de la Vista de datos.
  • La única condición a tener en cuenta es que la Vista de datos sea accesible desde el manejador de evento o proceso.

 

Una vez entendido cómo funciona el comando Procesar, nos daremos cuenta de la gran potencia de esta forma de programar.

¿Alguna duda en la sala sobre la vista de datos y el comando procesar?

Si es así, cuéntamela dejándome un comentario mas abajo.

La entrada ¿Cómo accedo a la Lista o Ficha de cualquier Vista de datos de mi Aplicación? aparece primero en AyudaVelneo.

Tagged , , , , , , , | Comments Off on ¿Cómo accedo a la Lista o Ficha de cualquier Vista de datos de mi Aplicación?

La productividad de un buen programador vs el ratón

Un buen programador además de usar bien su cerebro trata de ser lo más productivo posible. El porcentaje de uso del editor de código en el desarrollo de una aplicación es muy elevado. Por ese motivo ser ágiles a la hora de escribir código es fundamental para ser más productivos.
Tagged , , , | Comments Off on La productividad de un buen programador vs el ratón