Mi opinión sobre el programador perdido


Desde la publicación por Enrique Dans del artículo El programador perdido se ha levantado un gran revuelo y diferentes corrientes de opinión al respecto. Tanto es así, que Wilhelm Lappe, Emilio Rey e Iván Pérez han organizado #debate10 un evento para debatir, comentar e intentar encontrar el punto de encuentro entre programadores y emprendedores. He tenido la suerte de ser invitado a participar pero como seguro que hay poco tiempo y hay que condensar mucho cada opinión, voy a desarrollar un poco mi punto de vista al respecto y así, de paso, me vale para ordenar mis ideas, que falta me hace. Para ello voy a plantear algunas preguntas e intentaré dar respuesta.

¿Existe el programador-emprendedor?

Rotundamente si. Yo soy el claro ejemplo de ello. Tanto en TagUin como ahora en Etece dedico una parte muy grande de mi tiempo a programar, sin abandonar otras tareas necesarias para sacar adelante el proyecto. Pero no soy el único. Mi amigo, socio y compañero de viaje Javier Fernandez es otro claro ejemplo. Pero a eso puedo añadir a otro colaborador cercano como Fran de la Fuente, que no tiene problema en unirse a un proyecto emprendedor si ve que es un proyecto serio. Estos son algunos ejemplos, pero conozco muchos más.  La clave está en el matiz proyecto serio.

¿Existen proyectos serios que necesiten de programadores?

De nuevo, rotundamente si. Y cuando se tiene un proyecto serio entre manos, y en este caso hablo como emprendedor, no es dificil convencer y atraer talento. Eso si, el talento se paga y como dice David Bonilla, no es barato. Por tanto, si quieres tener una buena base técnica en tu proyecto, prepara el dinero. Aunque no todo es dinero, también se puede ofrecer un atractivo paquete que incluya un salario más que decente más una parte en participaciones más un futuro plan de stock options. Los técnicos somos raros pero no gilipollas y si todos los socios de una empresa se pueden forrar, nosotros tambíen queremos forranos. Y de nuevo doy la razón a David Bonilla, si pagas poco obtendrás un proyecto con unos cimientos técnicos muy malos que no te llevarán a ninguna parte.

¿Están los emprendedores dispuestos a pagar lo que cobra un buen programador?

De nuevo hablo como emprendedor y se que el dinero es un bien escaso en un proyecto por lo que todo emprendedor intenta recortar de donde puede. Pero creo que ahí está el error. Si tienes un buen equipo técnico te será más fácil encontrar inversión. Por tanto, paga lo que tengas que pagar pero haz ver a los inversionres que es dinero bien invertido. Ahorrarte 10.000 o 15.000€ al año en el sueldo de un buen programador es un gran error porque a la larga te vas a gastar mucho más dinero en cambiar o incluso rehacer aquello que no quedó bien hecho por falta de experiencia del programador. De nuevo el matiz es lo importante, a la larga es lo que piensan muchos emprendedores y creen que si el proyecto va bien, no será problema en rehacer muchas cosas a la larga, pero que si va mal, se han gastado menos dinero. Ahí tenemos un proyecto que no es serio. En un proyecto serio se hacen las cosas bien desde el principio.

¿Existen programadores con experiencia dispuestos a unirse a una startup?

No nos engañemos, una startup es sinónimo de cierta inestabilidad profesional, muchas horas de dedicación, mucho stress, noches sin dormir, y un largo etcétera de cosas malas, pero también hay una gran lista de cosas buenas. El caso es que no todo el mundo quiere y puede unirse a una startup pero si creo que hay gente con el perfil adecuado esperando la oportunidad. Para muchos profesionales una startup puede ser la oportunidad de crecer profesionalmente y pasar de ser un programador senior a un futuro responsable de desarrollo o incluso CTO. Y hay gente que está dispuesta a asumir ciertos riesgos por esa oportunidad. También hay gente con espíritu emprendedor y que el trabajo en un gran empresa no le llena. Hay muchos más ejemplos, pero prácticamente nadie se va a rebajar el sueldo un 70% para unirse a una startup. Todos tenemos que vivir, pagar hipotecas, colegios, etc… Hay mucha gente, sobre todo inversores, que piensan que emprender tiene que ser sinónimo de sueldos bajos o casi inexistentes para los fundadores. En un post anterior ya di mi opinión sobre el sueldo de los fundadores y en el caso de los programadores es lo mismo. Seguro que con un proyecto serio y un plan de retribución adecuado encuentras gente que se baje el sueldo un % razonable durante los dos primeros años pero no se puede pretender que trabajen por amor al arte.

¿Las ganas valen más que la experiencia?

Hay veces que se contrata a un programador con poca experiencia, 4-5 años, y se le pone el título de CTO. En ese caso se está dando más peso a las ganas del programador de unirse al proyecto y tener un puesto de responsabilidad que la experiencia real que pueda aportar. Anteriormente ya comenté lo que creo que hace falta para ser CTO así que, bajo mi punto de vista, es más importante la experiencia que las ganas.

¿Hay suficientes programadores en España?

Vamos a dejar a un lado las obviedades que se oyen en algunos medios  de que hacen falta menos economistas y abogados y más ingenieros y programadores. Eso está claro y por mucho que lo repitamos, si no tomamos medidas serias, el problema no se va a resolver. En este punto le doy la razón a Enrique Dans cuando dice que habría que afrontar este problema desde la base, incluyendo asignaturas de programación en los colegios e institutos. Yo empecé a programar con 10 años en un dragon 32 que le regalaron a mi hermano y que sólo entendía basic. Nadie me enseñó, símplemente me picaba la curiosidad, me hice con un libro y me puse a ello, sin más conocimiento. Pero no podemos esperar que los programadores salgan de manera expontánea, hay que incentivarlo desde la base y para ello hay que hacer planes de estudio a largo plazo que favorezcan el cambio productivo de nuestro país. Pero ahí entramos en el terreno de los político y estamos bien jodidos. Lo más que van a hacer son políticas cortoplacistas (como mucho 4 años que dura una legislatura) para salvar su culo y con un poco de suerte estar otros 4 años chupando de bote. La educación, como la sanidad, el terrorismo y alguna cosa más son problemas de estado que no deberían obedecer a ciclos legislativos. No pude ser que cada gobierno cambie los planes de estudio a su antojo y mucho menos que en cada comunidad autónoma se estudie cosas distintas. Pero bueno, me estoy metiendo en temas políticos y ahí me enciendo demasiado…. Volviendo al tema que nos ocupa, en España hay menos programadores de los que necesitamos, hay un porcentaje razonable de programadores que no saben hacer bien su trabajo, como en todas las profesiones, pero también hay grandísimos profesionales que están a la altura de los mejores del mundo. Por tanto, hay menos de los que necesitamos pero los hay, sólo hay que proponerles un proyecto serio y unas condiciones adecuadas.

¿Emprender en Internet en barato?

Pues depende con qué lo compares. Si lo comparas con montar un bar de copas con un colega, emprender en Internet es caro, pero si lo comparas con montar una planta de tratamientos de resíduos radioactivos, es barato. El caso es que, no se muy bien por qué, hay bastante gente, principalmente emprendedores de otros sectores, que piensan que emprender en Internet es barato. Piensan que invirtiendo 50.000€ se puede montar una empresa que facture 50 millones en tres años y se la puedes vender a Amazon por 100 millones. Si quieres montar un buen proyecto de Internet te hace falta bastante dinero y debes pensar que, al menos, el 30% de esa inversión debe ir destinada a la parte técnica.

Resumiendo…

… que me lio y al final no digo nada. En mi opinión:

  1. SI existen los programadores-emprendedores o los emprendedores-programadores.
  2. SI se pueden encontrar buenos profesionales con experiencia, capacidad y ganas de unirse a un proyecto serio, pero hay que pagarlo.
  3. SI existen proyectos serios, bien financiados y con un gran futuro donde los buenos programadores pueden desarrollar una buena carrera profesional.
  4. NO hay tantos programadores como nos gustaría pero hay más de los que nos pensamos.
  5. Cualquier programador no vale para montar técnicamente bien una startup, hace falta un equipo con experiencia.
  6. Hacen falta cambios importante es la base educativa para que la falta de programadores no vaya a peor e incluso pueda suponer un punto de pivote del modelo productivo español.

Como seguramente en #debate10 no tenga tiempo de desarrollar todos estos puntos, me centraré en comentar mis conclusiones. Cualquier comentario o debate al respecto será bienvenido.

Anuncios

Mis errores como CTO en Toprural


Tal y como hice en el post anterior donde repasé mis errores como CTO en BuyVIP, voy a repasar mis errores como CTO en Toprural, como parte de la serie de posts auto críticos que inicié con este post.

Me incorporé a Toprural en junio de 2008 después de dejar voluntariamente BuyVIP. Me encontré con un equipo técnico ya montado de 10 personas de los que 8 se dedicaban a desarrollo y que estaban repartidos en dos equipos: los que estaban desarrollando desde cero un nuevo Toprural en nueva tecnología y los que estaban manteniendo el antiguo Toprural. El foco era cumplir el plan de migración al nuevo Toprural (15 meses que terminaron siendo 18) junto con la implantación de un ERP (finalmente fue Microsoft Dynamics NAV) y el reciclaje del equipo encargado del mantenimiento del antiguo Toprural. No fue un aterrizaje fácil ya que una parte grande del equipo técnico no entendía la necesidad de un CTO, pensaban que no necesitaban jefe y lo peor, pensaban que la empresa dependía de ellos, lo que generaba un ambiente de ellos contra el mundo. Afortunadamente con el tiempo fueron entendiendo mejor la situación y se terminaron destapando las manzanas podridas del equipo. Allí me encontré a gente muy brillante técnicamente y alguno evolucionó de manera impresionante, siendo mi sustituto como CTO tras mi salida. A Paco le deseo lo mejor en su nueva etapa fuera de Toprural y espero que algún día podamos volver a trabajar juntos.
En esta nueva etapa me sentía muy a gusto y con la confianza de la dirección. Tanto François como Rafa creían en mi y en mi criterio y yo pude aprender mucho de ellos. Sin duda fueron buenos tiempos. Los principales errores que destaco de aquella época son:

  • No traerme a todo mi equipo de confianza. Creo que es esencial tener confianza ciega en las personas más importantes de tu equipo. En esta nueva aventura me acompañaron, algunos meses más tarde, dos de las personas de mi equipo de BuyVIP aunque una de ellas se volvió bastante pronto a BV tras no gustarle lo que allí encontró (incluso creo que yo mismo fui una de las cosas que no le gustó, aunque ya me conocía). Me costó demasiado tiempo sentirme alineado con mi equipo y eso nos impidió ir más rápido y mejor. Finalmente lo conseguí parcialmente al poder confiar plenamente en el trabajo que hacía el que fue mi sustituto.
  • No tener buen ojo con los fichajes. No todos los fichajes fueron malos ni mucho menos. Algunos fueron realmente buenos, pero unos cuantos fueron un error completo y lo peor fue que conseguí el efecto contrario al buscado: En lugar de alinearse conmigo, se alinearon con las manzanas podridas.
  • No despedir a quien debía cuando debía. Este punto suena muy duro y habrá gente que piense que soy un insensible o cosas similares pero nada más lejos de la realidad. El despido es un drama para todas las partes. Para la empresa porque tiene que prescindir de un profesional al que una vez quiso en el barco y que tiene que suplir con otra persona, con el trastorno que eso supone. Para el trabajador… Un palo muy duro. Aunque muchas veces es la mejor solución para todas las partes implicadas. El tema del despido requeriría un post aparte que escribiré cuando acabe esta serie. El caso es que debía haber limpiado la casa de manzanas podridas y haber dejado a los realmente buenos e implicados, fichando y renovando al equipo, aunque a corto plazo supusiera un retraso en loa planes. En estos casos te terminas dando cuenta que todo el tiempo que retrasas esta decisión es tiempo perdido.

Me marché de Toprural a finales de 2009 para montar tagUin. Después de pasar por dos empresas exitosas de Internet, no pude contener más el gusanillo emprendedor y decidí dar el salto, dejar un buen trabajo para montar un proyecto propio. Tuve la suerte de que muchos amigos e inversores apostaron por mi y por el proyecto, pero no estuvo exento de errores, aunque esta vez no fueron tanto técnicos o de gestión de equipos… pero eso lo cuento en el siguiente post.

Mis errores como CTO en BuyVIP


Me incorporé a BuyVIP en febrero de 2007. Primero como empleado de Medianet, empresa socia fundadora de BuyVIP, siendo CTO part-time compartiendo tareas con otros proyecto de dicha empresa. Pero rápidamente las necesidades de la empresa requerían una dedicación a tiempo completo y pasé a la plantilla de BuyVIP. En aquel momento toda la tecnología estaba externalizada en Medianet y hacía falta que BV tomara dicho control por lo que mi primera preocupación fue crear equipo propio. Para ello conté con varias personas que conocía de etapas anteriores y en las que confiaba. Era la primera vez que era CTO y de ahí vinieron muchos de mis errores. Los que más destaco son:

  • Falta de seniority. No es tanto un error mío sino una característica inherente a mi situación en aquel momento. Era la primera vez que era CTO y además no había tenido ningún espejo en el que mirarme. Por suerte, este tipo de “errores” se corrigen con el tiempo y con ejercicios de autocrítica como esta serie de posts. Ya lo he comentado en algún post anterior, un CTO no es un programador venido a más o como en mi caso en aquel momento, un jefe de proyecto venido a más.
  • No pensar a lo grande. En un proyecto como BuyVIP en el que todo va muy rápido y el crecimiento es enorme hace falta pensar a lo grande y concebir la estrategia técnica de la misma manera. Siempre intenté dar los pasos adecuados cimentados en base sólida pero en algunos momentos en BuyVIP ese no era el mejor camino.
  • No imponer más mi criterio. Derivado del primer error comentado y en un entorno donde el CEO de la empresa tiene un carácter y un empuje muy importantes y que intenta imponer su criterio en todos los órdenes de la empresa, me dejé influir en muchos aspectos en contra de mi criterio y creo que de esa influencia vinieron las peores decisiones o acciones tomadas en el departamento técnico. Debería haber sabido demostrar que mi criterio era el correcto y no dejarme influenciar. Este punto fue la principal razón de mi salida voluntaria de BV en junio de 2008.
  • No pedir ayuda. Hay veces que hay que reconocer que te hace falta ayuda. Yo quería hacerlo lo mejor posible y quería hacerlo demostrando que podía hacerlo con mi equipo pero en aquella situación lo mejor hubiera sido reconocer que hacía falta un CTO con más experiencia y ponerme a rebufo suyo para ganar experiencia y conocimientos.

De todo se aprende. Muchas veces repaso situaciones de aquella época y pienso cómo las hubiera afrontado ahora. Las cosas hubieran sido diferentes aunque a toro pasado todo se ve de otra manera.

Tal y como he dicho antes, me fui voluntariamente de BV en junio de 2008. Tomé la decisión de marcharme un par de mese antes y así lo comuniqué. El nivel de estrés que tenía junto con mi falta de feeling con la dirección de la empresa me hicieron tomar esta decisión. El siguiente paso fue incorporarme a Toprural como CTO. Pero eso lo cuento en el siguiente post…

Mis defectos y virtudes


Voy a empezar a escribir una serie de posts bastante reflexivos, con una dosis fuerte de autocrítica y auto análisis que espero que sirvan a alguien para no cometer los mismos errores y de paso os animen a hacer el mismo ejercicio. Creo que es importante conocer nuestras fortalezas y debilidades para intentar corregir las segundas e impulsar las primeras. Como le decía a un gran amigo hace ya algunos años en tono jocoso: “lo primero es reconocer que eres un atraso de persona. A partir de ahí todo es construir”.

Los posts que quiero escribir en esta serie son:

No van a ser posts demasiado largos ya que no tengo demasiado tiempo. Mi hijo ha cumplido un año hace pocos días y le dedico el poco tiempo libre que tengo. Por eso voy a escribir en ratos cortos e intentaré que los posts sean muy concentrados.
Me pongo a ello…

Lo que quieres no siempre es lo que necesitas


Hace unos días ponía en twitter que una cosa es lo que quieres y otra bien distinta lo que necesitas. Esto es aplicable en todas las áreas pero hoy quiero desarrollar un poco mejor este concepto en el ámbito del desarrollo de software.

El negocio suele saber lo que quiere
Es habitual que el equipo de negocio sepa más o menos lo que quiere. El problema es que la mayoría de las veces nos transmiten al equipo técnico directamente cómo implementar la solución en lugar de la necesidad de negocio. Esto provoca que si en el equipo técnico no hay un perfil con la experiencia y conocimiento suficiente, se suele implementar directamente lo que propone el negocio. Bajo mi punto de vista es un error ya que, saben lo que quieren pero no lo que necesitan. O dicho de otra manera, saben cuál es la necesidad del negocio pero no la mejor y más eficiente manera de cubrirla.

Rascando y profundizando
Si los técnicos queremos hacer bien nuestro trabajo debemos evitar quedarnos en la info que nos transmite el equipo de negocio y rascar hasta encontrar y entender la necesidad que quiere cubrir el negocio. A partir de ahí debemos concebir la mejor solución y explicarsela al negocio, “pariendo” conjuntamente el camino a seguir. Para ello hace falta tener en el equipo técnico perfiles que sepan de negocio, que entiendan lo que hace falta y que tengan la experiencia suficiente para saber el camino a seguir. Este tema es especialmente crítico en una startup donde el time to market y el presupuesto son muy ajustados, donde no hay tiempo ni dinero para hacer pruebas. Esta experiencia y conocimiento debe venir del CTO. Por eso creo que el CTO de un startup no debe ser un programador con ganas de emprender si no un profesional con largo recorrido técnico y experiencia en el mismo sector de actividad.

No siempre es tan fácil
Pero no siempre es fácil trabajar de esa manera. Para que eso sea posible es imprescindible que desde negocio se confíe en el equipo técnico, que estén dispuestos a aceptar que los técnicos podemos aportar soluciones al negocio y que nuestra experiencia es tan válida como la suya aunque con diferente punto de vista. ¿ Creéis que esto es posible? Difícil, pero posible. Por experiencia puedo decir que muy pocas veces he podido trabajar así pero que cuando lo he hecho los resultados han sido buenos y rápidos o lo que es lo mismo, bueno y barato. Y también por experiencia puedo decir que es más fácil trabajar así en una empresa pequeña o una startup que en una gran empresa donde el trabajo de los técnicos está muy distante del negocio y el negocio no quiere escuchar al equipo técnico. Por eso prefiero las startups!!!

Qué hace falta para ser CTO


En mi anterior post sobre equipo técnico en una startup, Luis Clemente me preguntaba sobre qué hace falta para llegar a ser CTO. Tal y como le contestaba a él en ese comentario, esa reflexión tiene contenido suficiente como para escribir un post y por ello aquí estoy reflexionando sobre, lo que bajo mi punto de vista, hace falta para llegar a ser CTO.

No quiero parecer que hago una descripción de mis aptitudes y cualidades profesionales, ya que alguna de las que mencionaré yo no las tengo, pero cuando me las encuentro en otros profesionales las aprecio mucho y creo que son importantes.

Formación

El primer punto que considero básico es la formación. No quiero decir que para ser CTO hace falta ser Ingeniero Informático o de Telecomunicaciones, pero si considero casi imprescindible tener una base técnica que nos permita entender y desarrollar nuestras funciones sin limitaciones.  Como CTO vamos a necesitar saber de desarrollo, sistemas, infraestructuras, etc… además de otros conocimientos más relacionados con gestión económica, estrategia y negociación, aunque estas últimas es más normal adquirirlas durante nuestra trayectoria profesional. No descuidéis vuestra formación en ningún momento ya que en nuestra profesión tenemos que estar en continuo aprendizaje.

Experiencia

Como decía mi abuela: “más sabe el diablo por viejo que por diablo”. En el ámbito profesional muchas veces tenemos capacidad de resolver problemas o aportar soluciones cuando basamos nuestros criterios en experiencias anteriores de las que hemos aprendido qué funciona y qué no, aunque más veces aprendemos qué es lo que no funciona que al contrario. Por ello creo que un buen CTO suele ser un profesional con unos 10 años de experiencia.

Mi primer puesto de CTO fue en BuyVIP en el 2007 cuando tenía unos ocho años y medio de experiencia y aunque en aquel momento pensaba que estaba sobradamente preparado, ahora me doy cuenta que no me hubieran venido nada mal un par de años más de experiencia. Por el contrario al incorporarme en Toprural creo que tenía una madurez profesional mayor además de más experiencia y conocimiento y pude desempeñar algo mejor mis funciones, aunque quién mejor lo puede juzgar son mis jefes.

Por ello creo que no hay que tener prisa en llegar a un puesto de dirección. En varias ocasiones en mi carrera me he encontrado con buenísimos profesionales que han llegado a puestos de dirección demasiado pronto y no han tenido la madurez profesional suficiente como para asumir las responsabilidades del puesto y aceptar la presión y el stress de una forma natural, lo que en muchas ocasiones desembocó en un profesional quemado, que no hace bien su trabajo y que sufre un parón muy grande en su progresión profesional.

Buenos mentores

Ya que hemos empezado con los refranes, voy a usar uno más: “al que a buen árbol se arriba, buena sombra le cobija”. Es decir busca siempre los mejores jefes posibles e intenta aprender de ellos. En este concepto creo que yo he tenido excelentes jefes y mentores de los que he aprendido y sigo aprendiendo mucho. Por mencionar algunos: Alejandro García y Paco Romero en Capgemini, José Luis Vallejo y Gustavo García en BuyVIP y François Derbaix y Rafael Pérez-Olivares en Toprural.

A todos ellos los identifique como profesionales con más experiencia que yo y con excelente aptitudes en algunas áreas. Lo que hice fue intentar siempre aprender el máximo de ellos en cada oportunidad que tuve e intentar que no se me pegaran algunos de sus defectos (todos tenemos defectos). Sin duda ellos tienen gran parte de culpa en mi perfil profesional.

Por el contrario me he encontrado con algunos profesionales que tienen un potencial enorme y un recorrido importante, pero que, o bien no han tenido buenos jefes y mentores, o bien no han aprendido de ellos lo que deberían. Esta circunstancia les lleva muchas veces a tener experiencias y ejemplos no demasiado buenos y a imitar esos comportamientos cuando están en una situación similar.

Sin duda es esencial tener buenos jefes y aprender el máximo posible de ellos.

Jugador de equipo

Bajo mi punto de vista el trabajo técnico es un trabajo en equipo y en gran medida nuestros resultados, éxitos o fracasos dependen del trabajo y rendimiento del equipo. Por ello creo que es importante ser jugador de equipo en fases previas a ser CTO y aprender a trabajar por y para el equipo. Eso nos llevará a tener una actitud hacia los compañeros muy buena que arrastraremos cuando lleguemos a ser CTO.

Una vez que hemos llegado y en nuestros primeros meses en ese puesto creo que es básico tomarlo con la mayor humildad posible tratando de seguir haciendo equipo, respetando y apoyando al máximo a los compañeros. Sin duda obtendremos mejor rendimiento de todos y mucho más cohesión y mejor ambiente de trabajo.

Orientación a resultados

Mi experiencia es que los puestos directivos son mayoritariamente orientados a resultados. Es decir, no nos van a medir por cuánto trabajamos si no por si obtenemos los resultados adecuados. Esta orientación es importante que se adquiera cuanto antes mejor en nuestra trayectoria profesional y aprendamos a trabajar por objetivos. Si estamos acostumbrados a trabajar nuestro horario y si el trabajo sale bien y si no pues también, sin duda tendremos experiencias muy traumáticas en nuestro camino hacia ser CTO.

Visión comercial y de negocio

En este punto voy a ser un poco polémico, pero creo que merece la pena. Es habitual encontrar profesionales del área técnica que no quieren saber nada del cliente, del negocio y de la estrategia. Si éstos llegan a ser CTO’s no creo que sean demasiado buenos en su trabajo ya que un puesto directivo requiere de una visión mucho más amplia que la técnica para entender los objetivos de la empresa y poder aportar con la tecnología para conseguirlos. Igual estos profesionales de los que hablo podrán ser excelentes arquitectos técnicos o algún otro puesto de alto nivel que sea simplemente técnico, pero para ser CTO hay que tener otra visión mucho más cercana al negocio y poder aportar a mejorar el negocio con la tecnología. Esta visión y orientación al negocio no se adquiere de un día para otro y es importante ir cultivándola durante nuestra carrera profesional. Si trabajáis en consultoría, no perdáis la oportunidad de participar en reuniones con clientes y en cualquier caso intentad siempre plantearos de qué manera ayuda vuestro trabajo al negocio de vuestra empresa.

 

Creo que no me dejo ninguno de los atributos que creo necesarios para llegar a ser CTO. Como siempre me encantará conocer vuestra opinión y si consideráis que me falta algún atributo, no dudéis en comentarlo.