aussie coder . com

Archive for January, 2009

KISS -> Finding a better way

by Andrew Tobin on Jan.30, 2009, under Uncategorized

Everyone should know now that KISS is Keep It Simple Stupid, but basically I was working away on a project at work and what we needed was a graphical line chart that displayed the growth based on user input, to give them some visual feedback of the curve they were entering.

I started very complexly using Stack and LinkedList, making my own methods to validate and add and remove segments so that the whole thing would work cohesively, and then it was pointed out to me that we didn’t really need to take into account both ends of each segment, we might as well just treat it as the next segment takes its start from the last.

So I simplified my objects all the way back to a simple list and a validator on submit – but that left how was I going to do the graphing?

It’s in a winforms .NET application, so I thought maybe there was a graphing library, or I could use lines and the drawing primatives, but I needed some values on the axis and all that.

Anyway, had a quick think and came up with the ReportViewer control! We already use Reporting Services for a lot of our reporting and the users are familiar with that, but I’d never done it with an in-memory set of data, using the local version.

Half an hour later I had a spiked test version done and ready for smoothly bringing it back into the main project.  Seriously, I had visions of such complexity, for something that could resolve itself so easily, and the boss had no qualms about using that control in the production application.

Sometimes you just need to take a step back and stop banging your head on the desk long enough for the ideas to come through to you – and remember to keep things as simple as possible and they’ll often work.

1 Comment :, , , , more...

Which Path Do You Follow?

by Andrew Tobin on Jan.29, 2009, under Uncategorized

Reading this post by Davy Brion raised a few thoughts in my head, and I thought I’d put them here.

Davy talks about who you pay attention to for guidance in becoming a better .NET developer – the Microsoft experts, the Alt .NET and community experts, finding other places – what is the best direction to head.

In the end he comes up with use your own judgement, common sense can guide you.

I agree with that, but I generally do follow blogs, listen to ideas that bubble up over and over, if I hear about patterns or practices that someone recommends then I go and Google it, research it.

Generally, if someone’s willing to pay for a book for it to be made, and if people are willing to buy it, then it’s worth a look at the ideas in there.  I’d pay attention to topics that show up on places like Dot Net Rocks, Hanselminutes, Codebetter, Los Techies, screencasts around the place.

Basically, anyone willing to put ideas forward in a public forum, have the conversation and go through the wringer.

And then, like Davy recommends, I’d choose the parts that make sense to me and try them out – generally you find out pretty quick if you’re headed down the wrong path.

That being said, for me, I’m mostly following my manager ;)   It helps to have a cohesive architecture, and as well, to paraphrase something Robert Scoble once wrote:

“I’m following thousands of people, reading tens of thousands of pieces of information a day and talking to industry leaders, who do you read?”

“You.”

For all the things I read and come across, my manager does as well, and I find if we are generally talking to each other about topics that interest the both of us then it’s generally something that’s worth a bit more research.

I think the best way you can find the right path is to find someone else as interested in learning as you are, get to a .NET User Group, or see what the community leaders are interested in – but do your own research.

Leave a Comment :, more...

Architecture by User Fear

by Andrew Tobin on Jan.28, 2009, under Uncategorized

A funny topic came up today at work that I thought I’d share.

We’ve been working on a project for the better part of the year and been really optimistic with it, even though there’s been false starts on it previously, and the users have only been interested in it from the point of view of “it’d be nice to have but it’s creating work for me”.

We’ve gotten it deployed to a couple of users for testing and they’ve been slow to get interested in actually doing that, but we went ahead with one today and it’s making us second guess a decision.

We have certain events that something can perform on a product, such as adding elements – now we decided from the start that we were going with an optimistic view, so that you could only add events to the queue.

So, lets say we create a product, and then we do an addition to it – but we accidentally add to the wrong product – what would you do?  Well, we made it so that you could adjust that product, so that you could take it back to the original state.

But in the history of that product it would record that, and we can report on the adjustments made.

The first time the user struck that, day 1 of testing, and he was horrified – he didn’t want to adjust and took that as the wrong way to progress – because his adjustment would be seen by one of the bean-counters in accounting and that would be seen as a very negative thing to him.

So we’re back to the drawing board on having to redo all our objects, or rather the events, to undo and wind back changes – which means a minor re-architecture.

And this guy was in all the architecture meetings, made the decisions with the others, and we had discussed the way things were going to be adjusted.

I don’t know what we take away from this, but I still think we went down the right path because we ended up with a fairly beautiful and efficient user story, for the interface and the processes – we were just a tad too optimistic about what they would accept on the perception of when things went the wrong way!

Leave a Comment :, , more...

Some Goals for this Year

by Andrew Tobin on Jan.27, 2009, under Uncategorized

Just to document some things I’d like to achieve this year, unless I completely forget or other priorities take over ;)

1. After having listened to the last couple of Hanselminutes episodes I’d like to study a bit more on the current architecture standards coming through the .NET community.  The shows I am referring to are:

Basically, all these three shows have got me back into being interested in hearing more Hanselminutes (I chose the shows to listen while driving for a trip), but more than that they resonated with what we’re already trying to do, or to achieve at work.

For instance, although we probably don’t really follow DDD, we do have a pretty tight cohesion to the companies domain, terminology, and processes.  A lot of what Rob Conery said actually applies to how we try to go about our software development, with the planning and dialogue we open with our users.

So the interest there would be to study a bit more of the practice of DDD, and maybe not taking the practice to heart and keeping to every principle, or pattern – but see what we’re already doing that works similar to the framework and what practices related to that we could adopt that would make sense.

Similarly, listening to Scott Bellware on Test Driven Development, although we are writing tests semi-first (I tend to unless I am having a hard time wrapping my head around some code, in which case I spike then wrap tests), I came to realise I’m probably under-thinking TDD/BDD.

My methods are coming out much like they would if I didn’t test, with overly complex tests – not simplified enough for it to be proper TDD.

Now that is kind of the way the boss wants it and the way we adopted it, but I don’t know if I’d call us a TDD shop (and I don’t think he would either, even if we are a testing shop – we work for a private company and are efficient and producing quality code anyway, so it’s kind of semantics for us).

The thing I don’t think I do enough of is considering the behaviour, or the aspect of what a method is trying to achieve before I code it up.  I mean, I understand I want to get from A-to-B with this method, I want it to achieve X reason for existing – but I don’t frame that in “for this unit of work, this is how the guys on the floor are using this, and this is the process it would go through, so the method should behave accordingly.

I honestly don’t think it’s that far of a leap from where I am now with my thought patterns, but it’s about taking that time to work that flow instead of thinking of it as purely code that achieves a function and tests that will prove that code does that function.

2. Become basically familiar with another language, either Ruby or probably Python.  This isn’t learning something so I can use it on a daily basis to a high degree – but just learning it for readability, become familiar enough so I understand what other developers are talking about, and just learn the basics for interest.

3. Read more code.  I’m pretty insular or isolated with the code that I am doing, and I do things my way and it works, but I think I need to get back to listening to podcasts, watching the rest of Rob Conery’s MVC Storefront series, and just get a better idea to improve my own development.

4. Prepare for meetings better.  Hopefully I won’t be attending that many meetings in the future, but I had the thought the other day that I walk into a lot of meetings with not much idea of what to say, and I end up being in a situation where I can be caught unprepared or put on the spot, or am just reacting.

So the idea here is to push more for an agenda for any meeting I’m attending, to come with some idea of what I’m going to say, some planned points on paper, and to try and stick to the topic – there’s nothing more that I hate than a meeting that is just all general business of whatever anyone can think of at the time, and I find a lot of the “Monday morning scheduled meetings” that occur weekly for everyone to catch up, generally, just meander unprepared and anyone will bring up whatever is on their minds at the time.

5. Self-manage better.  We have Fogbugz at work, but it’s a personal productivity tool, and if you don’t use it, it’s not really enforced.  That’s fair, but I do know I work better when I have a list of tasks in front of me, when I can cross things off and feel like I’m achieving things.

The past year while I had a project that kept my interest I’d find that I’d do the next two-four weeks scheduled work within the first few days, because I was driven, interested, and had a plan of what I had to achieve.

I have to find a good balance of spending time setting up and managing myself, so I am more productive in the other times, rather than spending all my time trying to just work and get through things, and either be caught out by things I haven’t done, things that I haven’t done timely enough, or finding myself with time that I just don’t have enough to do because I haven’t scheduled enough into my time.

 

There’s probably more I should be doing, but those things came to the top of my mind while driving home from my trip and I think they’re a good start!

Leave a Comment :, , more...

Another Day in the Workplace

by Andrew Tobin on Jan.26, 2009, under Uncategorized

Recently I was travelling for work and taking the opportunity to be a bit social and ask around if there was any way I could help the guys in the remote office.

There are several people in the main office that I ask now and again if there is anything I can do, as their IT Dev, to make their lives easier.

Now people seem to hate the idea of their lives being easier – they somehow equate my helping streamline their jobs as me making them less required, which for the most part is never true – there is always more work or more opportunities for the time that you can save.

So, if I ever asked one particular guy if there was any process he could think of for me to streamline something he’s involved with, he’s always said no – no real need.

Well, it turns out one of the guys in the remote office puts together, weekly, a report that he has to get the data from the system, add in costings, take from two other reports figures, format and send to the guy at the main office.

All in all, it probably takes him an hour of working on, and I wouldn’t be surprised if it took three hours of mucking around and corrections and other communication issues.

And all that could be replaced with a report directly from the main system that would take 10 seconds, and could be automatically emailed each week directly to the main office without any interaction or activity from the remote office.

It’s funny how you can perceive that an activity wouldn’t need streamlining when it only takes you a minute to read the email, but like an iceberg – under the surface, it’s taking someone else hours.

I guess the morale to the story is that I need to get round to the guys out there more and get their lay of the land, because what you see from your office isn’t the whole story.

Leave a Comment :, , more...

Code Camp Oz Aggregated News

by Andrew Tobin on Jan.23, 2009, under Uncategorized

Hey guys,

So in the lead-up to the Code Camp in Wagga, that happens around April, I thought I’d put together an aggregated tumbleblog so that news on the lead-up and on the event itself can be found in one place (or at least gets some good links that will provide better Google rankings for those that make the effort).

So what I’m planning on doing there is subscribing to any Google blog search rss entries that mention Code Camp Oz, any twitter entries marked #ccoz, any flickr photos marked ccoz, and whatever else I can find along the way.

If anyone has any suggestions on posts to add at any time to the feed, or another site to aggregate in, then please forward them on to me.

The link blog can be found at: http://ccoz.tumblr.com/

Leave a Comment :, , more...

Sony vs usability: What is the value of making software easy to use?

by Andrew Tobin on Jan.22, 2009, under Uncategorized

I was looking through my feeds and I saw a quote in an article that makes incredibly little sense to me from a usability stand-point, and I think works as a thought for how we develop user interfaces for our clients as well.

The quote was about how easy it is to develop for the Sony Playstation 3, from Kaz Hirai:

“We don’t provide the ‘easy to program for’ console that [developers] want, because ‘easy to program for’ means that anybody will be able to take advantage of pretty much what the hardware can do, so then the question is what do you do for the rest of the nine-and-a-half years?” explained Hirai.

I guess what he was meaning was that the Playstation is technologically advanced and there’s a learning curve involved that there will always be more limits to push in it for the next 10 years.

However, what he has said is why make it easy on people to develop for, when we can make them learn over the next 9 1/2 years how to do it the best way – it’s like a challenge!

Do you know what you get if you make it easier to develop to the best of the consoles strengths straight off the bat?  What’s the advantage?

NINE AND A HALF YEARS OF BRILLIANT GAMES.

That would be awful for a games console wouldn’t it? A glut of quality games would be ridiculous.

Okay, it’s a stupid thing to say, but it’s something to remember when we’re developing our own user interfaces – do we spend the time trying to figure the easiest way possible for someone to interact with our software, or do we allow complexity?

There’s a learning curve, there’s how quickly someone can become productive, how much we introduce a reliance on a particular person to do their job.

I don’t know how many times I have talked to someone about how someone is irreplaceable because of the knowledge that one person has for a system or procedure, how much training it would take to replace them, and retrain someone else.

Great, that person is intrenched and has fantastic job security – but on the flip-side you’ve effectively made it so that person can’t be promoted, and you’d have second thoughts shifting them to a different job if they actively sought it.

So it’s never doing the person or the company a favour – complexity in usability is bad, if only because one day you’ll get the call to support what it does and have to remember yourself.

Leave a Comment :, , more...

Another Community Email List

by Andrew Tobin on Jan.21, 2009, under Uncategorized

Just a follow up on yesterday’s post.

There is another Aussie Dot Net Email list that seems active over at: http://groups.google.com.au/group/ausdotnetlist

I’d suggest if you want to subscribe however, to open up one of the emails on there and use the email subscription link, as Google groups only wanted to allow me to subscribe to the daily digest and not individual emails – and it seems hosted elsewhere.

Leave a Comment :, more...

A Thought on the Aussie .NET Community

by Andrew Tobin on Jan.20, 2009, under Uncategorized

I was having a talk on this the other day with Matt Hamilton during work, but how active would you say the Australian Development Community is today?  Is it more or less active than a year ago, or two years ago?

Mitch Denny and the guys do a fantastic job of giving us Code Camp Oz every year, and same goes for Greg Low and the SQL Code Camp but the rest of the time I think it’s gone pretty quiet (although I don’t get to go to Tech.Ed).

Maybe it’s just me, but since Frank Arrigo moved to Seattle the old Tech Talk Blogs has died off, the last post being over two years ago, everyones moved on to Twitter to a large degree and blog posts “feel” less regular, and I was just wondering if it was a general impression that I’ve gotten or whether it’s something felt by others as well.

For the record, the Microsoft guys I’ve seen or talked to on Twitter are still a bit active and Nick Hodge has offered to come out and talk to us at the Albury/Wodonga .NET Users Group in the past (Dave Glover has actually been to see us in the past also), but I can’t even name the guy that replaced Frank at Microsoft for the Australian Dev community.

That being said, I don’t belong to any of the email groups or anything around.

So I have to ask the question, for anyone who stumbles across this blog, is the Aussie Dev community getting quieter, or is it just my perception of it?

Any recommendations on where the conversations are happening?

Edit:

And in a case of FAIL on my part, Frank Arrigo had actually posted about the new head of Microsoft’s Developer and Platform Evangelism division, Gianpaolo Carraro, the day before I posted this, but I was on the road and only just caught up on my feeds!

4 Comments :, , more...

Australian Alt.NET Group

by Andrew Tobin on Jan.19, 2009, under Uncategorized

So there is a new series of Alt .NET groups started up for Australia in the capital cities (namely Sydney, Brisbane and Perth).  You can find them at this address: http://ozalt.net/

There is also an email list going on that is not too active at the moment but might gain momentum.

I’m a bit surprised to see the groups created, although I know there is a great interest in furthering learning for development in Australia, as witnessed by the amounts of people that travel from all over the country to attend Code Camp Oz, I wouldn’t have thought there was a whole lot of interest in segregating these groups apart from the Dot Net User Groups already in existence.

I know that the *DNUG system does have some ties to Microsoft, even though our local group has only received passing support occasionally from Microsoft – although they’ve asked if we wanted presenters, it’s not like they have that much to do with us.

But I wouldn’t have thought it’d be that important to start new groups, when I’d personally prefer to see the same ideas behind Alt.NET brought back into the *DNUG groups.  I know in our small group we couldn’t sustain a second group for the township – as well I know that the guys in the group would be open to presentations on anything that could help their .NET development, be it Microsoft technology or anything else.

Anyway, I guess the guys who are behind this have their reasons and I wish the groups well, and hope to hear good things coming out of them – it’d be interesting to see some Aussie guys get involved visibly in the Alt .NET community.

And hopefully some of them might have a session or something back at the Code Camp to let the rest of us know what they’re about!

Leave a Comment :, , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Archives

All entries, chronologically...