Saturday, December 13, 2008

Host Deep Zoom project on Silverlight Streaming

It is possible to host a Deep Zoom project with all it's images on
It doesn't seem possible at first because the interface asks you to upload only the xap file. So ... where do we put the images ? You just need to do some "magic" as explained here

Here is a sample project hosted there.

Unexpected browser crash with Silverlight 2

I'm developing a Silverlight application that uses the MultiScaleImage control and also some text overlays that i'm scaling according to the Deep Zoom scale. Very often the browser (Internet Explorer, Firefox and Chrome) crashes.

It seems there is an issue mixing ScaleTransform and MultiScaleImage control as also posted on the Silverlight Forums

The Application that has this problem is this one when you enable the checkbox useScaleTransform, but with a different Deep Zoom output. with the one shown here does not seem to reproduce the problem :(

Here is the entry on the event viewer:

Faulting application IEXPLORE.EXE, version 7.0.6000.16764, time stamp 0x48f6a2ed, faulting module ntdll.dll, version 6.0.6000.16386, time stamp 0x4549bdf8, exception code 0xc0000029, fault offset 0x000675fc, process id 0xf18, application start time 0x01c95d5ad4de2d60.

Tuesday, October 14, 2008

UX Week with Peter Morville

Due to the incresing importance of the user experience and the way information is organized in a site, Fullsix invited Peter Morville to present a series of workshops about: User Experience, Information Architecture and Findability.

These workshops will happen in November in Lisbon:

- 3rd Nov - User Experience Strategy: Public Talk at Microsoft Portugal.

- 4,5th Nov - User Experience Workshop (2 days)
- 6th Nov - Information Architecture & Search Workshop (1 day)

More information can be found at

Technorati :

Thursday, October 09, 2008

Classic Mistakes

Eight years ago I read the book Radid Development by Steve McConnell. In this book Steve presents the classic mistakes in software development and I found it "very funny" to notice that my company was doing exactly the same mistakes that Steve pointed out like: Feature Creep, Gold-Plating, Adding people to a late project, etc.

Today I came across a interesting whitepaper where Construx updates these classic mistakes after surveing 500 Software Practicioners. They introduce some new classic mistakes like Confusing estimates with targets or Excessive multi-tasking among others.

Thursday, August 28, 2008

Quick Start to Sprint Backlog template

I started using Mitch Lacey's Sprint Backlog Templates in our scrum projects. Here is a small guide to help someone new to it quickly start using it.

A. Preparing the ground ­ - The initial tasks you need to do to prepare the template for your project:

1. Fill in the team roster. The Alias will be used in the other sheets (Driver column in the Sprint Sheet). The alias should not changed after the other sheets are filled (unless you change sprint data - Column Sprint!$F).

Fill in any extra information about the team. All information besides the alias will be purely informational.

Also in this sheet, you should fill in the Sprint Vision (Team Roster!$C$4) so it is clear for all members of the team.

2. Set the sprint start date in Capacity!$E$3

If your dates are not in US format you need to manually change the week days in column D because formula for I6 expects English week days.

3. Specify your options for the project in the Analysis!E40:E47:

a. SkipWeekends (Analysis!E40) - (0=30 calendar days; 1=30 working days). Set to 1 to have dates skip over weekends (30 working day sprint, >30 calendar day sprint). Do not switch after Sprint has started or data will be stored under wrong days.

b. DailyScrumDateModifier (Analysis!E41) -Number of days added to or subtracted from today's date to ensure the highlighted date column in the sprint worksheet corresponds to the day of the current daily Scrum meeting. In the Spint worksheet, Today's day will be highlighted. This value adjusts the day that is highlighted. Negative number to go back from today's date; positive number to go forward from today's date.

Do not change the Workbook-Wide Constants These are constants for the formulas used elsewhere.

4. Define your functional areas in Project Specific Reports!A9:A24. If you need to change the number of columns you will need to adjust the Data validation of columns B of the Sprint Worksheet by going to Data, and then Data Validation menu.

5. Fill in the Sprint Backlog items

a. Worktype - select between Feature, Tax, Precondition or spike

i. Feature - describes functionality that will be valuable to either a user or purchaser of a system or software.

ii. Tax - A tax is the cost of doing business

iii. Precondition - Preconditions are items that must happen at the completion

iv. Spike - Brief experiment to learn more about an area of application. Timeboxed, which allows the spike to be estimated.

b. Deliverable Area - You can select from the functional areas of your project that you defined in step 4. This will allow you to get a report based on the functional areas.

c. Product Backlog Item or Group -

d. Work Item ID - The Id of the work item.

e. Sprint Work item Description - Description of the work to be done.

f. Driver - Who will be responsible to drive this work item.

g. Status - it is automatic set for "Complete";"In progress" and "pending". You can manually add "Postponed" and "Cancelled", so it shows up in the reports.

h. Pri - Priority of the Work item

i. Initial - The initial estimate for this work item.

B. Daily updates - The daily information to be updated on the template.

On the end of the day or the morning of the next day each person of the team needs to update the time spent with each work item and re-estimate the remaining time to complete the task.

Go to the correspondent Day of the iteration and fill :

1. Spent - Time spent during that day with that work item

2. Left - The remaining time to complete the work item. It can be higher then the previous Left value due to new knowledge you acquired during that day.

C. Analysis - Checking the flow of the sprint

On the Analysis worksheet you can see the burndown chart per items and hours and several other overall indicators that are self explanatory.

Tuesday, July 29, 2008

Week of Scrum / Agile events in Lisbon

A Fullsix is organizing one more series of scrum events in Portugal in September.

There will be another Certified Scrum Master and Agile Estimation and Planning workshop. The news is the "Agile Requirements Gathering" workshop and the first meeting of the Scrum Alliance Portuguese group.

Here is the list of events:

Certified Scrum Master - 15 / 16 September 2008

Agile Estimation and Planning - 17 September 2008

Agile Requirements Management -18 September 2008

First Annual Scrum Portuguese Users Group Meeting -19 September 2008

Tuesday, May 20, 2008

Moving the IT Infra-structure into the datacenter or the cloud !?

My company is growing considerably. We have a small room that we call our "datacenter" but it's just a room with minor adjustments in order to support our IT infra-structure. Since we are now just reaching the 100 employees mark, our "datacenter" needs to grow in order to accomodate our needs and also to provide the features that will avoid failures and the inevitable downtimes.

I started asking for quotations for revising our datacenter having these things in mind:

  • "Professional" Ar conditioning
  • Access control
  • easy passing of cables
  • "Professional" UPS with separated energy
  • Fire detection and prevention
  • wall layout change
  • etc

I started thinking if it made sense to make such an investment on a local "datacenter", and two alternatives came to mind:

  1. Moving the local infra-structure to a professional Datacenter

  2. Starting the shift to the so called "Software-as-a-Service" (SaaS)

I think any of these alternatives would provide a more professional service with less costs in hardware and people to administer it. It would obviously increase the communication costs and the dependency on communication links. Another benefit would be the ease whenever the company would need to change it's headquarters.

1. Moving the local infra-structure to a professional Datacenter

All servers and storage would move to a professional datacenter where we would be able to connect over a fibre optic channel. Only local communication hardware and some local high demanding storage would stay in the company premises. All else would be housed at the datacenter. Products like Riverbed could help on the bandwidth optimization of the link to the datacenter.

This option would provide professional services for housing your machines: cooling, ups, access control, 24x7 service, fire and temperature control, etc. It would also allow you to grow as you go, without the need to have major changes on your local office. Possibly we could use their backup robots and a NAS storage ... not having to invest in your private solution.

2. Starting the shift to the so called " Software-as-a-Service " (SaaS)

Forget about any investments on the local datacenter, and migrate services into the cloud.

If I sum the anual cost of delivering Microsoft Exchange to our employees: Anti Virus, The OS license, the Exchange License, the CAL's, The System Administration time, the cost of downtimes, etc, it will surely be higher then any of the SaaS options out there like Exchange Hosted Services or Google Apps. Besides, the SaaS model for email would provide some functionalities that I don't have on my current model, like the possibility to search the index of all email remotly (If I have local PST's they are not availble over Outlook Web Access ).

There is allways that fear of losing control and security concerns when moving to SaaS, but ... do you keep your money under the mattress or int the bank ? With time, confidence in the SaaS providers will for sure increase and using their services will be as normal as putting your money in the bank.

Here are some services that I see feasible of migrating into the cloud: Exchange Hosted Service

  • Spam Filters

Also, instead of using a SaaS, another alternative of having the server locally or a hosted datacenter is to use Amazon EC2 . It is a is a web service that provides resizable compute capacity in the cloud. One EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit, 160 GB of instance storage, 32-bit platform ) costs around 72 USD per month (depending on the used bandwidth).

Please share with me your thoughts :)

Friday, May 16, 2008

Mechanical Turk and The Sheep Market

Amazon has a very interesting service called "Mechanical Turk".

Mechanical Turk is a Crowdsourcing Marketplace for work. You can offer work to be done by others (paying for it) or you can offer your services (and be reward by it).

The offered taks are ones that can only be made by humans (HIT = Human Intelligence Tasks). The big advantage of using this service is the massive laboral capacity that it offers and reduced cost.

I rethought about this service when I saw a presentation by Aaron Koblin at the OFFF festival. Aaron put up a task on Mechanical Turk offering 2 cents to people that draw him a sheep. He gathered 10,000 drawings of sheep, made a book and a website available at Besides the idea beeing funny and allowing him to win some money by reselling the drawings, it shows the capacity of the Mechanical Turk service.

Mechanical Turk puts at our disposal a very ease way to use a huge humanal laboral capacity.

Here is a video of Aaron presenting the project, and also some statĂ­stics about it.

Thursday, May 15, 2008

Agile Documentation

One of the principles of the Agile Manifesto is "Working software over comprehensive documentation".

This usually rises the question of how much documentation is the right documentation !?

I posed this question to Mitch Lacey on his interview. You can see his answer here. But today while reading the Agile Database Techniques book I noticed a section about Agile Documentation which I found very interesting.

Here is the summary from that section of the book:

Wednesday, April 30, 2008

Case insensitive search in mssql

Recently I needed to make a case insensitive search on a table in Microsoft SQL Server.

Because I wanted to overcome common incorrect type errors on the names of people, I needed that this particular search be accent insensitive.

After implementing another alternative I found I could do it in a better way:

select * from names

WHERE (name COLLATE Latin1_General_CI_AI) LIKE '%antonio%'

The list of collations can be obtained by consulting:

SELECT * FROM fn_helpcollations()

Pareto law and Powerpoint presentation viewer

One of the tools that clearly shows the Pareto Principle - in which 80% of the funcionalities take 20% of the implementation time, and the other 20% take 80% of the time (and are rarelly used) - is Presentation Viewer in Microsoft PowerPoint.

Most people don't know this functionality of powerpoint , which is extreamly usefull. It has been available since 2001 and for sure took a considerable time to implement.

Presentation viewer allows the person presenting to view on his screen more information then the one that is shown to the rest of the audience. This way the presenter can see the slide notes, the next slides, the elapsed time, etc, in order to better manage his presentation.

Monday, April 07, 2008

Agile and Scrum events on the week of 21st of April

Following the success of Scrum events that Fullsix organized last January, Mitch Lacy will be back in Portugal on the week of the 21st of April 2008.

The list of events for the week is

21st and 22nd : Certified Scrum Master

23rd : Agile Estimation and Planning

24th: Scrum for Managers (morning) - at Microsoft

Business Value of Scrum (afternoon) at Microsoft.

Wednesday, April 02, 2008

Assign permissions to multiple Stored Procedures in mssql 2005

Enterprise Manager from SQL 2005 allowed us to easily manage the permissions of multiple stored procedures from one place. I don't know why but SQL Server Management Studio for Microsoft SQL server 2005 only allows to manage the permissions of one stored procedure at a time.

Here is a script that Pedro Cruz shared with me that will ease this task:


FROM sysobjects

WHERE type = 'P'

running this script will generate the sql scripts that will assign permissions to all stored procedures. just need to take out the ones you don't want and run them.

The result is something like:




GRANT EXECUTE ON sp_upgraddiagrams TO [UTILIZADOR_RW] AS [dbo]

GRANT EXECUTE ON sp_helpdiagrams TO [UTILIZADOR_RW] AS [dbo]

GRANT EXECUTE ON sp_helpdiagramdefinition TO [UTILIZADOR_RW] AS [dbo]


Saturday, March 29, 2008

Network connecting to Virtual PC when disconnected

Marcas Technorati:

Today I needed to connect via network to a Virtual PC instance that I had locally, but as I was working offline (with no network cable connected) windows disabled my network interface.


Windows IP Configuration

Ethernet adapter Local Area Connection:

Media State . . . . . . . . . . . : Media disconnected

I surfed around and found some help on this article "Keep Your Virtual Machines and Hosts Talking Without a TCP/IP Connection".

Basicly I had to install Microsoft Loopback Adapter in Vista and after that I was able to manually configure my IP's in order to communicate with the VPC instance without beeing connected and without having my network DHCP server :)

Thursday, March 13, 2008

Fullsix presents project for Coca-Cola international

Today I presented with Ricardo Fiel at Tech Days an overview of the project that the Fullsix Group is developing for Coca Cola. It was the first demo of the session that talked about the Windows Live Platform.

The project is one of the first to use Windows live messenger embebedded on a site.

The happening was in the news on Meios e publicidade and Briefing.

The same presentation was also show in MIX 08 in Las Vegas last week on the session called "Developing with windows Live" by Angus Logan.

Monday, March 10, 2008

Interview with Mitch Lacey

Last January Mitch Lacey presented in Portugal a series of events related to Scrum: "Scrum for Managers" and "Certified Scrum Master".

This interview took place after his stay in Portugal.

Tiago Andrade e Silva: The number of inscriptions in the sessions you presented in Portugal were completely over everyone’s initial thoughts. Why do you think that happened ?

Mitch Lacey: I would like to think it was because of me, but I’m a realist and know it was not. J Scrum has been growing exponentially worldwide over the last four years. The last time I checked, there were over 25,000 ScrumMasters worldwide. When I became involved in Scrum in 2003-2004, there were just over 3000 ScrumMasters. I think people realize that traditional development methods do not form-fit every software project and people are looking for better methods to deliver value to our customers. When all you have is a hammer, everything looks like a nail. Scrum is another tool in a company’s tool belt, and people want the right tool for the right job.

Tiago Andrade e Silva: How did working in Microsoft influence your professional life and especially your adoption of the Agile methods ?

Mitch Lacey: I am very thankful for Microsoft, specifically Michael Corrigan, who supported my desire to improve our organization through the experimentation and eventual adoption of Scrum and other agile practices and principles. Microsoft is a very unique place with very special people. Without the flexibility I had at Microsoft, I would not be where I am today. My current employer, Ascentium ( is also very supportive of my efforts in building the agile community worldwide. Without their support, I would not have been able to meet and work with you or Microsoft Portugal. I am pretty lucky.

Tiago Andrade e Silva: On most of the questions posed by the attendees to the several sessions you presented, they stated that Portuguese Culture is different, so, scrum would be more difficult to apply or could not be applied. Is that a common statement despite the culture ? Do you hear it a lot ?

Mitch Lacey: Tiago, I hear a lot of questions that are very similar to this. The most common concerns are:

· My company is unique, Scrum or agile cannot work here

· We deliver a unique product, agile won’t work here

· Our culture will not support agile or Scrum

I think that when we look at national cultures, we have many variances. As I learned in my trip to Portugal, morning is a nebulous time. I learned that first hand. I do believe, however, that people all have a common set of principles when it comes to business and social interaction. We all want to do what is right, we all want to deliver value to our customers, we all want to feel like we are making a difference. I have not come across a company or a culture that does not strive for this. In the end, it is all a matter of perspective and how open people are to change.

Tiago Andrade e Silva: How can we use scrum to manage the dependencies between tasks ? Especially the external dependencies like client approval of creative design ?

Mitch Lacey: Scrum is not a silver bullet, and there are no magical practices in Scrum that allows teams to manage dependencies between tasks or external dependencies like client approval of creative design. What Scrum will do is highlight the areas that need improvement in your organization – it will make the dysfunction that exists between teams and/or clients the center of attention. How these problems are addressed are ultimately up to company leaders and teams. I have techniques for managing this that are covered in the Certified ScrumMaster course that is scheduled for April in Lisbon – we’ll get into it heavily there. J

Tiago Andrade e Silva: One of the principles of the Agile Manifesto is “Working software over comprehensive documentation”. How much documentation is the right documentation ?

Mitch Lacey: The right amount of documentation is just that, the right amount and no more. How much is the right amount? That depends on several factors, two of them being the customer and the organization. How much documentation does the customer need for us to deliver an application? If the application is a web site that collects addresses for a marketing promotion and it will only be used one time, the right amount of documentation required may be light. On the other hand, if a team is building a banking website that allows people to fulfill online transaction, there will be federal regulations in place. As a result, the right amount of documentation will be significantly higher. The key point of the Agile Manifesto is to deliver the right documentation for your project or customer and to not deliver documentation for the sake of just delivering documentation.

Tiago Andrade e Silva: How can scrum be used in teams that handle multiple concurrent projects ?

Mitch Lacey: I think the quickest way to get something done is to start it and finish it, regardless of the method being used to manage the project. What I mean by this is that is a person has to split his/her time across multiple, concurrent project, that person will have a lot of work that is in progress. Work in progress is like having goods that are in manufacturing – they partially comprised of raw materials and some of the goods are closer to finished. A car on an assembly line that has every part except the engine cannot be sold – it is unfinished. Having it sit there is waste. This is similar in software when we ask people to split their time across multiple projects – there is enormous waste. Scrum will not solve these problems, but it will certainly highlight them and force them to be addressed (or ignored).

Tiago Andrade e Silva: Which are the biggest challenges that the companies that start to adopt Scrum encounter ?

Mitch Lacey: The biggest challenges I see are companies that are not ready for the problems that Scrum exposes and companies that adopt part of Scrum and call it Scrum. When they do the latter, they fool themselves into thinking they will receive the benefits of Scrum without putting in the hard work of the actual implementation. Managing agile projects takes an extremely high amount of discipline to stay focused and keep the project on track. If this is ignored, people will fail.

Tiago Andrade e Silva: Can you tell us a little about the book you are writing ?

Mitch Lacey: The book What to Expect the First Year saved our marriage when our first child was born. In moments we felt we were going insane, that book helped us to realize that we were going through a normal process that parents have gone through for generations. We took comfort in the knowledge that the changes and feelings we were experiencing were not new to the world, just new to us. The book gave us a glimpse of the milestones and obstacles waiting around the next corner and anticipated our questions with enough clarity and examples to allow us to address our baby’s needs.

My first Agile project felt a bit like my first year as a father. Most of the time, I was lost and unsure about where to turn. What I needed was a What to Expect when You’re Adopting Agile book!

Since no such book existed at the time, my team and I muddled through as best we could. As the project champion, I built a team that was open to experimenting and evolving to Agile. We were determined to become better, and better we became. We read a new book every other week, and experimented with the concepts and ideas in that book. It was not easy; we made as many bad decisions as we made good ones. It took a lot of discipline and patience to work through our issues and team dysfunctions, but we did it.

We constantly asked ourselves, “Should we be progressing the way we are? What are we missing and what can we improve?” What was missing was a book that was only one step ahead of where we were as a team.

These days, when coaching teams that are evolving to Agile, I always ask how their adoption is progressing. They inevitably reply with a long list of problems they are having. Without fail, their list mirrors the list of problems I encountered on my first Agile project. New teams struggle with building a release plan, identifying and prioritizing requirements and creating potentially releasable software within an iteration.

Adopting Agile: 101 Tips for Surviving the First Year puts the crucial first year into perspective. Just like the parents who need reassurance that what they are experiencing is normal, this book will help reassure new agile adopters that what they are experiencing may be new to them, but is common to teams the world over. This book provides real-world stories, examples and exercises that an executive, manager or team member can use to survive the experience of evolving their organization to Agile principles & practices.

I have the full table of contents on my website at

Tiago Andrade e Silva: What sessions do you foresee for the next cycle of events on your next visit to Portugal in April ?

Mitch Lacey: I feel extremely lucky to be asked to return to Portugal to provide more workshops on agile and Scrum. The needs we identified in our last trip were around more development practices, estimation practices and more Scrum workshops. As a result, we are working on building an agenda that covers the following:

· Practicing and doing Test-Driven Development course

· Certified ScrumMaster course (maybe two of them)

· Agile Estimation and Planning course

· Certified Product Owner course

· Implementing Microsoft Team Foundation Server 2008

Given that we only have five days, it will be challenging – hopefully we can offer more solutions to the Portuguese software community in July or August!

Lastly, it was an honor to be able to come to Portugal to do the workshops. The people, culture and history of Portugal was amazing. Thank you to everyone who I had the opportunity to meet and participate in the workshops – It was truly the best group I have ever had!

Tiago Andrade e Silva: Thank you very much Mitch!

For more information regarding the next Certified Scrum Master visits