Según parece en 1982 estaban trabajando en el Lisa cuando a uno de los jefes se le ocurrió que sería buena idea medir la productividad de los ingenieros en líneas de código escritas semanalmente. Es sabido que contando líneas de código se puede medir cualquier cosa –desde el código de un videojuego al tamaño del código fuente de Windows o el software de un Boeing 787.
|
etiquetas: programador , progreso , -2000 , líneas , código
la
calidad
de
los
comentarios
de
meneame
se
midiera
por
número
de
líneas
...
la
calidad
de
los
comentarios
de
meneame
se
midiera
por
número
de
líneas
...
Como dice el principio de Peter: En una jerarquía (organización o empresa) todo empleado tiende a ascender hasta su nivel de incompetencia
T
I
E
N
E
S
T
O
D
A
L
A
R
A
Z
Ó
N
Por suerte ya conocíamos esta anécdota de Bill Atkinson y después de reenviarla por correo ya nunca nadie más volvió a hablar de ella.
Al final decidieron que la mejor forma de medirla era usar un sistema muy español de decisión digital. El jefe decía quien era el más productivo señalándolo con el dedo y él era el beneficiario de la conocida paga de beneficios.
Por el camino se dieron cuenta que si solo tenían en cuenta el dinero que ganaba una persona, podía no ser muy justo porque a veces hay proyectos con monos que dan mucho dinero y otros con los mejores que dan perdidas. Pero compensa tenerlos porque permite volver a vender otros proyectos que dan dinero aunque los lleven monos.
_NEWHANDLE ;ask OS to do request
BNE.S MemFull ;if memory full, deep shit!
Con el tiempo llegan a un equilibrio.
Al final, tardabas x jornadas, pues decías que tenía x/y puntos función, de acuerdo a la estimación de TEF para cada PF.
Y no, los gestores no eran tontos, sencillamente pasaban de ese parámetro, pero como se lo pedían de arriba, lo “calculaban” pasaban de chorradas, pero más o menos, gestionaban el proyecto razonablemente.
HistoriaHisteriaAl final acabas escribiendo los tests para ver la cobertura de código y saber dónde entrar hacha en mano.
Lo peor que tiene java es que puede conseguir que funcione cualquier mierda, y cuando ya no se puede ñapear mas...... a mi correo electrónico llega un puto correo que dice "mira a ver si ves porque no funciona esto"
Hay días que me siento como el colector de basura de la oficina.
Me gusta como piensa usted.
Es la única persona que seguro que no va a tomar represalias
La solución: estaba en un repo git, con lo que era simple, borrar todo el código muerto.
Luego paso tests automatizados con parametros diferentes y veo si la optimizacion es correcta para valores que no los he entrenado.
Poco a poco estoy conviertiendo a mi equipo en una CNN
Despues veo el codigo y si no tienen documentadas las funciones para el swagger , suspenso automatico.
/// hola mundo
array int a[10];
array char b[10];
a[0]=0;
a[1]=0;
a[2]=0;
a[3]=0;
a[4]=0;
a[5]=0;
a[6]=0;
a[7]=0;
a[8]=0;
a[10]=0;
a[0]=a[0]+150;
a[1]=a[1]+157;
a[2]=a[2]+154;
a[3]=a[3]+141;
a[4]=a[4]+40;
a[5]=a[5]+155;
a[6]=a[6]+165;
a[7]=a[7]+156;
a[8]=a[8]+144;
a[9]=a[9]+157;
char b[0] = a[0];
char b[1] = a[1];
char b[2] = a[2];
char b[3] = a[3];
char b[4] = a[4];
char b[5] = a[5];
char b[6] = a[6];
char b[7] = a[7];
char b[8] = a[8];
char b[9] = a[9];
print("%c", b[0]);
print("%c", b[1]);
print("%c", b[2]);
print("%c", b[3]);
print("%c", b[4]);
print("%c", b[5]);
print("%c", b[6]);
print("%c", b[7]);
print("%c", b[8]);
print("%c", b[9]);
resultado: -->
hola mundo
-----------
print("hola mundo");
resultado: -->
hola mundo
De todo lo que se me ocurre, nada es aceptable. Lo más cercano, con sus pegas.
- Por tareas finalizadas ponderadas por el peso de las mismas en Scrum.
Claro, ¿y si hay errores? ¿y la calidad del código? ¿y si invierte tiempo en refactorizar?
(y similares)
Nadie me insulta ni me maltrata tanto como yo mismo. Es deprimente. Después de esa bronca llego a casa dolido y triste, pero con ganas de mejorar.
A mis compañeros no les digo nada, son humanos y todos cometemos errores.
Antoine de Saint-Exupéry
Y quizás no saque la basura tan rápido, pero la sacará. Y al final es lo único que cuenta, que la basura se solucione.
Eso no quita que las tumbas de sus antepasados no hayan sido regaladas con defecaciones, pero es el calor del momento. Luego en el rato del café se pasa.
Me podéis enervar en vuestras absurdas reuniones eternas. Pero cuando programo soy libre.
go fmt.
a[9]=0;?
Lo digo porque si necesitas inicialización...
Pasarme media carrera sin equipo, agudiza la lectura de código.
Ahora en serio, no se puede medir de forma cuantitativa, la productividad de un programador es como el cariño, es algo que vas notando con el tiempo.
11 a[9]=0;;
No fueron los jefes los que hicieron esa cuenta, sino él haciendo la gracia, y contando mal las líneas, porque habrá que contar las que escribes sin restar las eliminadas de antes. Que sí, que es absurdo medir así la productividad, pero esta anécdota, al menos así contada tienen poca chicha.
Pero lo peor es encontrarme clases enteres de funcionalidad muerta, que están así desde hace años (10 años o mas). Y lo peor, es que tienen dependencias con librerías del año de la tana que luego dan problemas en JVMs modernos o que chocan con otras librerías por sus dependencias.
Y bueno, el problema de la SWAP haciendo lenta al sistema operativo, lo lleva arrastrando Windows desde su concepción...
El caso de OS/2 era diferente porque era un sistema operativo con una arquitectura diseñada alrededor del procesador 286/386 (de hecho, creo que es el único que aprovecha "de verdad" el sistema de cuatro anillos de protección de los Intel, mientras que el resto, como Linux o NT, utilizan sólo el 0 y el 3 para una arquitectura "usuario-supervisor" clásica, además de aprovechar la segmentación y exponerla en su API). Ahí, que fuese lento y que tirase tanto de swap en 2.0 era por bloatware, y una vez más la prueba es que en la 3.0 se aceleró muchísimo sin mucho cambio en la arquitectura en sí.
De hecho, era tan específico que OS/2 para PowerPC era básicamente un sistema operativo nuevo con la misma API de usuario.
(por cierto: yo usé OS/2 durante muchos años y no tenía un PS/2, y funcionaba bien... si tenías memoria, claro. 8 megas mínimo para un rendimiento razonable. con 4 megas era mejor que quitases el WPS y usases un lanzador de aplicaciones más ligero).
Y ahora que estas mencionando, es verdad que la supuesta incompatibilidad de OS/2 con hardware, era mas un FUD de Microsoft, que algo cierto.
La verdad , es que cuando OS/2 (3 en adelante) funciona bien, funciona realmente bien. Recuerdo haber visto cajeros del Santander usando aun OS/2 hace como 4 o 5 años.
Y tiempo después vuelven a pedirte que lo vuelvas a arreglar... porque tu cutre-parche no funciona en un caso que ni sabías... pero como lo programaste tu... ahora es tu obligación arreglarlo.
1 "cómo reconocer perros y gatos por AI"
2 Código: una línea en plan "import perros y gatos from open_CV" y otras en plan "tomar una foto, aplicar una función y mostrar al usuario si había ahí un perro o un gato."
3 Pedir que des al like y les sigas.
Y el pan nuestro de cada día: código muerto o lava code en cantidades industriales.