Posts Tagged software

Slides and Mind Maps for DunDDD

DunDDDAs promised, here’s the slides and mindmaps for the sessions I was involved in at DunDDD 2011. The Mind Maps were generated using FreeMind.

The Philosophy of Code

This talk was an experiment on my part, given the knowledge I’ve picked up from reading books and articles from some of the smartest people in the business and beyond, and I wanted to share some of that. As Gary Park noted, it still needs some polish, but I think there’s a good idea in there, so I hope to get another chance to present it in the future. The presentation itself is licensed under creative commons, but please pay attention to the photo attributions if you want to use them in your own work. I’ve also included a link to the original mind map which contains many more great quotes.

Google Docs : The Philosophy of Code

Mind42 : The Philosophy Of Code

Download The Philosophy Of Code Mindmap (.mm format)

Software Requirements

The original presentation was given by Craig Murphy (on Twitter as @CAMurphy) and is available here : Open Discussion on Software Requirements

The mind map generated from the discussion is reproduced below.

There was a good discussion of how requirements can have different levels of detail and how the methodology can shape the process and the documentation, as well as the change process. A bit of waterfall vs. agile, but each has their place.

Mind42 : Software Requirements

Download the Software Requirements Mindmap (.mm format)

How The Web Was Lost

This talk drifted a little, since we agreed fairly quickly that with the demise of Flash and Silverlight, and the rise of the web-powered desktop in Windows 8, the web has in fact one. +1 for open standards. But where does that leave the behemoths like Apple and Microsoft who have benefited the most from the traditional role of the desktop. Can they keep developers and users on their platforms, or will they be lost to cross-platform development?

Mind42 : How The Web Was Lost

Download How The Web Was Lost (.mm format)

Comments (2)

DunDDD

Just a quick post on my way back from DunDDD (slides and mind maps to follow)  http://dundee.dddscotland.co.uk/

It’s the first time I’ve been to a developer event in Dundee and I was impressed with the enthusiasm and commitment of the attendees, so I hope that’s a good sign that there will be another one next year. Aside from the 3 sessions I was leading, I also attended Gary Short’s mining Twitter talk and Colin Gemmel’s Ruby talk. Lots of good info in both so thanks to them, all the other speakers and organisers for another great event.

If you missed out on this one and are interested in more, check out http://www.scottishdevelopers.com for more events. A couple in Edinburgh in 2011, followed by more events in Edinburgh, Dundee, Aberdeen and Glasgow next year. Well worth following to keep up with the geek scene in Scotland.

http://dundee.dddscotland.co.uk/

EDIT

For more reviews please have a look at the following blogs:

Dundee DDD Conference – Chris Hillman (@chillax7)

A review of #DunDDD – Gary Park (@gep13)

Comments (3)

Chimera wishlist : !NullReferenceException

What features from other languages do you wish your main development language had?

As someone whose first real applications were written in C++, the thing that always bugged me about C# and Java (after they got generics and autoboxing sorted) was the way they handled references. In my C++ mind, C# and Java pass pointers around, and pointers are allowed to be null. So every single time I have to use them, I have to check them for null, or set up the caller to make sure they’re not null. As Anders Hejlsberg points out, that single fact causes more problems than anything else in C#.

Also, I wish C# allowed const references like C++ to guarantee an object isn’t modified within a method when passing by reference, which is always useful to avoid copying large objects. C# would have to support const methods too, of course.

50% of the bugs that people run into today, coding with C# in our platform, and the same is true of Java for that matter, are probably null reference exceptions. If we had had a stronger type system that would allow you to say that ‘this parameter may never be null, and you compiler please check that at every call, by doing static analysis of the code’. Then we could have stamped out classes of bugs.

But peppering that on after the fact once you’ve built a whole platform where this isn’t built in… it’s very hard to pepper on afterwards. Because if you start strengthening your APIs and saying that you can’t pass null here or null here or null here, then all of a sudden you’re starting to break a bunch of code. It may not be possible for the compiler to track it all properly.

Anyway, those are just things that are tough later. You sort of end up going, well ok, if we ever get another chance in umpteen years to build a new platform, we’ll definitely get this one right. Of course then we’ll go and make other mistakes! But we won’t make that one.

http://www.computerworld.com.au/index.php/id;1149786074;pp;3

So, what do you wish for?

Leave a Comment

Outrunning the lions

Just a short post today (stop cheering at the back). I’ll do a longer post on the html5 survey next month, it’s still open if you want to fill it in.

There are two explorers in the jungle, who come to a clearing and find themselves face to face with a lion. One of them immediately takes off his backpack and starts putting on his trainers. “What are you doing?” asks his friend, “You can’t outrun a lion.”

“I don’t have to outrun the lion,” he replies, “I just have to outrun you.”

When you’re you are choosing your security, or your feature set, are you trying to outrun the lion or are you just trying to outrun the competition? IE6 got away with a lot because it only had to outrun Netscape 4. Chrome re-wrote the rule book on browser speed and html5 features because it was trying to outrun the lion, not just ie and FireFox. Decide for yourself which browser represents the software you want to write.

Now, how about I move to California and start a motivational speaking course…

Comments (1)

TDD? I Don’t Have Time – Google Docs


TDD? I Don’t Have Time

Thanks to everyone for their feedback on my previous post. I’ve taken the next step and created a presentation that’s publicly available on Google Docs via the link shown below. I’ll be adding more ideas to it as I get them, and I may do a small coding demo if I’m feeling brave.

As before, add comments below, or send feedback to the twitter account or email address in my previous post.

TDD-I-dont-have-time – Google Docs

Blogged with the Flock Browser

Comments (1)

Test Driven Design : Developer Day Scotland 2

TDD? I don’t have time

I’ve had one of my talks accepted for Developer Day Scotland: talking about Test Driven Design. I’ve got a basic idea for a talk, but in the spirit of Alt.Net and open source development, I thought I’d throw this important subject out to the crowd. I’ve got a few ideas for the talk that I’ll outline below, but I’m looking for ideas and stories from others to help illustrate this point. Lest you think this is the easy way out, remember that I’ll be editing, compiling and delivering the talk, and I’ll get all the hecklers and tricky questions.

In return, I will release the presentation under a creative commons licence so that anyone else can take it, adapt it, and use it to help sell the principles of TDD to their colleagues. I’ll also make sure all contributors are included in the acknowledgments, provided they give me their name. If you want to give feedback, comments below are preferred as they’re public, but you can also send them to me via twitter ( @craignicol ) or via my gmail address (which I won’t give here to avoid spam harvesting, but it’s the same username as my twitter account)

The basic structure of the talk will be a series of slides titled with a reason not to to TDD, followed by a few suggestions why that reason is a myth, or is not as big a problem as you might think. Based on last year’s DDDS, I expect most of the audience will have come across unit testing, but I might need to add that to the sales pitch. I’ll list below the basic ideas I’ve got so far. Any arguments, expansions, examples or other feedback gratefully received.

I don’t have time

  • Do you have time to debug a live system?
  • Do you spend time adding new features?
  • Do you have the right tools?

I don’t need to test

  • Are you a perfect programmer?
  • Are you working alone?
  • Will you ever maintain your code?

I need to know about IoC, mocking, etc

  • Not when you start
  • Don’t let the terms scare you, it’s the principles that are important
  • The principles are worth learning

I love TDD, but I can’t get my team to adopt it

  • Don’t keep it to yourself. Show it off.
  • If you’re the lead, make it happen. CI is your friend.

I don’t know what tools to use

I need 100% code coverage

  • Have you been talking to Joel?
  • You don’t need 100%, but until you try and reach it, you don’t know what you don’t need.
  • You have to decide which of this, and many other aspects you feel comfortable with, and which you don’t.

Quality doesn’t matter

  • It matters to the customers who have to wait longer for a working product
  • It matters to the developers who have to maintain your code and will leave or stop caring
  • It matters to the accounting department who lose money for either of the above

You can’t test a UI

  • Make sure your logic can be tested without a UI
  • Test the right thing on your UI
  • There are frameworks (NUnitForms, WatiN)
Blogged with the Flock Browser

Comments (9)

Follow

Get every new post delivered to your Inbox.

Join 937 other followers