The yX Side


A ineficiência do uso de timesheets…

Enviado em Uncategorized de yurix no Outubro 17, 2007
Tags: , ,

Bom… muito tempo sem postar mostra o quando minha vida esteve ocupada nos últimos meses. Nos próximos posts falarei um pouco sobre minhas andanças sobre a America Latina, mas antes disso, quero falar sobre algo que me incomoda no dia dia (e você também) que é o preenchimento das atividades realizadas no dia, a.k.a. Timesheet.

Algum tempo suspeito (empíricamente) que o uso de timesheet é totalmente inadequado para o gerenciamento do desenvolvimento de software, principalmente no que diz respeito a quantidade de horas trabalhadas.

Pois:

  • O preenchimento de timesheet é chato;
  • O preenchimento de timesheet toma tempo;
  • Desenvolvedores difícilmente preenchem o timesheet diariamente;
  • Timesheets preenchidos muito tempo depois são mentirosos;
  • Entradas do timesheet são maquiadas;

Imaginando que estaria sozinho neste pensamento (Mentira… todo mundo odeia timesheet) me deparo com o blog de Jeff Sutherland - um dos pais do SCRUM - em que ele mostra a seguinte imagem:

TimeSheet Correlation

Correlação entre o tempo de programador e a qualidade do software.

Ele diz que:

“Atualmente time sheets são tão ruins quanto burros:

  • Desmotivam os desenvolvedores
  • 10-15% de perda de produtividade (No mínimo)
  • Desenvolvedores simulam o tempo preenchido em vez de preencher corretamente
  • Relatórios com dados errados são usados para a tomada de decisão
  • Clientes são enganados
  • Não tem nada haver com a qualidade do código
  • O foco da organização é em dados falsos e não na real produção”

Ainda mais:

  • Não existe correlação entre o tempo do desenvolvedor e a produção do software
  • Não existe correlação entre o tempo gasto e a qualidade do código
  • Não existe relação entre “pessoas qualificadas” e a producão de código

Ou seja… time sheet atualmente não serve pra nada.

Por fim, termino este post com está frase de Jeff:

“Trust me, you need to dump those lame time sheets and get focused on real software production before an Agile competitor puts you out of business!”

Paul Potts - Nessun Dorma totalmente owned!

Enviado em Uncategorized de yurix no Setembro 7, 2007

Andando pela internet, à procura de músicas de Pavarotti , sim, ele mesmo… - minha infância foi repleta de cds de Pavarotti - encontrei no youtube um vídeo que me surpreendeu bastante. Este vídeo é a apresentação do Paul Potts - hein??? - calma.. vou contar a história…

Paul Potts é (era) um vendedor de celular que em uma apresentação simples e excelente surpreendeu todos os jurados - com aquele ar de désdem - do programa Britain’s Got Talent (Similar ao Ídolos do SBT), ou seja, ele deu um owned em todos que zombavam ou dúvidavam da sua capacidade ao dizer que ia cantar ópera.

Imperdível!

SaaS 2, o que um livro sobre SaaS deveria ter?

Enviado em Componentes, Modelos de Negócio, Software As Service, Software Business, web2.0 de yurix no Abril 25, 2007

single instance, multi-tenancy is still a black art that only selected few have been able to master”

Esse post é rápido… mas é interessante.

Em SaaS is a journey, walk with us, Fred Chong (Arquiteto da Microsoft) indica o que seria interessante ter em um livro sobre SaaS. O melhor é que ele e seu amigo Gianpolo começaram a jornada produzir este livro. Então aí vai…

Sumário:

1. Introduction

* Definitions
* Differences from traditional ASP model
* SaaS value proposition
* Realizing SaaS = business model + application architecture + operation structure

2. Business Model

* Revenue and licensing model
o Additional services revenue: configuration and customization
* Sales compensation model
* Types of software services
* Designing SaaS SLA and contracts

3. Application Architecture Overview

* Instancing and multi-tenancy
* Comparisons of application architecture: on-premise, ASP, SaaS
* SaaS maturity model
* SaaS application architecture issues: identity, data, workflow, messaging, design for manageability, service-orientation, scaling, tenancy, meta-data, service consumption etc.
* Overview of SaaS capabilities and enablement architecture

4. Scaling 101

* Pools: thread, connections etc.
* Async
* Locks
* States
* UI/Presentation

5. Data Management

* Partitioning for scaling and performance
o Data partitioning schemes: Spatial, temporal, hashing etc., SQL Server 2005 support for data partitioning
o Data distribution patterns and functions
o Dynamic partitioning: re-partitioning growing database
* Data availability
o Replication strategy

6. Tenant Management

* Data model for tenant management
* Subscription Management
* Identity management
o Models
*

Delegated administration
*

Identity federation
*

Hybrid: e.g. federation for tenants and delegated admin for tenants’ customers.

7. Tenant Customization

* Meta data service for customization
* Approaches for extending application data model
* Approaches for UI customization
* Approaches for business process customization
* SaaS and system integrations modes:
o In house systems to SaaS integration (main app is in house)
o SaaS to in house systems integration (SaaS is the main app)
o SaaS with partial SaaS solution hosted on premise
o SaaS to SaaS integration

+ Direct
+ Hub-and-spoke through SaaS integration platform (like Salesforce’s AppForce)

8. Application and Data Security

* Common authentication schemes: username/pwd, certificates
* Application single sign-on
* Securing data transfer
o Application security session
o Session data integrity and privacy
o Transport vs. application level security
* Authorization
o Schemes: ACL, RBAC, business rules
o Policy management: distributed/resource, centralized
* Application security abstractions:
o Tokens, claims, security token services, security policies
* Trusted sub-system model for securing application tiers
* Identity context propagation
* Secret/key management: for application and tenants
* Data isolation schemes

o Database access control: RBAC, views etc.
o Partitioning:
+ Logical: tables, databases
+ Physical: disks
o Database encryption

9. Programmable Software Services

* Software service lifecycle
* Service versioning
* Service certification, registration and publication
* Software service registry
o Requirements
o Architecture

10. Programmable Software Service Consumption

* Function vs. data oriented services (web service vs. RSS vs. REST etc)
* Composite applications
* Tools and community framework

11. Instrumentation and Monitoring

* Types, goals and audience of instrumentation: infrastructure, application stack, business logic
* Instrumentation constructs: counters, events, rules, threshold, alerts
* Health monitoring
* Availability monitoring
* Business performance monitoring

12. Configuration Management

* Change management requirements
* Configuration management architecture

13. Metering

* Usage models
* Data model for each metering
* Usage tracking architecture

14. Infrastructure Security

* Network and firewall design
* Intrusion detection
* Protecting against viruses and worms
* Protecting against denial of service attacks

15. Operation Structure

* Provisioning
o Infrastructure
o Application
o Tenants
* Disaster recovery
* Billing
* Network operation center
* Call center

Appendix

* SaaS enablement roadmap: from on-premise and ASP to SaaS
o Scenarios and SaaS enablement strategy
* Enabling SaaS to on-premise solution migration
o Deploy existing SaaS solution and subscription to on-premise
o Need to de-mingle data to be hosted on-premise

Software As Service (SaaS), Mashups… etc

Enviado em Modelos de Negócio, Software As Service, web2.0 de yurix no Março 30, 2007

Este novo(será?) modelo de negócios vem revolucionando a forma como iremos construir nossas aplicações futuras. Em vez de nos preocuparmos em (re) desenvolver nossas aplicações, iremos apenas acessar(ws,rest) API públicas(ou pagas… tsc tsc) que já implementem o serviço necessário.

Esta idéia não é necessariamente nova, pois a maior promessa do Desenvolvimento Baseado em Componentes (DBC) é justamente a mesma. A grande diferença é que no SaaS não existe deploy dos componentes(API) e os vendedores de serviço possuem um maior controle sobre seu negócio (leia-se fiscalização, pirataria ZERO!!) e liberdade de negociação com os compradores do serviço.

Mas o que seria esse maior controle? Pense que no modelo de negócios atual software é considerado como um produto fechado (Televisão, Computador, Geladeira…) , ou seja, a principal esquema de negóciação é aquele em que o usuário deseja um sistema, vai lá na prateleira (Ou na softwarehouse), compra e leva para casa para a implantação. Este modelo tradicional é conhecido como pay per copy(pague por cópia), e atualmente possui um alto grau de pirataria, pois com cada cópia do software vai um serial válido para o registro do software. E como todos nós sabemos, estes seriais podem ser compartilhados ou gerados (com os key gen’s). Observe que é a empresa de software que arca com os prejuízos da pirataria.

Neste novo modelo o software é considerado como serviço (TV a Cabo, Luz, Esgoto). Ou seja, de acordo com seu desejo (ou necessidade) você vai lá adquire o serviço(Um mashup com o Google Maps e um banco de dados geográfico da sua cidade, por exemplo) e quando não mais desejar você vai lá e cancela. Este modelo é conhecido como pay per use (pague pelo uso), a vantagem deste modelo é justamente o usuário ser responsável pela utilização do sistema principalmente sobre preço que irá pagar, além de que o vendedor do serviço sabe com certeza quem está utilizando o serviço, agora sendo capaz de bloquear os pirateiros.

Apesar de bloquear os pirateiros, este modelo não está imune a pirataria. Pois, assim como na vida real irá existir a figura do “gato” (Sim… ele mesmo, o mesmo “gato” da luz e da tv a cabo…), ou seja, a pessoa que terá acesso ao serviço utilizando a credencial de outra pessoa.

Observe que neste modelo a pessoa “lesada” é quem fica com o prejuízo da pirataria.

Sendo assim o Software as Service não vem apenas facilitar a criação rápida de aplicativos (Reuso de fato), mas também proteger as empresas produtoras de software com respeito a pirataria.

Você tem dúvidas de que o SaaS irá pegar?

Obs.: Neste post ainda ficou faltando abordar a liberdade de comercialização dos serviços no SaaS.

Por fim, vai um videozinho do youtube sobre a plataforma Apollo.

Web2.0 Folksonomy (Tagging)? WTF?

Enviado em Folksonomia de yurix no Março 16, 2007

Um dos fenômenos mais interessantes da web 2.0 é a folksonomia ou tagging, que nada mais é do que associar um contexto (várias keywords) a uma informação em uma base compartilhada. Sendo assim, a grande inovação dos sistemas tagged’s é proporcionar uma busca contextual (Filtragem de Informações) mais eficaz do que os sistemas non-taggeds.

Ou melhor:

“Tagging-based systems enable users to categorize web resources by means of tags (freely chosen keywords), in order to re-inding these resources later. Tagging is implicitly also a social indexing process, since users share their tags and resources, constructing a social tag index, so-called folksonomy.”

Yusef Hassan-Montero  and Víctor Herrero-Solana

Em Improving Tag-Clouds as Visual Information Retrieval Interfaces 

Legal… mas o que isso tem demais? Bom, ao meu ver o interessante é que isto demonstra que estamos em um novo estágio da internet… em que nós (Eu e você inclusive!)  estamos  entendendo que a internet só tem significado e utilidade se as informações existentes forem encontradas de maneira simples e eficaz.  Então sempre que disponibilizar um conteúdo na web… tag nele!!

Obs.: Claro que para todos os outros problemas existe o google… quem sabe o google não cria uma base de dados universal para tag’s?? Google Base???

A review sobre o paper:

  •  Fala sobre um novo modelo de popular nuvens de tag’s levando em consideração a interelação entre as tags.
  • Relevância para meu estudo: 4
  • Inovação: 8
  • Relevância para mim: 10 (Gostei do assunto…)

 

Component Description United!!!

Enviado em Componentes, Descrição de Componentes, RAS de yurix no Março 13, 2007

Como criar um padrão de fato para descrever componentes de software?? Esta é uma pergunta interessante, mas até hoje não respondida. Seria esta a pergunta de um millhão de doláres?? Em minhas lectures sobre componentes e mercados de componentes me deparei com um mais um paper (Component Market Specification Demand and
Standardized Specification of Business Components
) que apresenta informações relevantes que devem ser consideradas em uma descrição de componente… apesar do dito cujo fazer o favor de apresentar/relembrar diversos conceitos, como design by contract, the importance of component markets, composition. Sua maior importância foi justamente relembrar o meu questionamento interno sobre a importância da padronização.

Muitos esforços foram guiados neste sentido nos últimos anos, basta lembrar que em diversas conferências internacionais a descrição de componentes sempre esteve presente em algum paper.

Estes estudos e as necessidades da industria culminaram na aprovação do DRAFT da OMG para a especificação RAS (Reusable Asset Specification). Eis que o problema parecia estar resolvido e que em breve teriamos uma enxurrada de players dando suporte a especificação em suas ferramentas e repositórios… mas como de praxe(Ou praga?) isto não ocorreu (OMG hahahaha).

Para não ser mentiroso, o único player que mexeu um dedo foi a IBM que implementou em 2005 um repositório simples (RAS4W) e deu um leve suporte em sua suíte de desenvolvimento (WSAD).

Mas e agora? O que vamos fazer??? Pense que se uma especificação com grandes players (IBM, Microsoft, Flashline, ComponentSource…) não virou padrão, qual seria a chance de outra especificação tomar este lugar???

Tenho a sensação que está resposta está atrelada a tão falada WEB2.0 e seus formatos de descrição.

Claro que a idéia não é provocar uma reviravolta em todos os estudos sobre descrição de componentes…. e sim tornar a descrição algo simples e fáctivel.

Como exemplo, temos o sucesso do RSS.

Mas…. o que está abordagem difere das existentes?? Vale lembrar que a criação de um mercado GLOBAL de componentes é um dos requisitos para o sucesso do DBC, e já que esperar que todos iteroperem a nível de repositório é impraticável, poderiamos ao menos sonhar que as descrições dos assets(ativos) possam ser intercambiáveis. Já imaginou realizando uma busca no google(ou froogle) através destes metadados??? E  o oráculo respondendo todos nossos anseios na busca de componentes?

Para não perder o costume, aí vai o meu review…

* Review do Paper (Relevância: 8 / Inovação: 2 )

* Obs.: Um aspecto interessante do texto são as definições de termos recorrentes.

Ex.: We define a component market as an abstract place where components are exchanged and their value is determined by the bidding process between the supplier and the user of components.

Planejamento para 2007

Enviado em Planejamento de yurix no Março 8, 2007

Como sempre atrasado e sem tempo, vou tentar elaborar um planejamento (promessa??) e as atividades que estou realizando para cumprir este plano para este ano…

  • Plano: Melhorar conhecimento sobre estrutura de Dados e Algoritmos
    • Atividade: Cadeira do Mestrado Complexidade de Algoritmos e Estrutura de Dados
  • Plano: Criar senso crítico na área de B2B e Component Business Models
    • Atividade: Leitura de White Papers
    • Atividade: Comprar um livro de B2B
    • Atividade: Ler este livro!!!!
    • Atividade: Escrever um artigo em inglês falando sobre isto
  • Plano: Ficar seguro e tranquilo quanto aos conceitos e padrões j2ee
    • Atividade: Estudar intensamente os padrões J2ee do Livro Core j2ee patterns
    • Atividade: Ministrar o curso de Padrões da Dataprev em junho (40hrs)
  • Plano: OSGI: Fundamentos e conceitos.
    • Atividade: Desenvolver um exemplo de aplicação usando OSGI
  • Plano: Arquitetura de Software
    • Atividade: Estudar conceitos e sua funções em um processo de software
  • Plano: Repositórios de Software e Web 2.0
    • Atividade: Desenvolver um repositório usando apenas web 2.0
    • Atividade: Elaborar uma apresentação sobre a web 2.0 e apresentar em algum congresso/seminário.
    • Atividade: Atuar como consultor
  • Plano: Direito
    • Atividade: Estudar direito Constitucional e Administrativo, para não ser um zé mané.

Desafios no Negócio de Componentes de Software

Enviado em Componentes, Modelos de Negócio, Software Business de yurix no Março 1, 2007

Normalmente as pequisas sobre DBC (CBD?) focalizam em áreas técnicas, deixando de lado um importante desafio (talvez o mais importante…) que é a venda de componentes de software. Negligenciar esta área talvez tenha sido um dos grandes fatores para a lentidão no surgimento e aceitação dos mercados de componentes (ie. ComponentSource) e até hoje uma das grandes dificuldades para a migração de empresas que se baseiam em projetos para o mundo de produtos.

O artigo apresenta uma visão geral sobre o mercado de componentes, enfatizando as dificuldades (Software standardisation, lack of quality components…) e a diferença entre o modelo tradicional de desenvolvimento (Project) para o modelo adequado para componentes (Product). A maior contribuição do trabalho é um estudo empírico sobre as relações B2B entre Customers e Component Suppliers.

OBS.: Interessante a Tabela 1 que apresenta uma comparação entre Software Project Business X Software Product Business.

Visualizar White Paper (Nina Helander & Paulina Ulkuniemi)

Meu review: 7 - Interessante, mas muito confuso.

Talvez seja a dificuldade inicial de entrar em uma nova área.

Hello world!

Enviado em Uncategorized de yurix no Fevereiro 28, 2007

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!