Friday, October 22

Mob SIG Event on Mon 25th October

W indows Phone 7 - has Microsoft got mobile right this time?
This is Microsoft's latest approach at the mobile phone market. It is a drastic shift away from their previous attempts at trying to bring Windows XP feel into the palm of your hand.

The entire WP7 experience has been standardised to follow the "Metro" theme which embraces concepts such as discoverability, content over chrome, and touch as the primary input (without the fiddly stylus).

Join David Burela and Jarred Sargent as they give an overview of what the Windows Phone 7 platform is and how to get started with it.
David will take us through a demonstration of the phone platform and how it differs from previous Windows Mobile phones. He will also talk about the UI design considerations of the "Metro" theme that permeates through the entire phone.
Jarred Sargent will give an overview of what it takes to easily build applications for the phone and will demonstrate some easy hello world applications and his experiences as a developer.
For more details

Wednesday, September 29

Endless Iterations

S ome time ago I sat in on two iteration meetings for an adjacent team. There was a possibility that I would join the team on a part time basis, a possibility that never eventuated.

The project they were working on was already quite far along. They claimed to be using eXtreme Programming,  to be agile, and to follow two-week iterations. However:
  • The team were not asked to commit to completing the tasks scheduled the iteration planning meeting.
  • The instead of scheduling based on the historical progress of the team in previous iterations the capacity of the iteration is simply assumed to be 80 hours times the number of developers.
  • Defects from failed acceptance tests were postponed until the end of the release, leading to a final “test and fix” phase.
  • Rather than using rolling wave planning and progressive elaboration, all stories were assigned to specific iterations during the initial release planning phase.
  • There was no closing ceremony for the iteration—no demonstration of completed functionality, no interim retrospective. Unfinished tasks were simply moved to the next iteration, and planning for the new one began immediately.
  • There was no learning from one iteration to the next. Mistakes were repeated, and any lessons learned were quickly forgotten in the rush to complete tasks.

The point of time boxing is to
  • Provide risk management 
  • Limit the time spent on any one task
  • Habituate the team to meet deadlines.
  • Avoid wasting time on sunk costs
None of these objectives were being met. 
They were continually starting but never finishing

Monday, September 27

Sticky Code

I was working with though some legacy code when I discovered that the original coder had
  • avoided magic numbers by using Macros which was good
  • defined the Macros in multiple places which was bad

Tracing the Root Cause

To understand why this duplication happened, I started asking myself a series of "why" questions:

 
Why was the macro duplicated? 
Because the original location of the definition was poorly chosen, and later developers were reluctant to move it.

Why were they reluctant to move it?
Because moving a definition requires deleting it from its original location.

Why the hesitation to delete code? 
Several possible reasons:
  • They didn’t have proper source control.
  • Their source control system didn’t clean up deleted files from the workspace.
  • They lacked sufficient test coverage to feel confident in making changes.

Why This Matters

Code definitions and implementations need to be free to move between modules and libraries as a system evolves. If they aren't, you’ll eventually end up with duplicated logic, circular dependencies — or both.

In short, good architecture requires not just clean code, but also the courage and tooling to move and delete it when necessary.

Related Posts

Monday, July 26

The Art of the Question

What would you do if any question you could ask you would get an answer to?

Today we are closer that ever.

Any knowledge worker will admit how indispensable internet search is to their work. I have a suspicion that search is still under utilized.

As a programmer I have relied on search engines for a long time. In each project I work on their are new technologies, or API’s that I need to work with or neglected corners of old technologies that need to be used in different ways.

Lately the number of searches I do has risen dramatically. There is simply no excuse anymore to guess or remain ignorant about any information that is important to your decision making process.

Obviously it is still possible to spiral into analysis paralysis if you take this too far. However the length of time it takes to find an answer has shrunk so dramatically that it can not help change the rules of the game.

Asking the right question has long been recognized as important in the fields of critical thinking, skepticism and root cause analysis.

The last few years I have been relying increasing on e-books. Having your technical library on your USB thumbnail drive, Kindle or iPad makes a big difference to your workflow. Information becomes much more accessible. Our very relationship with information is changing.

This is what the information age and the internet has been promising and partially delivering for two decades. Back in the early days of the internet it seemed as if we had access to an enormous amount of information however when I compare what we could do with this information then with what we can do now, there is no comparison.

Update:
With todays AI tools finding the right question is even more relevant

Thursday, March 11

Melbourne User Groups

There is a lot going on in Melbourne at the moment with as many as seven different completing ICT related events on some nights.
A few years ago I started keeping a list of IT related events that I regularly attended on my team wiki as a way of encouraging coworkers to do more professional development.

Eventually I moved the list to my Google Calendar and this blog. People started emailing me details of events and groups, and the list rapidly expanded. You will find upcoming events and a list of user groups on the right hand side of the blog. The list of groups has become unwieldy, therefore I have sorted them into rough categories below.



  • Business Analysts


  • Cloud Computing

  • Computer Clubs for Specific Platforms

  • Database User Groups

  • Entrepreneurs

  • Hardware and Electronics

  • How to Improve your IT Job Search

  • IT Pro Groups

  • Web Design and Implementation


  • Women in IT
  • For more information about IT and entrepreneurial events in Melbourne subscribe to the Melbourne Edition of the Startup Digest curated by yours truly.

    I had a hell of a time trying to format this page using the so called wysiwyg editor. I finally gave up and edited the html by hand. Blogger kept on inserting extra lines at certain places.
    I was also getting blank anchors and strange indenting.