Scrum, com motivos e tudo mais!

31/03/2009 22:31

Finalizando o curso de Scrum logo percebi que muitos dos conceitos simples empregados pela metodologia tocam no essencial para um projeto de software bem sucedido. No final do ano passado escrevi um post que falava sobre motivação, e uma das coisas que mais me chamou a atenção no Scrum foi justamente o modelo eficaz de trabalhar a motivação no time.

Continuarei estudando mais sobre o assunto, assimilando tudo que aprendi no treinamento, mas muita coisa já faz sentido para mim agora.

Scrum



SQL Server 2008 (parte 10) – Report Builder 2.0

30/03/2009 21:19

Desde a versão 2005 o SQL Server disponibiliza uma ferramenta muito útil para criação de relatórios para o Reporting Services, chamada Report Builder. Com o SQL Server 2008 foi lançada a versão 2.0, incluindo diversas melhorias gráficas e maior facilidade no uso, contudo ainda é uma ferramenta direcionada a usuários avançados. O Report Builder 2.0 pode ser baixado a partir desse link.

Abaixo coloquei alguns screenshots do Report Builder 2.0. De fato, a criação de relatórios é bem simples, o Report Designer tem o layout semelhante ao Office 2007.

ReportBuilder2_01

Os gráficos criados podem ser publicados diretamente no Reporting Services Server, ou salvos localmente para consultas futuras. Abaixo um exemplo de relatório matricial.

ReportBuilder2_02

A nova versão suporta diversos tipos de gráficos, incluindo o Gauge.

ReportBuilder2_03

Até o próximo post!

SQL Server



SQL Server 2008 (parte 9) – Compound Operators

26/03/2009 23:19

Essa é uma melhoria do T-SQL, operadores compostos servem para executar uma operação sobre um dado valor, por exemplo:

DECLARE @Medida FLOAT = 27;
SET @x1 *= 0.567;
SELECT @Medida AS Fator;

No exemplo acima a variável @Medida recebe inicialmente o valor 27, na linha 2 é utilizado o operador composto *= que realizar uma operação de multiplicação do valor original da variável pelo número 0.567. Esse é um recurso presente em inúmeras linguagens de programação, no T-SQL temos as seguintes opções:

  • += (adiciona no valor original)
  • -= (subtrai do valor original)
  • *= (multiplica no valor original)
  • /= (divide do valor original)
  • %= (modulo do valor original)
  • &= (operação de bitwise “AND” sobre o valor original)
  • ^= (operação de bitwise exclusivo “OR” sobre o valor original)
  • |= (operação de bitwise “OR” sobre o valor original)

Até o próximo post.

SQL Server



Scrum então!

25/03/2009 23:25
Há algum tempo acompanho relatos de casos de sucesso na implantação de Scrum. Nessa semana estou fazendo o treinamento oficial, ministrado pelo Alexandre Magno (CST) na Caelum, e gostei do que vi até agora, embora tenha várias dúvidas sobre como introduzir essa metodologia em clientes acostumados ao modelo waterfall de projetos. Até o final do treinamento espero ter essa resposta, ou ao menos um caminho.
Smile

Scrum



Uma página, IE8… pressione F12.

24/03/2009 00:15

Podem falar o que quiser, eu achei fantástico!

Dicas



SQL Server 2008 (parte 8) – Sparce Columns

23/03/2009 08:15

Em alguns casos o armazenamento dos dados deve ser cuidadosamente pensado para otimização, algum requisito específico de consulta pode ser menos importante que o espaço utilizado. Nesse sentido o SQL Server 2008 oferece um novo tipo de coluna chamada Sparce Column.

Para criar uma Sparce Column, utilize a palavra reservada SPARSE, conforme código a seguir:

CREATE TABLE Colaborador
(
	ColaboradorId int PRIMARY KEY,
	Nome varchar(80) NOT NULL,
	Titulo varchar(20) SPARSE NULL,
	TipoColaborador smallint SPARSE NULL
) ;
GO

Algumas considerações importantes sobre Sparce Columns:

  • Uma coluna do tipo Sparce Column deve ser definida como NULL;
  • Não pode ser dos tipos: text, ntext, image, timestamp, user-defined data type, geometry, ou geography; ou possuir um atributo FILESTREAM;
  • Não deve conter um valor default ou rule;
  • Uma coluna calculada não pode ser declarada com Sparse Column;
  • Não pode fazer parte de um índice;

Pelo fato das colunas do tipo Sparse aumentarem a sobrecarga de consulta para valores não nulos você deve considerar sua utilização quando o espaço ganho for de 20% a 40%, pelo menos. Um boa opção é a utilização em conjunto com Filtered Indexes, pois é possível indexar apenas linhas que contenham valores preenchidos criando um índice menor.

Até o próximo post da série.

SQL Server



SQL Server 2008 (parte 7) – Filtered Indexes

20/03/2009 23:52

Dando continuidade a série sobre as novidades do SQL Server 2008 veremos hoje o que são Filtered Indexes.


FILTERED INDEXES

A idéia é simples: índices criados com critério de filtro, ou seja, com uma cláusula WHERE, que usados corretamente podem conferir um ganho de performance interessante. Usar corretamente significa planejar a criação de um índice levando em consideração o tipo de consulta que será realizado, frequência de utilização, como os novos registros serão inseridos, e por aí vai.

Vamos ver como podemos criar filtered indexes criando primeiramente a seguinte tabela:

CREATE TABLE [dbo].[Colaborador]
(
   [ColaboradorId] [int] IDENTITY(1,1) NOT NULL,
   [Nome] [varchar](50) NOT NULL,
   [Email] [varchar](50) NULL,
   [Bonus] [int] NOT NULL,
   [TipoColaborador] [int] NULL,
   CONSTRAINT [PK_Colaborador] PRIMARY KEY CLUSTERED 
   (
      [ColaboradorId] ASC
   )
   WITH 
   (
      PAD_INDEX = OFF, 
      STATISTICS_NORECOMPUTE = OFF, 
      IGNORE_DUP_KEY = OFF, 
      ALLOW_ROW_LOCKS = ON, 
      ALLOW_PAGE_LOCKS = ON
   ) ON [PRIMARY]
) ON [PRIMARY]
GO

Criaremos agora um índice com filtro, da seguinte forma:

CREATE NONCLUSTERED INDEX TipoColabIndex 
ON dbo.Colaborador(TipoColaborador)
WHERE TipoColaborador = 1;
GO

O código acima criará um índice para a tabela Colaborador levando em consideração um filtro pela coluna TipoColaborador com o valor igual a 1. Desta forma, o optimizer do SQL Server poderá usar o índice quando necessário. Até o próximo post.

SQL Server



Cantinho das crianças?!?!

19/03/2009 23:17

Sinceramente, não consegui formar uma opinião completa sobre isso:

http://msdn.microsoft.com/pt-br/beginner/bb308754.aspx

http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx

Acho que estou ficando velho… e rápido demais.

Reverberando