Tuesday, 20 May 2014

The end for NeHTA?

A recent review of PCEHR produced a number of recommendations. ITNews has a good summary of the key findings, one of which is the dissolution of NeHTA.

Defining Requirement Types: Traditional vs. Use Cases vs. User Stories | TechWell

Defining Requirement Types: Traditional vs. Use Cases vs. User Stories | TechWell:

'via Blog this'

This is a great article and substantiates my thoughts that corporate IT is not capable of rigorous SW development methodologies.

I have a purple carrot (var. atrorubens) in front of me. This epitomises the SDLC for SW engineering; it is as expected, uncomplicated and readily available. It is considered the norm since the dawn of time, or at least carrot recorded history ( <900BC). Having developed and tested telecomms and OS SW for years with detailed specifications covering protocols, standardised user interfaces and messaging systems, it seems common sense to me that systems should be clearly specified in a business benefit, then technical manner.

However, over time, once the introduction of fashionable orange carrots (var. sativus) appear around C18 the appearance of a purple carrot seems unpalatable for most customers.

This is Agile.

Having come across countless end users and business representatives, who apparently are the gatekeepers to an application go-live, and have no accumen in the definition of business requirements, it makes perfect sense that corporate IT has lent towards the advantages that Agile affords; an approach that advocates regular consultation with a customer that hasn't got the time, notion or training to deal with detailed requirements.

This might seem harsh, but so many projects have proven just that; the end user representatives are both the ones most qualified to determine if the new system changes are congruent with the proposed business changes, but also the least capable to dealing with detailed business and functional requirements. They don't like purple carrots.

Ideally, the business, or end user representatives want orange carrots; they were eating something else nice and tasty for ages, and while the new fangled carrots were interesting, it was only until they became mainstream (read IT systems delivering something useful) that they became useful.

The business wants orange carrots; no BPMN, no UML, in fact, no detailed specs. We can sort out what it's meant to do once you've built it. Agile is for the IT illiterate end user.

This shouldn't be seen as a shortcoming, but rather as a take on how Agile must be used by IT staff to engage the business.

The business DO NOT CARE how nicely your UML diagram looks; they don't have the time nor inclination to understand it. It isn't outlined how they would do it (a quote from someone not 3 months ago), they don't have time to read the specifications anyway, and do the BAs really understand what we need?!

So, if your business stakeholders are not SW engineers, erm, don't treat them like SW Engineers. SW Engineers like the thought of purple carrots, as it reminds them of vi. The business wants something they can eat now, so give them microwaved carrots.


Tuesday, 10 January 2012

Death and birth of data and disks

Western Digital Community - How To.

'via Blog this'

This has just saved my data. As a firmware update had bricked my WD ShareSpace, I thought it would be a cinch to mount one of the RAIDed disks and copy the contents over to a temp RAID until I find a long term solution; I was wrong. I thought I had the disks in RAID 1, but it should be easy grabbing the data off them right? hur dur.

While I thought it would be a simple case of getting an EXT3 driver for either the Mac or Win7, the RAID caused problems on the disks.

I tried:
  • MacFUSE 2.0.3 with fuse-ext2 0.0.7 - nuttin'
  • OSX Fuse 2.3.4 with fuse-ext2 0.0.7 - I was able to mount sdb1 but not sdb4
  • explore2FS 1.07 - could read the files off the partition with the data (sda4 or sdb4), but couldn't copy them
  • ext2explore 2.2.71 - nada
  • ext2fsd 0.51 - could read sdb1 but not sdb4
  • linux reader - no
  • vv 0.7 - nein
  • Ubuntu 11.10 trial off USB in Mac OS X Lion - non
  • Ubuntu 11.10 trial off DVD in Mac OS X Lion - niet
  • Ubuntu 11.10 trial on PC Win 7
.
.
.
.
.
.
Yay!

The link on the WD website had a nice simple run-down on the commands to get the RAID going. I didn't follow exactly and got the RAID volume going in degraded mode only using one disk. This was in case it all went wrong; I still had one disk left, see!

Once I had the Win7 notebook working and had mounted both the old RAID disk and a new drive to copy the contents, it only took 9 hours to extract the data. 




Friday, 19 August 2011

Force cells in Excel to use Text format rather than Number format - delphi

Force cells in Excel to use Text format rather than Number format - delphi

Obvious solution is obvious. Except for me.

I'm reading in test case values from MS Excel for an automation framework, so many values are coming across as floats, irrespective if I try and reformat them in my code. A simple prefix of a ' and everything is working. So simple yet this has eluded me for weeks.

Wednesday, 17 August 2011

Main Page

Well I have had a fun day. I've made it outside only once to pick up a parcel; a Concept 2 Model E rowing machine, which I put together whilst going through a brain-acher posed by a friend.

The problem is from OS X Address Book no longer playing nicely with GMail contacts.

I'm probably on a red herring, but the log file shows...

2011-08-17 13:23:22:941|AddressBookSync|772|111430|ISyncSession|Error| Unresolved reference encountered during push for client com.apple.AddressBook
2011-08-17 13:23:22:941|AddressBookSync|772|111430|ISyncSession|Error| Relationships causing error:
2011-08-17 13:23:22:942|AddressBookSync|772|111430|ISyncSession|Error|
Record 'A51D87CA-7388-4F9B-BE56-14364B80ED75'(com.apple.contacts.Group) refers to record '1CF84336-07C5-4AA8-8AF0-AD8CD76A3BCD' in relationship 'distribution email addresses'


Apart from stating the obvious that relationships cause error, I'm wondering how to analyse the Address Book DB. The previous post was how to get to the Address Book now that Lion had set the Library folder to hidden by default. 


Once you have access you need to be able to see it. Fortunately we have a number of ways it seems. Address Book uses SQLite for storage. Open Office can view this natively just by opening the database and selecting to connect to an existing database as type 'Mac OS X Address Book'.


Otherwise we need to set up a ODBC connection. Fortunately we have some options.


Within /usr/lib/ there looks to be some suitable files (libsqlite3.0.dylib and libsqlite3.dylib) but I probably didn't set things up correctly. I did find Actual's ODBC drivers, but they wanted $$$ for something that I was sure someone had worked out how to do before. Fortunately www.ch-werner.de/sqliteodbc/ has exactly what you need. Install sqlite0odbc-0.83 and you 're nearly there.


The final step is to ensure the database is associated with the driver to be viewable as a data source.



  1. Open up ODBC Administrator as the link above suggests, specifying the location of the driver.
  2. Open the  /Users//Library/ODBC/odbc.ini file 
  3. Add the location of the database you're trying to access. Database =
  4. Open OpenOffice, Select Database -> Connect to an existing database -> browse
  5. You can select the data source you have just created.








Main Page

Updated to Lion? Must be missing user Library, here is how to get it back. « TechnoCraz!

This has been doing my head in all day. Apple have decided to hide the user's library folder from us. I can understand most people don't want to see it, but if you do, there is a simple fix:

1. open a term window.
2. $> chflags nohidden /Users//Library
3. .....
4. PROFIT!!!

Updated to Lion? Must be missing user Library, here is how to get it back. « TechnoCraz!

Monday, 25 July 2011

Maturity Models Have It Backwards « Developsense Blog

Maturity Models Have It Backwards « Developsense Blog

Happened to stumble on this whilst searching for TPI® NEXT information. I think the key point is most organisations stop once they get to the low to middle stages of models (the 'defined' or 'repeatable' level and miss the point of getting to the higher levels ('optimising') which is where the most benefit is achieved. At that point, the clever analogy that Michael uses starts to come true.

Continuing on the same theme, it's as if the organisation has gone to school, learnt their times tables, but haven't grown up. It's probably a fault of most models and most organisations using them (I know I've been guilty of this) that once the teenage level of maturity (strict process adherence) are reached, then 'mission accomplished'.

There really needs to be greater emphasis on models and consultants to push to get to the truly high levels of maturity; where the organisation 'thinks' on how to approach different projects and processes are adaptable and chosen according to the conditions and goals. Scott Duncan's comment alsostruck a chord.

Thursday, 21 July 2011

RDoc cheatsheet

Lovely handy RDoc cheatsheet. Should make sure I actually bother writing handover documentation for the keyword driven framework I'm building.

Monday, 17 January 2011

Test Driving Your Code with OCUnit

I'm liking development in XCode. Tools are so intuitive. OCUnit is built into XCode, with near identical syntax to other XUnit frameworks. HW simulation available which while obvious, isn't always done well for many devices. I'm not sure the arguments of a 'closed platform' hold completely against Apple; they have made it very simple to develop apps, and if you want your app available for your enterprise only, you can do that (it seems). Sure, it's filtered.

I'm keen to look at Android. It's obviously easier to get tools out there, so I'm eager to see the maturity of the dev and unit test tools themselves.

Test Driving Your Code with OCUnit

Wednesday, 5 January 2011

Zennaware » Home of Cornerstone Subversion Client for Mac OS X

Finally got sorted installing dev tools on my mac. Looked at Git but for the meantime I'm happy with SVN. Set up an account with Assembla, and have crawled around the interwebs dowloading potentially useful tools. It's not too strange coming back to development on a Nix box but all this pretty GUI stuff is rather nice.

Zennaware » Home of Cornerstone Subversion Client for Mac OS X

Great comparison on hosted SCM services here

http://www.svnhostingcomparison.com/



Tuesday, 19 October 2010

From closed Windows to fresh air

I've finally taken the plunge and purchased a Mac. For the ease of image manipulation to support my expensive photography hobby, to aggregation of my personal data effects in one place, within a few hours I am up and running. . . . . I don't recall any MS Windows migration being so painless, even if it was between machines, let alone OSs.

Some top tips if you are thinking of doing it.
  1. iPhone - follow links in new page. Pressing and hold a link will trigger a pop-up prompting if you want to open link in new page, or current page.
  2. iMac - iTunes migration. Have all your music in one place; e.g. NAS drive. Do not move it.
  3. iMac - iTunes migration. Move your iTunes library XML file, and find/replace all references to your NAS music store location. e.g. PC was file://localhost/X:/Music and I replaced with file://localhost/Jupiter/Public/Shared Music/Music/.
  4. iMac - iTunes migration. Once the XML file from your decrepit PC has been COMPLETELY updated with the new absolute path on your sexy new iMac, import this into iTunes.
  5. iMac - iPhone App migration for iTunes. Move the folder "Mobile Applications" in your iTunes base directory somewhere else, then drag and drop them from Finder into iTunes. Otherwise you will receive an "Error -50" and start getting pissed off.
  6. iMac - general migration. Ensure you have GB ethernet. Any network file transfer will occur in minutes rather than hours, and you know how many films containing the skin end of the spectrum you have; it would aeons to transfer over 100MB.
  7. iMac - SW install. Don't do it after a glass or two of wine; you end up purchasing Lightroom 3 and other things. The package arrives tomorrow.
  8. iMac - SW install. Don't install the OSX updates immediately, that can wait while you get your core apps done. Kick it off after you are done or in the morning and let it do it's thing; it might require 1-2GB of updates.
  9. iMac - SW config. Set Google Chrome on your PC to sync with your Google account (if you haven't got one, get one). Install Chrome on your Mac and also allow Chrome to sync. Hey presto, Bobs your Uncle, Fanny's your Aunt, wudubileevit, you now have matching bookmarks across devices.
  10. iMac - iTunes/iPhone/Outlook. Firstly, export your contacts from MS Outlook to CSV (bye bye!), then import into GMail. Gmail will give you some dialogues to ensure you have minimal or in my case zero duplicates. Now update the contacts sync info in iTunes to specify sync with GMail contacts.
  11. If you are tired then go to bed. No good will come of configuring your electronic life when tired. Tiredness leads to mistakes. Mistakes lead to errors. Errors lead to data loss. The road to data loss is dark and one way, and we can all feel the disturbance in the force when someone has data loss.

Thursday, 7 October 2010

Product Risk Management

I'm just updating content for a training course, and I know I spend a lot of time conveying the importance of testing etc etc, but to do so in the most succinct and digestible way, to ensure the thought or lesson objective is retained.

I'm currently trying to communicate the importance of risk-based test strategies, and one of the biggest concepts ofr me is that "The main purpose of testing is to mitigate risk, therefore our testing strategy should be focused on risk mitigation, rather than purely requirements conformance".

The basis for this is my perception that the majority of testing is founded upon the idea that the requirements as defined are to be treated as 'gospel' and therefore deviation from the requirements alone is all that is required to ensure successful delivery.

In actual fact, it is the tacit knowledge; the undocumented requirements that are seemingly obvious to end users and seemingly invisible to others, that should be captured and assessed. Such things as performance, useability, security, compatibility, in fact all the other abilities, should be factored in.

So, my question, is if testing is about finding defects against system, is there a more elegant and or accurate way to describe a test strategy as the artefact that documents the focus of testing as identifying the most critical defects which would expose the system to the biggest risks.


Thursday, 23 September 2010

Medicare e-health contract in limbo | The Australian

The (U/O) HI story continues.

I don't know what the problems are, but it seems government organisations work to different time-scales than private enterprise, who are all ready to press ahead in this case.


Tuesday, 7 September 2010

ongoing GMail

Down to 41 pst files left, and I'm starting to enjoy GMail especially with some of the new stuff like priority mail.

Wednesday, 1 September 2010

Moving slowly into the past

After years of trying to avoid it, I have finally bitten the bullet, faced the music and kept up with the Joneses, by moving to GMail. For a start, it runs far more quickly than MS Outlook, especially when dealing with the amount of email I have kept, but also it means I can access it wherever rather than having to boot up to view.

The only challenge is migrating 61 pst files, yes that's right, 61 dirty fat pst files, from my PC to the interwebs. For each project I work on, I create a new PST file, and move pertinent material from Inbox to the project PST file. This works great as I know everything will be in one place, and at the end of the project, I can close that PST from Outlook and reduce the number of emails in my face.

Now however, it is getting harder and harder to manage all of this so a cloud-based solution makes sense.

Unfortunately, unless you have a Google Docs domain you can only upload slowly via Outlook itself, copying files into the imap mirror folder. There are a few scripts that can assist, but due to the miss and miss rate, it is easier, but rather time consuming to upload project by project.

16 down, 45 to go. . . . .

Thursday, 26 August 2010

Agile recipe

One of the most interesting things of Agile is that it means so many different things to so many people. The first thing I would have to say is that it is just like waterfall or rigorous software methodology (RSMs) projects. Yes you heard me right; there is no difference between Agile and Waterfall.

The fundamentals of software development remain the same regardless of the process, and I tire of the Luddites who espouse the virtues of Waterfall or the evangelists who reckon there is no way other than the Agile way.

What is software development?
  1. A Customer requests a product.
  2. A Developer creates a product.
  3. A Tester verifies and validates that the product has integrity and is suitable to be presented back to the customer.
I've obviously simplified these roles, so the same person may wear the hat of customer and tester, plus each role might be decomposed further, but isn't the above the essence of software development?

Let's take one part of the process. What is the underlying process for a customer requesting a product?
  1. The customer speaks to the developer and asks for a product.
  2. The developer says whether or not it can be done and agrees, providing a time for expected delivery.
Lets look at the two approaches in ideal implementations.

In Waterfall, or more accurately a RSM, requirements are captured, documented in a clear and unambiguous fashion, with extensive formal reviews to ensure quality prior to agreement with all parties.

In Agile, the requirements are captured individually on cards and verbally agreed between the customer and developer. Confirmatory questions and regular feedback ensure mutual understanding.


Now looking at them realistically:

In Waterfall, or more accurately a RSM, requirements are partly captured, poorly documented by those who have little understanding of how to capture true business requirements or communicate the value of each feature requested, followed by a cast of thousands demanding sign-off, followed by endless changes, updates and political positioning around getting what some departments want out of the budget.

In Agile, the requirements are captured individually on cards and verbally agreed between the customer and developer. Confirmatory questions and regular feedback ensure mutual understanding.

So there we have it. I've been fortunate enough to work on RSM implemented projects and where the domain is well known and stable, say a telecommunications protocol (Q.931 for example), it has been really clear what the requirements are, and hence was easy to implement and test. However, it seems the majority of IT systems involve a customer who isn't sure, a developer who doesn't always understand the domain, and a tester who is dropped in the deep end and is primarily an end user.

What Agile does is give immature IT shops, or fast-moving industries where time to delivery is key, an approach to allow the customer constant feedback to ensure the project stays on track.

What Agile does is address the inadequate implementations of RSMs employed by software firms, by ensuring communication, courage, and response to change operates more effectively. The thing is, if people followed the process correctly, then they wouldn't need to try out Agile.

My biggest concern for companies moving to Agile is not what it gives them but what it doesn't. If you don't have the staff that are capable of following a detailed rigorous process with documentation that ensures communication is maintained, what makes you think they can deliver in an Agile world?

I see a lot of organisations struggle with Agile, and in most cases it is because the calibre of the people involved is not high enough to deliver in a courageous and fast moving environment. There are some amazing individuals in organisations; I met some testers yesterday working their way to making testing integrated into the hybrid Scrum teams, but you can tell there are some people they are dealing with that are better suited to having a strict process regime.

My point is Agile is not lacking in rigour, only the rigour has to be applied by the individual rather than the process. It is just as 'expensive' (this issue of cost comparison between Agile and RSM is something else that bugs me), just as hard work, but the onus is on skilled and motivated individuals, rather than average SW engineers and end user testers.

I'm now faced that my wrap up will sound more like a rant, but I suppose it surmises or at least demonstrates the strengths of the many different approaches to SW development.

Firstly, I do not think nor believe anyone else stands by there being only one way to develop software. There are many Agile and many RSM processes, and like a persons sexuality, there are many positions and processes along the scale. Terrible analogy I know but it makes sense. Actually that doesn't work, because people can't change their sexuality. I believe the process should adapt to the conditions of the project and the needs of the application. As a result, we have as many different processes as we do have religions (that's better, sex and religion and software development processes in the same paragraph).

I feel an epiphany coming on.

What are the conditions for a project moving to Agile?
  • Do you have highly skilled motivated staff. (be honest now; are they really that motivated? Does drinking 6 Ouzo and cokes at lunch really count as a skill?)
  • Is the domain ABSOLUTELY clear (does the customer really know what they want?)
  • Is there a formal process in place that already works? (if it is working for you, why change it?)
  • Do you have the skills and infrastructure to support highly automated testing? (you ARE going to automate aren't you?)
  • Do you have the support of management to move away from heavyweight documentation? (are you really going to get your BAs, developers and testers to develop 148 page word documents like test summary reports, negating any benefit achieved by using story cards).
  • Do you have an engaged customer? (without that you are just doing Waterfall without requirements? You're on your own now.)
  • Are the developers doing unit testing? (If they aren't doing unit testing, why do you employ them?)

Now lets get back to my original point. How many issues above can affect both Agile and Heavyweight processes alike? I think the issues that affect success are more down to the rigour of implementation of approach rather than the approach itself.




Thursday, 29 July 2010

Cheap equipment

Unreal deal at Harris Technology for a 5 port Gigabit switch. I bought mine last week from Officeworks only because I showed them the ht.com.au website and Officeworks were selling the D-Link DGS-1005D for $80, compared to only $48 here.

HT have the same price for the DES-1005D (10/100) as the DGS-1005D (10/100/1000) so I can only assume it is a typo.

Considering that the majority of other 5 port and 8 port switches are around 90 to 130 AUD, this is an awesome deal.

Happy days.

ATM pokie

In what the presenter suggests is a more successful attack than John Conner on an ATM, Barnaby Jack gave a successful second-time presentation at the 2010 Black Hat Conference in Las Vegas, after last years was pulled at the request of one of the ATM vendors. He demonstrated two exploits, one via the network connection, the other via USB. You might ask how you can get at the ATMs USB slot; well the vendors provide a standard lock. As happens so often it seems that only a combination of physical and software security will provide a robust system.

Really interesting demonstration and a great example of thinking outside the (strong) box.