Justificativas de Programadores - A Saga Continua

Olá amigos

Volto a escrever sobre este instigante assunto que tem sido alvo de minhas observações já faz um bom tempo. Listamos com o apoio de alguns colaboradores um conjunto bastante significativo de frases utilizadas pelo pessoal de TI na área de desenvolvimento a fim de justificar o caos ou algum problema com relação a prazos, performances e até mesmo qualidade de seus produtos.

O curioso é que a série vem causando baste curiosidade junto aos programadores que se identificam com os argumentos como se cada um deles tivesse isto no seu DNA ou talvez tenha aprendido em alguma cadeira da universidade. Não vai aqui uma crítica, mas é engraçado como isso passa como se fosse lição de casa para a sobrevivência nesta área.

O importante nestas observações que tenho feito é a constate preocupação do gerente de TI em relacionar prazos, ouvir e atender bem aos clientes, além disso, manter a equipe com brilho no olhar. Para aqueles que passam grande parte do seu dia olhando um mundo de 17 polegadas ai vai um conselho que aprendi nos últimos anos. Levante da cadeira e tente saber a causa verdadeira destas frases.

Como moramos em um país tropical, abençoado por Deus e bonito por natureza, temos um povo maravilhoso que simpaticamente sorri, mesmo estando triste. Ri quando não tem dinheiro e fica difícil para o Gerente de TI entender o que está havendo se estiver somente sentado na sua cadeira sem acompanhar de perto sua equipe.

Com o passar do tempo podemos perceber que se o volume de “frases” aumentar em sua equipe bote suas barbas de molho, pois os sistemas corporativos não terão a qualidade devida. Isso se dá, pois a falta de cronogramas definidos e de normas a serem respeitadas, além da falta de incentivo e apoio faz com que a equipe sinta-se solta e comece a navegar literalmente em outras praias.

É neste ponto que as coisas ficam más, pois cada membro de sua equipe é uno e possui características próprias. Temos os pró-ativos que em um futuro, se bem trabalhados, poderão se tornar líderes de equipes, capazes de dar nó em pingo d água e são os preferidos dos chefes-líderes, trazendo tranqüilidade e competência ao setor, os reativos que são aqueles que vêem o trabalho como um problema, por exemplo, prolongar seu dia até cumprir o cronograma se ele mesmo quem o atrasou, reclama que o sistema está lento, a rede lenta e que tudo tem prazo curto e que ao analisarmos a fundo seu trabalho, perceberemos uma confusão pela falta de método e de interesse em crescer.

Outro perfil bastante interessante é o desenvolvedor do tipo bonzinho, este como o anterior tem sempre uma das frases de efeito para acalmar o chefe. Seu objetivo é ficar em um canto da sala, por traz do monitor e se alguém pedir algo ele até faz, mas vai demorar. Nem sempre com a qualidade esperada. Não confunda bonzinho com incompetente, isso nem sempre é verdade. Ele é só bonzinho. Infelizmente este tipo de funcionário quase nunca chega a chefe, nem mesmo desenvolve trabalhos de grande vulto. Ele só deseja seu salário. Só. E se chegar a gerência não segura uma equipe, nem conflitos dentro dela.

Por fim temos os enrolados, desenvolvedores que quase sempre sem método e com uma frase de efeito. Estes são problemas em suas equipes, pois com o tempo passam a lecionar o idioma do “enrolation & embromation” para todos e se o gerente não perceber a tempo terá uma equipe completamente fora de suas mãos.

Até a próxima.

 

Novo PostgreSQL versão 8.3

Saiu a tão esperada versão 8.3 do PostgreSQL. Ficamos muitos meses a espera desta versão, pois trata-se de um marco na tecnologia deste banco. Para se ter uma idéia, esta última versão traz grandes saltos tecnológicos. Acompanhe os comentários abaixo e veja a tabela.

Recursos 7.4 8.0 8.1 8.2 8.3
Advisory locks No No No Yes Yes
Autovacuum enabled by default No No No No Yes
COPY with arbitrary SELECT No No No Yes Yes
CSV support for COPY No Yes Yes Yes Yes
Changing column types (ALTER TABLE .. ALTER COLUMN TYPE) No Yes Yes Yes Yes
Concurrent GiST indexes No No Yes Yes Yes
Crash-safe GiST indexes No No Yes Yes Yes
DROP object IF EXISTS No No No Yes Yes
Dollar Quoting No Yes Yes Yes Yes
Holdable cursors Yes Yes Yes Yes Yes
INSERT/UPDATE/DELETE RETURNING No No No Yes Yes
Integrated autovacuum daemon No No Yes Yes Yes
Loadable plugin infrastructure for monitoring the planner No No No No Yes
MVCC safe CLUSTER No No No No Yes
Multiple autovacuum workers No No No No Yes
Multiple input aggregates No No No Yes Yes
Multirow VALUES No No No Yes Yes
ON COMMIT clause for CREATE TEMPORARY TABLE Yes Yes Yes Yes Yes
ORDER BY NULLS FIRST/LAST No No No No Yes
Point-in-Time Recovery No Yes Yes Yes Yes
Row-wise comparison No No No Yes Yes
SQL-standard information schema Yes Yes Yes Yes Yes
Savepoints No Yes Yes Yes Yes
Temporary VIEWs No No Yes Yes Yes
Two Phase commit No No Yes Yes Yes
Txid functions No No No No Yes
Updateable cursors No No No No Yes
WAL-safe B-Tree Indexes Yes Yes Yes Yes Yes
Warm Standby No No No Yes Yes
Performance 7.4 8.0 8.1 8.2 8.3
Asynchronous Commit No No No No Yes
Automatic plan invalidation No No No No Yes
Background Writer No Yes Yes Yes Yes
Cross datatype hashing support No No No No Yes
Distributed checkpointing No No No No Yes
Full Text Search No No No No Yes
GIN (Generalized Inverted Index) Indexes No No No Yes Yes
GiST (Generalized Search Tree) Indexes Yes Yes Yes Yes Yes
Hashing support for NUMERIC No No No No Yes
Heap Only Tuples (HOT) No No No No Yes
In-memory Bitmap Indexes No No Yes Yes Yes
Index support for IS NULL No No No No Yes
Indexes on expressions Yes Yes Yes Yes Yes
Inlining of SQL-functions Yes Yes Yes Yes Yes
Lazy XID allocation No No No No Yes
Multiple temporary tablespaces No No No No Yes
Non-blocking CREATE INDEX No No No Yes Yes
Outer Join reordering No No No Yes Yes
Partial sort capability (top-n sorting) No No No No Yes
SELECT … FOR UPDATE/SHARE NOWAIT No No Yes Yes Yes
Shared row level locking No No Yes Yes Yes
Synchronized sequential scanning No No No No Yes
Table partitioning No No Yes Yes Yes
Tablespaces No Yes Yes Yes Yes
Segurança 7.4 8.0 8.1 8.2 8.3
GSSAPI support No No No No Yes
Native LDAP authentication No No No Yes Yes
Per user/database connection limits No No Yes Yes Yes
ROLES No No Yes Yes Yes
Security Service Provider Interface (SSPI) No No No No Yes
Rede 7.4 8.0 8.1 8.2 8.3
Full SSL support Yes Yes Yes Yes Yes
IPv6 Support Yes Yes Yes Yes Yes
V2 client protocol Yes Yes Yes Yes Yes
V3 client protocol Yes Yes Yes Yes Yes
Internationalização 7.4 8.0 8.1 8.2 8.3
EUC_JIS_2004/ SHIFT_JIS_2004 support No No No No Yes
Multibyte encoding support, incl. UTF8 Yes Yes Yes Yes Yes
Multiple language support Yes Yes Yes Yes Yes
UTF8 support on Windows No No Yes Yes Yes
Plataformas 7.4 8.0 8.1 8.2 8.3
Microsoft Visual C++ Support No No No No Yes
Native Windows Port No Yes Yes Yes Yes
Tipos de Dados 7.4 8.0 8.1 8.2 8.3
Array support Yes Yes Yes Yes Yes
Arrays of compound types No No No No Yes
ENUM data type No No No No Yes
GUID/UUID data type No No No No Yes
NULLs in Array No No No Yes Yes
Type modifier support No No No No Yes
XML data type No No No No Yes
Funções e Triggers 7.4 8.0 8.1 8.2 8.3
ALTER TABLE / ENABLE REPLICA TRIGGER/RULE No No No No Yes
ALTER TABLE ENABLE/DISABLE TRIGGER No No Yes Yes Yes
Per-function GUC settings No No No No Yes
Statement level triggers Yes Yes Yes Yes Yes
Linguagens 7.4 8.0 8.1 8.2 8.3
CONTINUE statement for pl/pgsql No No Yes Yes Yes
EXCEPTION support in pl/pgsql No Yes Yes Yes Yes
IN/OUT/INOUT parameters for pl/pgsql and pl/SQL No No Yes Yes Yes
Named parameters No Yes Yes Yes Yes
Non-superuser language creation No No No No Yes
Number of function arguments increased to 100 No No Yes Yes Yes
Polymorphic functions Yes Yes Yes Yes Yes
Qualified function parameters No No No No Yes
RETURN QUERY in pl/pgsql No No No No Yes
ROWS and COST specification for functions No No No No Yes
SQLERRM/SQLSTATE for pl/pgsql No No Yes Yes Yes
Scrollable and updatable cursor support for pl/pgsql No No No No Yes
Validator function for pl/perl No No Yes Yes Yes
Módulos Adicionais 7.4 8.0 8.1 8.2 8.3
contrib/adminpack No No No Yes Yes
contrib/btree_gist No Yes Yes Yes Yes
contrib/dblink Yes Yes Yes Yes Yes
contrib/dbsize Yes Yes Obsolete Obsolete Obsolete
contrib/fuzzystrmatch Yes Yes Yes Yes Yes
contrib/hstore No No No Yes Yes
contrib/intarray Yes Yes Yes Yes Yes
contrib/isn (ISBN) No No No Yes Yes
contrib/ltree Yes Yes Yes Yes Yes
contrib/pageinspect No No No No Yes
contrib/pg_autovacuum Yes Yes Obsolete Obsolete Obsolete
contrib/pg_buffercache No No Yes Yes Yes
contrib/pg_freespacemap No No No Yes Yes
contrib/pg_standby No No No No Yes
contrib/pg_trgm No Yes Yes Yes Yes
contrib/pgbench Yes Yes Yes Yes Yes
contrib/pgstattuple Yes Yes Yes Yes Yes
contrib/seg Yes Yes Yes Yes Yes
contrib/sslinfo No No No Yes Yes
contrib/tablefunc Yes Yes Yes Yes Yes
contrib/tsearch2 Yes Yes Yes Yes Obsolete
contrib/tsearch2 UTF8 support No No No Yes Obsolete
contrib/tsearch2 compat wrapper No No No No Yes
contrib/userlocks Yes Yes Yes Obsolete Obsolete
contrib/uuid-ossp No No No No Yes
contrib/xml2 No Yes Yes Yes Yes

Justificativas de Programadores

Estou escrevendo algumas frases que estão em minha mente a respeito das justificativas mais rotineiras dadas pelos programadores quando algo dá errado. Eu mesmo já usei algumas.

  1. Trabalha na minha máquina para você ver
  2. Não tenho tempo
  3. Tava rodando agora mesmo
  4. Acabei de testar e agora parou
  5. Tá quase pronto
  6. Tá funcionando, mas não testei
  7. Esse problema está na rede
  8. O banco está desatualizado
  9. Não sei o que houve (campeã)
  10. Pedi para o cliente testar e ele não me disse nada
  11. O usuário é que não sabe mexer
  12. Essa funcionalidade neste prazo não dá
  13. Vou tomar um café e na volta vai rodar
  14. Isto não estava assim. Alguém mexeu aqui!
  15. E ninguém me avisa?
  16. É mentira dela, está funcionando!
  17. O problema é o PostgreSQL, tem que dar vaccum!
  18. Funcionando está, mas não do jeito que você esperava…
  19. Veja bem: O Senhor tem toda a razão, mas este é um sistema com funcionalidades em tempo real o qual demanda necessariamente toda uma…
  20. Sempre que mostro o programa pra alguém para de funcionar
  21. Tá funcionando, é só vc não apertar esse.. não!!
  22. Eu testei o dia todo!
  23. Tava funcionando direitinho na minha máquina.

Vou comentar nos próximos posts algumas situações onde estas frases são mais utilizadas. O pessoal está me mandando novas frases. Está ficando muito legal. Querem conhecer os demais autores? Vejam nos comentáris. Vou somar as minhas.

Um verdadeirio show de embromação. Meu caro amigo(a). Não sabe o que dizer para o chefe? Inspire-se em nossas frases.

Tutoriais de Rede

Confira neste post ótimos sites com tutoriais de rede.

Read more »

Cómo capturar los datos de un formulario html con un servlet

Acesse o link abaixo para saber como capturar dados de um formulário (tutorial em espanhol)

Cómo capturar los datos de un formulario html con un servlet

Struts Tutorial

Tutoriais J2ME

Sites Java

Servlets e JSP

Criando uma aplicação Tomcat4 com MySQL