Showing posts with label NetDug. Show all posts
Showing posts with label NetDug. Show all posts

October 27, 2007

Best Practices Discussions and Debates

I think I have learned something today that I was previously unaware.

Starting a discussion about software development best practices is akin to talking about parenting techniques with a group of mothers.  Most will patiently listen, but at least one will get super defensive and tell you in detail about why that wouldn't work with their baby.

I have relatives who are also very argumentative, in that they just love to argue.  The funny part is that they will argue about things THEY AGREE WITH!  Unfortunately, they are too bent on arguing that they don't care that they agree.

I see this happen on blogs all the time.  And while I think that blogs are great ways to spur discussion, they are not great ways to HAVE a discussion.  User groups, phone calls, and hallways are all vastly superior environments for a discussion.

In my case, I have a commenter on my blog post about best practices that is doing a wonderful job of arguing some of my points, all while telling me I'm wrong.  We disagree on one point: Developers should have their own copy of the database they are developing against, and developers should have access to all source code and software need to do their job.

I think the reason the anonymous poster and I are not able to agree is because we really aren't able to talk to each other about the ideas.  Plus, I have a strong feeling we are separated by a common language (we have different definitions of the same words).    More than likely we agree on the software, we just don't agree on the terminology.

As far as the database part: there are a ton of ideas hidden in that statement that are not easily expressed.  There are scripts that extract the meta-data out of a database, source control that houses that script, continuous integration for verifying all of the changes work to both code and database scripts, creation of development data, etc.  

Then the kicker: 90% of that is automated.  I really don't thing the anonymous submitter saw that point.  In fact that should be a blog post in itself.  He/she saw it as another backbreaking task the developer would have to maintain by hand.  But if you do it right, it isn't.  Updating the database scripts is as simple as running a batch file.   And not updating the batch file and then running it, no -- just run it.  The batch file creates the scripts for creating the entire database.  This should take 5-30 seconds.  Then you are ready to go.

As I said, there are a lot of aspect to this that were not mentioned in this post or the previous post.  But blogs are there to START discussions, not to have them.

June 28, 2007

NetDug last week...

I thought this was funny.

Last week I gave a presentation on C# 3.0 and LINQ to NetDug. Mind you, this is a really well run group. We meet at the ProClarity ---erm Microsoft -- building in downtown Boise. Usually someone from Microsoft lets us in, guards over us, and things go really well. Not this time.

It started with one of the group leaders sending me an email, the day before the meeting, telling me that he could not get onto their server, ergo: they couldn't send an email to the group telling them that the meeting was on, and what we were talking about.

Not great, but I can work around that. I sent out a message to the BSDG group, which is also largely Boise area developers and told them. It is largely the same people anyway.

One day goes by.

OK, day of the meeting. I show up and there are already people there waiting outside the building. I'm early so I don't think much of it. The Microsoft building here in Boise is actually a nice spot. There is this cool little spot that had some places to sit in the shade with lots of trees, which was needed because it was over 80 degrees at the time. So we just sat there until someone was going to open the building for us.

Janitors walked in, a few people walked out. I even knew a few of them. It was getting really close to the time of the meeting so I started talking to one of them as they came out. Asking if certain people who are usually there to open the building for us are still in the building to open the building so we can have our meeting. (yes, that is a run on sentence, but appropriate since the person I talked to was a tech writer -- who taught tech writing). They were not there.

Great. First there is no email to tell anyone about the meeting we were supposed to have, and now we don't even have a room to have it in. This is getting better all the time.

By this time there were about eight people there. That is a small gathering for this group. It usually gets 20 people. But, they were still interested in what I had to show them. But we were outside, and my laptop is useless outside running on battery power -- so no power point. There are worse things in life than giving a talk with no power point, really. So next best option: wing it with a pen and paper.

This is where it is a good thing that there were only eight people there. So I started the meeting, outside, and started talking. One thing that does happen when giving a talk like this, you cut out all of the extraneously stuff.

Array initializers -- didn't talk about it.
Extension Methods -- yes, but just enough
Object and Collection initializers -- just barely
Expression Trees -- mentioned that I didn't know anything about them.

But we did talk quite a bit about the var keyword, anonymous types, LINQ, and Lambda. All via pen and paper (which I now refer to as the original Power Point).

So, obviously, I wasn't trying to get the attendees to really grok the material, but I think they did capture some of the general zen. Which, as far as I can tell, is to rethink how and when you use a for loop on a list. With LINQ and Lambda, we should be seeing a lot fewer of them.

In the process we also talked about PLINQ, XLINQ, DLINQ, LINQ for SQL, NHibernate, SubSonic, and Log4Net. It was a good meeting. Not bad for considering the circumstances.

Then to close off the evening for myself, my mom and brother were attending a dairy conference a few blocks away, so I snuck into there and bored myself to sleep. They were talking about whey futures (as in stock market like futures).


I thought I had given a reasonable presentation with no slides earlier, on the street, in 80 degree weather. Here was a guy giving a presentation inside, with a huge projector (20 foot screen - at least) to 50 people and doing it badly.



Now all of this comes from my own general preferences. There is an art to displaying lots of numerical data on a slide. There is also an art to showing charts on a slide. This guy knew about neither, and probably never read anything by Edward Tufte.

Note: I have read Edward Tufte, but please don't blame my bad slides on him -- they are my fault for not reading his books enough.

All of his slides were white. All of his text was black. There was no variation. They could have been printed on a black and white printer and no one would have known the difference. Imagine trying to decipher slide after slide filled with large grids of numbers, each row having a different type of number, and only a thin black line between them. Not good. Then to show emphasis on a particular number -- out comes the laser pointer.

I about made my brother buy me a beer after that. And dinner.

My mom did instead.