Free Developer Event – 14 May 2005

Further to my earlier post, I am pleased to announce that the session list and agenda have now been finalised.

If you haven’t already signed up (why not?) please visit the event’s dedicated web-site.

Attend DeveloperDeveloperDeveloper to learn more about Scrum, Test-Driven Development (TDD), Refactoring, Web Services in .NET 2.0, ADO.NET 2.0, .NET Custom Attributes, Web-Site Security, ClickOnce Deployment, FxCop, Developing for the Compact Framework, ASP.NET 2.0, Patterns of Data Access in .NET, Selling yourself as a developer, SQL Server 2005 CLR and the Mono project.

Reactive or Proactive?

I found this over at Frank Patrick‘s blog.

Unfortunately, it’s rather close to home for me. Invariably, my To Do list for the day has items carried forward to the next day. This happens despite good efforts to avoid being an e-mail monkey (I try to check e-mail at three specific points during my working day, morning, noon and departure time less one hour). However, sometimes the ‘phone rings and I hear: “did you get my e-mail?”. Doh!

And then there’s the ‘phone. Folks don’t do it on purpose, but they do make a ‘phone call without realising that what you’re currently working on is important to you and has to be completed by 1600. Sadly, they expect you to give them your full attention. Your priority is explaining this schedule pressure to them such that they can call you back at a more suitable time…however the interruption still hits hard. I won’t mention my mobile ‘phone’s operator name, but suffice to say there are plenty of everyday places that I can’t get coverage! (So finding a spot with no mobile ‘phone coverage is easy!)

The location of my desk doesn’t help, it’s really close to the office’s kitchen door, so there’s a lot of human traffic…and I’m sure you all know what happens when office-folk see an IT guy: “oh, that reminds me, have you got a quick minute, my PC is doing something peculiar”. I usually respond with “a minute’s 60 seconds” and soon end up spending over 5 minutes away from my desk. I can only guess that “quick minute” means “more than 5 minutes”. Anyway, I digress.

I also suffer from being too helpful. It’s difficult to tell work colleagues to “clear off and raise a helpdesk call” (I was advised to use stronger language, but I’ve dumbed it down for this posting). Of course, with well-known colleagues, we do go through the ritual of “clear off”, “raise a helpdesk call”, etc. and it’s followed by some humour and a “quick minute” of my time.

So, I’m afraid to say that I find myself being too reactive. I am,however, going to take Anita Sharpe’s advice and see what happens (although I’m not sure about the shutting my computer down at 2030!)

Meanwhile, what am I trying to say in this posting?

  1. We can become less reactive if business takes the opportunity to educate users such that e-mail becomes a communication tool, not a stick for prodding folks into action.
  2. Should we make some or all of our schedule publicly available? Scrum promotes this visibility for project related progress, perhaps I’m hinting that we should adopt Scrum practices in other aspects of our lives?
  3. Other folks have priorities, we should respect that. Without wishing to boast, I only use the ‘phone when it’s absolutely necessary and I normally ask the person I’ve called if it’s a good time to speak. Scheduling and priorities are important, we should make a point of telling folks that “now is not a good time, can I call you back later” – try it, you’ll be surprised how receptive folks are to this.

If you thought that some of this posting sounded like time management, you’d be right: I’ve read a handful of books on TM, perhaps it’s sinking in now!

Securing a new PC

Yesterday I had the pleasure of securing a brand new Dell PC that belonged to a work colleague.

The said PC came rather well protected, McAfee’s internet security suite was installed and appeared to be working. It would continue to work until July, when the 3 month trial expired. What then? Well, most users cringe when their PC asks them for money, so it’s very likely that the trial will be allowed to expire gracefully. The sudden appearance of spyware, etc. would be less than graceful.

So, amongst other things, I removed the McAfee trial software and replaced it with the free edition of ZoneAlarm and Grisoft’s AVG anti-virus.

I must say, it’s nice to see ZoneAlarm at work. I have a firewall in my Netgear router and find myself shielded from the automated attacks that are so popular. Over the course of the 30-minute securing exercise, we watched no less than 200 inbound intrusion attempts…all nicely blocked by ZoneAlarm.

zonealarm

Incidentally, when ZoneAlarm announces that an upgrade is available, my advice is this:

  1. download the update to the Desktop or other well-known location
  2. disconnect from the Internet, i.e. drop your Internet connection – if this means physically pulling a USB or network cable out of the back of the PC, do it
  3. install the upgrade from the well-known location – ZoneAlarm will turn itself off at this point, thus opening your PC up to the Internet’s nasties if you were still connected
  4. after the upgrade, re-establish your Internet connection

Watch out for a forthcoming article/post covering security software in more depth!

DeveloperDeveloperDeveloper!

14th May 2005 – DeveloperDeveloperDeveloper!
In my earlier post I mentioned Microsoft’s DeveloperDeveloperDeveloper! day being held in Thames Valley Park, Reading, UK on the 14th of May 2005!

I’m working on two sessions for Microsoft’s DeveloperDeveloperDeveloper! . I’ll be delivering two sessions: An Introduction to Test-Driven Development and Refactoring in Visual Studio 2005.

Amongst many others, Phil, has written a good piece summing up what’s going on! Whereas Microsoft’s Mike Pelton has gone into code to explain the day!

Registration is recommended!

Recommended Audience: Developer.

For the first time ever in the UK, Microsoft is hosting a unique event for Developers to learn, share and hear from other Developers – NO Microsoft speakers will present. Held on a Saturday, DeveloperDeveloperDeveloper is designed to be an informal day; the agenda will be determined by the developer community. You will have the opportunity to see new faces present in a relaxed atmosphere. Activities will include presentations on a wide range of topics (see suggestions below), a networking area and fun zone.

• Preparing for ASP.NET 2.0
• .NET Debugging Facilities
• Patterns of Data Access in .NET
• An Overview Of ClickOnce Deployment
• What’s New In Internationalization In .NET 2.0?
• Unit Testing Using Visual Studio 2005 Team Test
• Introduction To FxCop And Writing Custom Rules
• Refactoring Using Visual Studio 2005
• An Introduction to Test-Driven Development (TDD)
• Developing for the Compact Framework with C#
• Custom Attributes in .NET
• Useful Free .NET Tools
• SQL Server Finding and Resolving Performance Problems

All this is FREE and lunch and coffees will also be thrown in.

Scrum, Test-Driven Development, Refactoring and what’s next

It struck me that I’ve been a little quiet of late – I have been rather busy travelling and looking after Cameron!

A few things that I’ve been up to of late:

  1. Adaptive Project Management using Scrum. There is a slide deck here.
  2. Improving Application Quality Using Test-Driven Development. There is a slide deck here.
  3. I’ve run my refactoring session twice now. There is a slide deck here.

I’m also busy working on articles/editorials covering these subjects:

  1. Desktop Development. An editorial-style piece about 2005 being a good year for developers. It will cover “what’s happening to Visual Basic 6” as its primary thread and will touch on Delphi 2005 and Chrome, both of which will have a big impact during 2005!
  2. Product reviews of AutomatedQA’s AQDevTeam and DeluxSoftware‘s Delphi to C# translator.
  3. Using Really Simple Syndication (RSS) To Improve Corporate Communication
  4. Integrating With The Office Research Pane
  5. an unplanned piece on the Visual Studio Tools for Office (VSTO)

14th May 2005 – DeveloperDeveloperDeveloper!
I’m also working on two sessions for Microsoft’s DeveloperDeveloperDeveloper! . I’ll be delivering two sessions: An Introduction to Test-Driven Development and Refactoring in Visual Studio 2005. Amongst many others, Phil, has written a good piece summing up what’s going on!

Writing articles, presenting and user groups…

During January 2005, I co-chaired a meeting that, amongst other things, discussed writing articles and giving presentations. In particular, we were looking at the issues folks have with education and learning techniques.

The discussion arose because folks are happy to flick through articles and attend presentations, but when asked to either write or present themselves, it’s a different ball game. All sorts of reasons were tabled, including: “I don’t know the subject well enough to stand up in front of a group”, “I was never good at writing at school”, “I can’t write 3000+ words” or “I don’t have the tools (software) required to write and prepare an article or presentation”…

This is a shame. A real shame, because more often than not, the developers at the coalface have the most to pass on to their peers.

Articles
Articles don’t have to be “full length”, nor do they need demonstrate a complete mastery of the subject: if they demonstrate a technique, highlight a pitfall or save a fellow developer time, then they are of use.

True, there are some authors who write articles because they know the subject inside out, however this shouldn’t stop you! I believe that writing an article (particularly the fact that there is a deadline) focuses the mind considerably. Once you have written your introduction and [possibly] your conclusion/summary, you now have a start and end point: it’s possible to write the “middle” or body of the article in a series of small steps.

Whilst I’m on the subject of articles, I recently delivered a presentation about Writing Technical Articles: hints’n’tips – read more about it here.

Presentations
Everybody has different presentation skills and techniques. For example, some prefer to use slides (PowerPoint) as their primary delivery mechanism, whereas others prefer to have as few slides as possible and concentrate on their own wit and memory to get them through – these sessions can be good fun, the presenters often spending a lot of time “in the IDE” (for development-oriented sessions).

Call me old fashioned, but I do like my PowerPoint “slide deck”: if anything, it gives me a sequence of steps to follow. One thing that I have learnt over the years is to avoid including code in my slides. Including code in the slide deck instantly means more work to change the slides should the session be re-run for a different language. This is my recommendation: make slide decks language agnostic. Of course, when I say “language” I really mean programming language!

If you think that slide-less sessions are only for the experienced presenter, think again. It’s very likely that you have a “top-tip” that would benefit your peer group in some way. I’ve seen sessions run for over an hour with a page and a half of A4 as notes: once you’re up in front of friendly peers and start to describe your problem, how you solved it, etc. time flies.

“I’m frightend that I’ll not be able to find 60 minutes of content!”
Presentations don’t need to last 60 minutes; they don’t need to last 30 minutes: burn-out is almost a myth – rarely have I seen presenters try to fill a 60 minute slot with 10 minutes of material…and last 10 minutes. It’s usually the other way around, too much material, not enough time. Don’t let this put you off, if you have lots of material, but you don’t want to run for 60 minutes, break the session into two smaller sessions – user groups will appreciate you coming back for a second session either later that day or at another conference later in the year.

If you are using slides, I used to aim for about 1 minute per slide…now I aim for 3 minutes per slide. This means that a 60 minute developer-oriented session requires 20 slides; this includes “non-content” slides such as the title, closing slide, questions, jump to demo, agenda, etc. Your mileage may vary, try to work out a ratio that’s good for you.

Tools (software)
Writing and preparing presentations doesn’t require very expensive software. I use the following applications on a regular basis: Microsoft Word, although Notepad will suffice. PaintShop Pro, PowerPoint. Obviously if your article or presentation is about a development language you will need to use that too!

I use the screen capture and cropping capabilities of PaintShop Pro: editors like screenshots to be focused on a primary topic, they don’t need the Start menu or system tray included in the capture! PowerPoint can be handy for creating diagrams: it has a useful ‘save slide to GIF’ option in the SaveAs menu (do remember to crop the image as PowerPoint saves the whole slide!)

Notepad is a great little “paragraph editing” tool. Often, when I’ve written an article I read over it and don’t like the way a paragraph reads. I copy the paragraph into Notepad and then make each sentence a paragraph in its own right (i.e. double carriage return at the end of each sentence). This lets me work on each sentence in isolation. I can gradually pull the original paragraph back together. This trick also works for those articles that are “word length limited”, i.e. must be 950 words plus/minus 10. Breaking a paragraph out, re-wording it, then putting it back together again can reveal paragraphs that are using too many words to say too much or even too little!

Finding an audience
So maybe I’ve convinced you to part with a few paragraphs of text or even pushed you into presenting a short session?

Who publishes short articles?

Who accepts short presentations?

Who can support me and ensure that my article(s) and/or presentation(s) are delivered in a group of friendly peers?

The answer is easy: your local User Group/Community (or may be not so local! User Groups are usually very happy to have ‘guest’ speakers and authors from other parts of the country!) Indeed, cross-cross-pollination between user groups is something that I believe should be encouraged: we’re all one team, trying to help each other wherever possible.

Where can I find my local User Group/Community?
Well, if you are in Scotland, a good place to start is the Scottish Developers Web Community.

Elsewhere in the UK, there are (as of 7th April 2005):

ACCU
Developer Fusion
Digital South Yorkshire
FAQ Shop.com
FoxUK
Harrogate Digital Forum
London .NET
MoDaCo
Scottish Developers
The Access User Group
The Developers Group
The London Database Developers Forum
The Scottish Small Business Server User Group (SSBSG)
The Thames Valley User Group .NET
The UK SQL Server Community
UK Exchange Server Professionals
VBUG

I’m sure that there are more, if you are a user group leader, let me know and I’ll update the list.

Another excellent source of user group informaton, and one that the list above is based upon, can be found at Microsoft’s Developer Community web page, or here at Sun’s Java User Group web page.

Writing Technical Articles

I gave a presentation to an enthusiastic bunch of user group leaders today.

The presentation was about how I set about writing technical articles, it gave a series of hints’n’tips relating to such things as:

  1. Structuring an article (I recommend writing the Intro and Summary first)
  2. Page Layouts (column-based publications do mean writers have to spend a little time thinking about how much code they include and the size of screenshots)
  3. Common English Language usage pitfalls

Despite me being totally de-hydrated, the session ran on time!

The slide deck is available here.

My session was followed by the editor and publisher of DNJ Online – Matt gave a session about the process of sub-editing, contractual issues, libel, copyright and a whole host of other areas authors should be aware of. Amazingly, Matt and I didn’t talk to each other prior to delivery of our sessions; equally amaziningly, our sessions complemented each other rather well 🙂