Sunday, November 28, 2004

A Dell laptop

I ordered a dell laptop - it arrived DOA (bluescreens, random hangs). Looking at my invoice I realized at the same time that I had ordered the wrong screen - not enough resolution. Well I thought I'll ask them to upgrade the machine when I return it under their 30 day exchange policy and I'll pay the difference.

Apparently, that was unacceptable. I could only get the exact same machine under replacement. Something about the warranty, which a) I couldn't understand and b) sounded like their internal problem.

Anyway after years of satisfaction with Dell (I've been buying/recommending them since about 1993), I returned it. Stupidity that deep has made me consider purchasing another brand. I'm off to futureshop to see what they have.

Testing Update

We still have very few unit tests on our project.

Is it hurting or helping us. We're going to examine that in the next few weeks.

Use people...

In work its important to use people. They know things you don't know and have experiences you don't have. Many people think that if they only applied themselves they could do that other persons job. It isn't true.

Understand the role you play on the team (Are you project manager, teamlead, technical architect, customer, business analyst or developer?). Play your role - stay with in your confines. Give suggestions if you have them, but let the other person work how they work, support their decisions, don't undermine them. Supporting people make them stronger and makes the team you work on better.

Listen and learn from people in a different role.

Friday, November 26, 2004

Changing Roles...

I once wrote a blog that said if you're the best developer on your team, you shouldn't be the teamlead. Today I'm putting that into practice. I'm not the best developer, but I do have something different to contribute to the team.

I'm joining the developers, hoping to impart some rapid development and refactoring skills I've learned over the years, expecting to learn lots. It'll be fun!

I hope over the last year I have shown the people I work with a new way to view Agile... highly disciplined, incremental design and delivery, lots of feedback and of course a personal sense of commitment. I know I've learned lots from them and look forward to joining the important people on the project.

Honesty and your teams feelings...

Are you a team leader? It's important to be honest with your team. Keeping information from them, either good or bad, is not a good policy. You are establishing a trust relationship. That requires honesty.

Sometimes people will get angry or upset with you for not presenting the information in a certain way. It is not your job to make them happy - that's their job. It is your job to make sure they can do what they need in the environment they need, them liking you is nice but irrelevant.

I strive to have people working for me trust me, not like me. I don't second guess them, I trust they give me the same respect.

Sunday, November 21, 2004

Testing on our project

A further update on our testing strategy:

We have over 2000 functional tests running on our project - they are taking over 15 minutes to run. This is unacceptable.

So last weekend I stubbed out Toplink. We have a layer which wraps toplink (called the transaction manager). It provides a subset of toplink functionality. This is what I stubbed out.

Basically, for our tests I just store everything in a hash map, convert the toplink expression tree into an eval tree and wala our tests run in 60 secs. Cool.

If your interested in the code - let me know I'm more than happy to give it away.

Skills

If your a developer you need to keep your skills up to date and learn new stuff. If you haven't read the patterns book yet you are way out of date. If you haven't read Martin Fowlers refactoring book you're almost out of date.

Other books that are seminal in our field:
  • Patterns of Enterprise Application Architecture - Martin Fowler
  • Domain Driven Design - Eric Evans
  • Refactoring to patterns - Joshua Kerievsky
  • Extreme Programming Explained - Kent Beck
  • Code Complete - Steve McConnell

Reading isn't enough though you must develop the SKILL to use them. For example, after reading martin fowlers refactoring book a couple of years ago and using his simple patterns I now have the skill to do quite large refactorings. There are some things that just require practicing and doing to get good at.

Joseph King and I are playing with the concept of aggregates and entities from Eric Evans book. See if we think about our design and architecture differently...


Interesting Blogs...

Interesting blogs to watch:

High Performance Team

How do you get a high performance team with the hyper productivity?

We're about to try different things to make that happen on our team, I'll let you know.

Interesting Sites on Agile...

Here's some interesting sites on Agile testing: