Thursday, December 17, 2009

IBM Lotus back with with a vengeance...

In case you haven’t noticed, IBM Lotus not only didn’t go away, it’s here with a vengeance. LotusLive.com claims 18 million users, the 8.5 release of Notes/Domino is a winner in storage savings, Lotus Connections beats other social software platforms on many dimensions, and Sametime’s pushing the envelope on real-time collaboration at a global scale.

Zdnet.com

Wednesday, December 09, 2009

Cirrus Australia #6 in CRN Fast Top 50

Cirrus Australia has just been awarded sixth place in CRN’s inaugural Fast50, a competition which ranks Australia’s top fifty IT resellers in terms of net sales revenue growth from financial years 2007-2008 to 2008-2009. The award capped off  Cirrus Australias best year on record – a year in which revenue grew by 156%, our Sydney office was significantly expanded and we achieved IBM Premier Business Partner status.

I've been meaning to blog about the culture that is at the heart if Cirrus Australia, but I've been so busy enjoying my job that I've neglected the blog a little. However, Darren articulates it better.

Darren also attributes Cirrus Australia’s success to the focus on quality of life for staff, customers and stakeholders that is fostered in the company.

“The whole idea of using quality of life to measure outcomes has been absolutely fantastic. This is our mission statement and rather than merely paying lip service to it, it really forms the base culture of the organisation. I have a company full of incredibly bright people who are motivated to improve the quality of life for their customers. The team specialises in IBM software implementation and providing a solution that works for their customers is what drives them. When this culture pervades the organisation, you end up with staff on top of their game. What we have is a very motivated and technically proficient offering,

You can read more about the Cirrus Australia approach here.
http://www.cirrusaustralia.com.au/wps/wcm/connect/cirrus/site/about/latestnewsitems#fast50

and the Fast50 article on CRN
http://www.crn.com.au/News/161995,fast50-top-10-unveiled.aspx

Friday, November 13, 2009

Lotus Notes is shaking that 'legacy' tag

It looks like Lotus Notes is shaking that 'legacy' tag.


New applications are typically installed in web-based configurations thanks to "a massive bias towards" online applications and services. For example, a major roll-out of web-based email and collaboration built on IBM's Lotus iNotes is underway, while back-end administrative systems and even Bankwest's teller system are installed as server-side applications with web-based front ends.
"Over the years, there has been a very conscious effort to avoid legacy systems," Clasquin explains.

Read the full article.

Zdnet CIO Profile : Bank West

Wednesday, October 07, 2009

Interesting Announcements in the IBM Lotus World

There has been a flurry of announcements on Ed Brills blog recently. They are all around changes in the Lotus world for the impending release of Lotus Notes and Domino 8.5.1.

Here is a short summary
  • 8.5.1 will be available Monday 12th October
  • Domino Designer Client will now be FREE
  • Client Access Licence (CAL) has been simplified basically an Enterprise CAL and a Messaging CAL

We also wanted to address the changing nature of client access. For too long, we have asked you as customers to decide whether a particular user is a "Notes user" or a "browser user" or a "mobile user".  We thought it might just make more sense, given the trend towards ubiquitous access, if an end-user became a "Domino user", with the choice of tools and interfaces as needed.
  • An additional feature is the inclusion of the Lotus Mobile Connect client license in the Lotus Domino Enterprise Client Access License.
And it looks like there is more in 8.5.1...

That concludes my three-part introduction to Notes/Domino 8.5.1 -- and I haven't even talked about the technology yet, from the iPhone support in Traveler to the new Eclipse Lotuscript Editor to the Notes UI improvements to the further enhancements in DAOS.

Stay tuned..

Monday, September 07, 2009

Yes, I'm still here.

I've change employers - what! you didn't notice. I'm not surprised. The more observant of you might have noticed the small update to the disclaimer and update to my linkedin profile. Since joining Cirrus Australia I've not had much time to spend on keeping up with all things yellow and planetlotus. The last two months have been a blur, a very busy and very good blur. I've had plenty of commentary and ideas that I want to post about, it's just that finding the time is a challenge right now (so don't pull my link just yet Yancy).

You can read more about Cirrus Australia, Australia's newest IBM premier business partner, on our recently updated website.

www.cirrusaustralia.com.au

Friday, June 12, 2009

Simply Amazing - if Apple did a medical kiosk...

It's not often that you see an application that simply blows you away. This video has been receiving well deserved praise in the yellow-verse during the last week. If you are not a member, of said yellow-verse, you might have missed it. Frankly, its well worth watching regardless of which is your preferred platform/language/religon/taste in beer yada, yada.



Nathan Freeman and Chris Blatnick have been presenting and actively evangalising 'impactful' interfaces. This new one, blows away what has been in their presentations thus far (which has been pretty good anyway). 'Bones' sets the bar well and truly high. The whole project, not just the UI, is pretty astounding. Peter Presnell has a good write up which is worth a read.

Nathan and the team at Lotus911 have worked out some of the trickier details in crafting the interface, kiosk mode and composite applications, but have been smart in choosing Lotus Notes & Domino for the ancillary parts of the project around security, encryption and network failure. They've also been smart in choosing the hardware specifically for the target environment.

Dare I say a smart choice for a smart planet.

The take-away for Lotus Notes developers, who don't develop kiosk applications all that often, is that with composite applications you can craft any user interface you or your users desire.

It may not be easy, but at least now we know it's possible.

Well done Lotus911, Nathan and the Team.

Monday, May 25, 2009

Paper : Introducing Scrum into Government

Here is an award winning industry paper by Adrian Royce, from the Australian Software Engineering Conference (ASWEC 2009), via Rowans blog.

Here are some extracts;

This paper outlines the steps the author took in introducing the Scrum agile process into the Dept of Housing and what lessons were learnt.


Housing has now been running the ‘Scrum’ agile project delivery process for over 2 years. During that time all software projects have been delivered on or ahead of agreed time frames. ICT staff, engaged in the Scrum process, became motivated about delivering value to the client. ICT staff morale increased which led to staff retention. Feedback from business units across the department indicates that the usage of Scrum is a success.

The agile process called “Scrum” was selected over the
alternatives because it:
  • Emphasized communication and collaboration, functioning software, and the flexibility to adapt to emerging business realities[1];
  • Was not just relevant for developers but the entireproject team; and
  • Embraced agile philosophies such as the Agile Manifesto[2].
I particularly like the summary, which highlights an often missed attribute of Scrum.

The use of Scrum was a success at the Department of Housing. However even as a lightweight methodology, it requires much discipline.


Whilst Scrum is an Agile method, Agile doesn't mean that there is a lack of discipline. In fact the contrary is true, in that Scrum and XP have a great deal of discipline. This is how higher quality software is produced. What is different from traditional 'waterfall' development is that redundant and wasteful practice has been removed.

If you are interested in such things, or how Scrum and Prince 2 integrated for this department, then go read the paper.

Tuesday, May 19, 2009

Ubuntu 9.04, Nvidia and GeForce4 MX440

If nothing above applies, move along - nothing to see. This is one for the google search.

If you are trying to get Ubuntu and a GeForce4 MX 440 with AGP8X working at a decent resolution then the following may help. The information is a little scattered, so here it is in one place.

1. Download the latest version of the Nvidia driver NVIDIA-Linux-x86-96.43.11-pkg1.run

2. Install (instructions at the link)

If the screen fails to come up, or displays an error about choosing a different resolution and refresh rate then boot in safe mode, no user interface.

3. Modify your /etc/X11/xorg.conf like below (backup the default version first!) - you might need to brush up on your vi commands

Restart.

You should see more resolution options when you open the Nvidia settings. You can then set your resolution.

4. To make the resolution stick, update the file /home/.username/.config/monitors.xml with your preferred resolution.

Links for futher information

https://bugs.launchpad.net/ubuntu/+source/nvidia-settings/+bug/362704/comments/6
http://ubuntuguide.org/wiki/Ubuntu:Jaunty#Install_Latest_Nvidia.2FATI_drivers

Other Notes

1. Every time that you upgrade, you might need to re-install the Nvidia driver.
2. If you have a more modern card you might not need to do this.


Files

xorg.conf

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder63) Mon Feb 23 15:44:13 PST 2009

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
EndSection

Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
# HorizSync source: xconfig, VertRefresh source: xconfig
Identifier "Monitor0"
VendorName "Unknown"
ModelName "CRT-0"
HorizSync 30.0 - 81.0
VertRefresh 60.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce4 MX 440 with AGP8X"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "metamodes" "1152x864_60 +0+0; 1280x1024_60 +0+0; 1024x768 +0+0; 800x600 +0+0; 640x480 +0+0; 800x600_60 +0+0"
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

monitors.xml

<monitors version="1">
<configuration>
<clone>no</clone>
<output name="default">
<vendor>???</vendor>
<product>0x0000</product>
<serial>0x00000000</serial>
<width>1152</width>
<height>864</height>
<rate>60</rate>
<x>0</x>
<y>0</y>
<rotation>normal</rotation>
<reflect_x>no</reflect_x>
<reflect_y>no</reflect_y>
</output>
</configuration>
</monitors>

Thursday, May 14, 2009

My quick tips for UI design and another example

Here are some quick tips that I keep in mind for user interface design, bearing in mind that I'm not a graphic designer (so don't be too harsh on me!). I also found another user interface sample in the project archives.

Style

Here are my six style rules (they are not so much rules as guidelines really) that I use when creating or making over a web or Lotus Notes user interface.

1. Rule of thirds

Most of my websites and notes apps are divided up into thirds, three columns or variants thereof. It's a well know composition technique that has been around a while.

http://desktoppub.about.com/cs/pagelayout/qt/rule_of_thirds.htm

2. Complementary Colours

There are a set of colours that work best together, so when I'm deciding on which colours I usually choose from a pallette of complementary colours. If you're not up on you primary colours and matching blends then do what I do and use the following websites to get a pallette to work with.

http://www.easyrgb.com/index.php?X=HARM
http://www.colourlovers.com/

3. Restrict the numbers of colours

That's right. just because there are 12 colours that work well together, doesn't mean that you should use them all. Between 3 - 5 colours are a good combination that tends to be less distracting. That doesn't include a violator.

4. Consistent Fonts

Keep the fonts consistent. That is, try to keep the different types of fonts to maybe one or two types and ensure that they are both a serif or both san-serif. Ty not to mix the types. There are instances where mixing and matching can work, but typically that seems to be websites of traditional printed materials like newspapers that have a long history of serif fonts.

5. Alignment

Nothing stands out more that something that isn't lined up. Alignment that is inconsistent looks sloppy, unordered and distracting to the user. I believe that most user scan the screen and alignment helps to scan the information quickly.

http://www.design-lib.com/alignment-in-graphic-design-gd.php

6. White space

Pay attention to the space around your UI elements, do they looked like a can of sardines or could you park a bus between them. Playing around with your whitespace proportions can make all the difference, try it until the spacing feels right - then stop.

Whitespace is often used to create a balanced, harmonious layout

http://www.alistapart.com/articles/whitespace
http://interfacematters.com/2009/03/cheap-ui-trick-add-whitespace-with.html

Function

Here are my five functional guidelines.

1. Hide the irrelevant and clutter

If the user isn't suppose to click on that button, then hide it. If that information on the screen is not important at this stage of the workflow, then hide that too. Have you ever sold a house and removed all the clutter, cleaned the surfaces and made it look like a show home ? Do the same to your UI.

2. Consistent behavior

I don't like to surprise the users, if they click on one export button and it asks for a filename and fills in a default, the any other export buttons should do the same. In essence when they perform an action they should have the same experience.


3. Simplify the choices

Don't give the users 5 different ways to do something, that's four extra ways that they have to remember and recall. Sure, provide some level of personalisation in the way the user can interact, but the fewer the underlying choices the better.

4. Remove Mild Annoyances

Things that are midly annoying in development and user testing, will be hell for users that have to use the application daily and for long periods of time - so spend some time fixing up those minor annoyances.

5. Proactive help

Set defaults. For example, if you are writing an export routine, set a default filename, set the default fields and options. Show context sensitive examples to give the user somewhere to start. It might mean a bit more coding, but just think of the amount of time that a user would waste repeating the same thing, over and over.

Sample from the archive

As promised, here is a user interface make over from the archives, that included some (but not all) of my guidelines.

Form. Note rule of thirds, colours, alignment and whitespace.

Tuesday, May 12, 2009

UI : what's the value of eye candy ?

Would you like to add some eye candy to your applications or website ? Need to justify to the boss some budget for a graphic designer ? or maybe even that Photoshop 101 course ?

Have a look at this article on a list apart, which explains why eye candy is more than just decoration.

According to a 2002 study, the “appeal of the overall visual design of a site, including layout, typography, font size, and color schemes,” is the number one factor we use to evaluate a website’s credibility.

That's right, if your website design dates back to the 1990's then perhaps you should think about adding a bit more eye candy or giving it a makeover.

The article also points out that, apparently, attractive things work better.

Okay, so maybe perceptions are important to product design. But what about “real” usability concerns such as lower task completion times or fewer dif´Čüculties? Do attractive products actually work better? This idea was tested in a study conducted in 1995 (and then again in 1997). Donald Norman describes it in detail in his book Emotional Design.

So there you have it, eye candy does have value.

Friday, May 08, 2009

Scrum Intro Presentation

From ScrumMaster.com.au website is a great introduction to Scrum. The presentation covers the the roles, the flow, the theory and artefacts.

Thursday, May 07, 2009

UI Pattern : Linking Data

Here is a UI sample from my latest web application, for those of you who are interested in such things.

The Problem.

To date, in the audits that I've built the users have been required to enter de-identified patient data in two cycles. The data from one cycle to the next has no relationship. That is, the GP (Users) could audit and enter the same or different patients data between the two cycles. It made the interface very simple. The user clicks on a button to create a new form and we simply count down the number of required records for each cycle. The user can't change or see the data once it's been submitted - a very simple user story and simple interface to match.

For the current audit, the scope changed slightly. As part of this new audit the users would be required to audit the same patient in cycle 2 that was audited in cycle1. This is so that we could provide a care plan over the period of the audit.

This new requirement raised a few questions that I needed to resolve;

1. How can the user identify the third patient they submitted in cycle 1.
2. How could the user enter data and ensure that it was linked to the correct patient.
3. How could I ensure that the duplicate data (like gender and patient code is retained)

Fundamentally, I couldn't rely on the user entering the correct data in a form. I needed to lead the user through this association in the simplest possible way.

I started out thinking of a pick list on the form so that when the user selects a value, which could be a combination of data, it populates the fields.

I wasn't happy with that approach, it just felt too clumsy and not at all simple and elegant. I went through various iterations (on paper) before deciding on the final solution.

The Solution.

Cycle 1.
The user sees the traditional (in our apps) 'Submit Case Record Online' button and as they enter the data, the system counts down the remaining case records as before. I added a summary table, so that the user can see their patient code and some additional information. This was to help them remember who that patient was and put in place the mechanism that I would use for cycle2.

Cycle 2.

I added a link, 'Submit Case Record Online', and cycle 2 creation date right next to Cycle 1 records in the summary table. When the user comes to enter data for cycle 2, they can easily see the patient information and where to click to submit the cycle 2 data for that particular patient.

I was trying to not make the user think.

I removed the blue button (above the PDF link) so that there wouldn't be any confusion. As an additional touch I made sure that the link to data that was already submitted was replaced with a completed 'tick' icon.

The link contains a code that is used in the web query open to link the cycle 2 record with the cycle 1 record, including getting the common data.


Summary.

It's a simple interface that provides a really intuitive way to link the cycle 1 data to the cycle 2 data.

Wednesday, May 06, 2009

Scius PDF library Beta 8

Beta 8 of the Scius PDF Library, that I mentioned earlier, is available for those that need the following extra features.
  • Bullet List,
  • Manual Page Break,
  • Repeating Table Headers,
  • In-line Images, and
  • Page Orientation changes on the fly.
This will be the final version. I will not be enhancing the library further.

The code base that this is used in will not be changing and therefore, there are no new features planned.

Below are some code extracts, so you can see how easy it is to use those new features.


Repeating Table Headers

RowElement headerrow = new RowElement();

CellElement headercell =

new CellElement(

"Here is a big table and some headings");

headercell.setCellspan(3);

headerrow.addCell(headercell);

headerrow.setTableHeading(true);

table.AddRow(headerrow);


Bullet Lists

// create a list item and add the bullet.

ListElement le = new ListElement(10, tableStyle);

le.setSymbolImage("examples/orgball.gif");

le.setBulletIndent(20);

le.addBullet("Here is one");

le.addBullet("Here is two");

data.add(le);


In-line Images

// create an image and set scale and alignments.

ImageElement ie = new ImageElement();

ie.addImage("examples/ls09-bloggers.jpg");

ie.setImageScalePercent(100);

ie.setImageAlignment(ImageElement.IMAGE_ALIGNMENT_MIDDLE);

data.add(ie);


Page Orientation

data.add(new PageElement(Page.ORIENTATION_LANDSCAPE));


Page Breaks

data.add(new PageBreakElement());

Monday, May 04, 2009

Agile or Not. A few links to help you decide

Need a checklist to decide if that new project should be done using Agile ?

So far the Scrum Agilitists that I've met seem to be a very pragmatic bunch, a bit like myself. They realise that Scrum isn't a silver bullet, quick fix or guarantee of sucess for every project. As part of the CSM course that I recently took, we covered when to choose Scrum and importantly when not to.

Scrum makes reference to the Cynefin Framework (developed by Dave Snowdon, the KM guru and pioneer in the application of complex adaptive theory) around leadership decision making and complexity.

You see, Scrum work best for complex projects where the scope is not well understood or agreed and the technology is far from certain - two huge areas for contention in traditional waterfall approaches. For the complex domains, 'probe, sense and respond' is prescribed by the Cynefin Framework which matches the 'apply, inspect and adapt', that Scrum uses.

Even then, if you have worked out that you have a set of suitable project, which ones are likely to have a successful outcome and are ripe to use Agile techniques. Kane Mar, a well known Scrum Trainer and Coach, has published a simple score card to get started. Agile Project Selection from a portfolio of projects, it might help to identify which projects are good candidates. Although, he notes that as you become more experienced you'll be able to identify which projects to choose without a scorecard.

Here is a bit more about the scorecard.

The Scorecard is simply a list of criteria that can be uses to assess the characteristics of a particular project. A numeric value is associated with each question, so that scores can be simply tallied up based on the total value and then used to determine if the project is suitable for “the Agile treatment.”

Lets also consider some stats.

EMA research conducted in mid-2008 determined that 80% of companies surveyed had custom software in production, a higher percentage than Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), or any other application type.

They also determined that over 60% of the time, software development projects fell short of expectations which means that only 40% of budget dollars invested in software development yield business value and therefore the conclusion is that reversing this trend can yield very rapid ROI.

The CSM course cites the Standish CHAOS Reports to determine that 64% (I'm not sure the date of which report) of features are seldom or never used and therefore the case for deciding on features based on value.

So if the EMA and Standish data is right (some may disagree) then adopting a software development methodology that reduces waste and has an emphasis on value is going to be a wise choice in the current environment.

So it's hardly surprising then, given the numbers, that you will be hearing more about Agile (and Scrum) as this rapidly becomes the standard approach for complex projects - which includes software development.




Wednesday, April 29, 2009

Agile Contracts

I can see how Agile works for software vendors or corporates who develop software internally, but what about service companies, like IBM Business Partners, who supply software development services ? Usually client like to know what they are going to get and for how much. Fixed Price and Labour/Time and Materials contract models, with the BDUF, are prevalent method that I've come across.

So how does this work for Agile ?

Two interesting posts that contain the agile approach to the contractual obligations between customer and supplier have appeared on my RSS feed recently. They might be a useful starting point if you are pondering how to supply your services in an Agile manner and so I thought they would be worth a re-post.

Firstly, Rowan, the Scrum Trainer from my recent Certified Scrum Master training has posted the course round up, including links to further information about the Agile contract models that we covered.

Secondly, there is a very detailed description of 10 Contracts for your next Agile Software Project. Which breaks down different contract types into the following;

  • How is the contract structured?
  • How does it handle changes in scope (requirements)?
  • How does it apportion Risk and Reward between customer and supplier?
  • What model of customer relationship does it foster: competitive (my win is your loss), cooperative (win-win), indifferent (I don’t care-you lose) or dependent (heads-I-win-tails-you lose)?

Wednesday, April 08, 2009

Quote of the Day : The Lotus Notes platform -- it's very sophisticated

"The Lotus Notes platform -- it's very sophisticated," Doherty said. "That can scale pretty good, but it does involve a lot of clustering and a lot of sets of clusters. So you can continue to scale, but does get a little bit complicated. But the same could be said about Exchange and your back-end SQL clusters."

More
via Ed

Monday, March 30, 2009

Are you interested in Agile and UX together...

With 341 bloggers posting on PlanetLotus, sometimes you miss something. I'd previously missed Chris Recklings older post about Design@IBM. However, I did see his recent post about the UXDesignCast, which led me to discover the team talking about Optimized Agile Design in one session. I also found the new article An Agile Approach to User Experience and Design on the Design@IBM website.

Friday, March 27, 2009

Domino Unit Framework Q&A - Part 1

Here are some questions about using 'Domino Unit Framework' that have ended up in my inbox recently. So that everyone who uses it (all two of you) get the benefit I've posted them here and cross linked to the OpenNTF project. Excuse the poor English in the questions, they are coming from Karnataka in Banglore and English isn't the first language.

Question 1.

"So now my query is i need to get the document context of this..then only i
can test or compare or what ever it is..Can i run the tests of domino unit
frame work independently with out tieing to the Application data base."

Answer 1.

Yes, you can run the unit tests independent of the Domino Unit Framework database.

You will need to copy the Domino Unit Framework Script libraries into your application and build a place where you want to execute the tests (Agents, Action Buttons - Your choice). The results of the tests (pass/failures) are then sent to the domino unit framework database that you specify. You can send the documents to any database but you'll need to see the results.

Set OutputStream = New NotesDatabaseOutputStream(session, "", "DUFResults.nsf")

When you are migrating to production/uat, remove the script libraries and agents.

Question 2.

"Is there a way to test them independently with out tieing to application database is my Question or As per ur inputs is this only the best way to test.(copying)"

Answer 2.

Nope....

It's a bit like trying to compile a java program and not having the jar file on the path....the database is the project, therefore - like jUnit you need to allow the objects that you are testing to be in scope.

Question 3.

"I don't find any assertion for comparing two arrays of type Variant..that is Variant array or list in Domino Unit Framework.Is there any solution for that or do we need to manually write some class for that in the script library."
I was trying to test two variant arrays,its saying failed(As no case is available as such) even though both the variant arrays contains same values"

Answer 3.

Equality of Arrays, especially arrays of variants is particularly tricky - mostly because the rules of equality can vary, and there is a large combination of possible rules that may or may not be relevant in your particular instance. Is order important for equality ? or perhaps number of elements ?

Therefore, asserting equality between arrays (and arrays of variants) is not (and perhaps never will be) included in Domino Unit Framework.

My suggestions is to either write your own custom assertions as you have access to the source code, or unit test at the array element like so;

Call Test101.AssertEqual(array_a(0),array)b(0))

Wednesday, March 25, 2009

Scius PDF library - what is in the next version.

Would you like to know what is in the next release of the Scius PDF library ?

1. Changing the page orientation on the fly,
2. Inline images that you can scale,
3. Bullet lists.

The code has been written and I'm using it, but the release is not done. That is, I haven't met my personal 'definition of done', which include examples and documentation.

I've been a bit busy of late and getting it ready has fallen down the backlog.

Dojo Drawing Tools and Charting

Do you want to know more about dojo drawing tools and charting. See this article, a reprint from the Linux Journal.

Dojo, Now with Drawing Tools.

The article has a fairly detailed explanation of the dojo gfx library and a preview of the charting API.

Monday, March 16, 2009

An introduction to Scrum (plus some interesting case studies)

Here is a link to a 14 page Scrum Guide and some case studies (via ScrumAlliance.org) for those interested.

Abstract.

This guide explains how to use Scrum to build products. In doing so, it will describe how the framework and its artifacts, time-boxes, roles and rules work together. Scrum does not include techniques and processes for building products; however, it will point out the efficacy and flaws of these techniques and processes.

Scrum is a framework for developing complex products and systems. It is grounded in empirical process control theory*. Scrum employs an iterative, incremental approach to optimize predictability and control risk. Within each iteration, Scrum employs self-organizing, cross functional Teams to optimize flexibility and productivity.

Have a look at some of the case studies that were presented at the 2009 Scrum Gathering (in Orlando, FL.). It makes for some interesting reading.

Case Studies:

Scrum But
Scrum Games
Bootstrapping Scrum

Tuesday, March 10, 2009

Agile what is it and should I care ?

Chris has cajoled me into posting this, its been in draft for ages. I've been trying to work out if this is relevant and useful to the Lotus community, or am I the only one interested in this stuff.

I've been learning as much as I can about Agile and, in particular, Scrum. I'm a certified project manager (based on PMBok), so I was interested to understand the implications of managing software projects in an Agile way. Did I need to throw away all I knew about the PMBok. How do you manage the same things that the stakeholders need to know about risks, schedule and budget but in the Agile way.

I am also interested to find out how others tackle software development in the context of the Lotus platform. It doesn't seem to be a topic that is talked about much within our community.

There is a rising ground swell of interest and adoption of Agile software development, which is gaining credibility. Agile is now a widely accepted and valid method for managing software development. IBM Lotus Software Group and the Lotus Notes Development Team are using Agile and the fourth edition of the PMBok guide is being influenced by agile projects.

Should the Lotus community be interested ?

Is Agile (and Scrum) something that, as professional software developers, we should be interested in ? or interested enough to find out more ? We take toolkits and ideas from other technology areas and reuse them for our own purpose, so why not a development method ?

I don't need Agile, I'm using a RAD tool.

Lotus Notes has always been on the agile side of the spectrum and is often referred to a rapid application development (RAD) environment. Of course, just because you are using a RAD tool does not necessarily mean that you are developing software in a RAD way. In the same way that you can still write Java code in a procedural way and shun any form of Object Oriented techniques. I've seen the waterfall, big document up front, approach for Notes development and you end up spending more time on the document than actually writing the software.

For me developing solutions in Notes has been somewhat Agile. I started with Joint Application Design (JAD) and then Accelerate Value Method (AVM). AVM, for those who have not heard of it, was the Lotus consulting methodology from 1995 which embraced a collaborative development style with stakeholders and team. The aim was also to deliver value to the customer at the earliest opportunity through short iterations.

In fact if you did business with Lotus Consulting in Australia you would have come across a project flexibility matrix in our statements of work. I saw the same matrix recently while reading 'The Software Project Managers bridge to Agility'. We even used a documentation formatting methodology that favoured brevity and efficiency in communications.

So why should I care if I'm using Agile or Scrum ?

Simply, it gives you a common language that you can talk to other developers, clients and managers when they ask what is it that you are doing. You can point to a wealth of credible experience online and in books and say, yes we are using a software development methodology. A methodology favoured by highly respected experts, and by the way, they have produced high quality software that the users want quicker. Make no mistake, there are pit falls and traps which you will need to look out for. You will also need to assess if your team and organistion is ready and willing to try Agile.

There are also lot if misconceptions around Agile methods that have the potential to strike fear into managers and the PMO alike. "No documentation", "you'll get it when you get it" and "Agile doesn't scale" are some of the common ones. If you take the time to understand, like I have recently, you will realise that Agile has structure for dealing with the processes and disciplines that the PMBok describe. The PMBok is very general and, as the title describes, and only provides a guide to manage projects from building bridges to software development. Agile fills in the 'how' for software development and so the two can exist happily together.

I really would like to use Agile, how can I explain the benefits between Agile and Waterfall in a simple way ?

I recently attended the Sydney Scrum User Group and we worked through an exercise, which was an analogy for one of the difference between a waterfall approach and a scrum/agile approach. Rather than pinch the idea, here is my contrived story to explain the difference. Think of sandwiches in terms of software features, and a tray as a release or increment, and it might all make sense - then again maybe not.

Scenario 1. Making sandwiches the waterfall way.

Requirements.
Customer sends a fax at 9:00 am in the morning he needs vegemite sandwiches for 100 people for an event at lunch. Deliver to the office at 11:30.

Development.
You get a production line started, one person buttering and spreading the vegemite, the next person slicing and arranging on a platter. By 10:30 you've spread 75 sandwiches with vegemite, when the customer calls in to check on progress.

The customer suddenly remembers that, not everyone likes vegemite. So ask for half to be roast beef. Rather than 25 vegemite sandwiches end up in the bin the client agree to increase his order by 25 sandwiches to get the 50 roast beef sandwiches.

User Acceptance.
You turn up at the customers office, he looks at the platter and it looks a little plain then remembers that he has some vegetarians turning up who don't like vegemite! You quickly call the guys at the cafe and get them to quickly make another 25 sandwiches, this time cucumber.

Sign Off.
The customer is happy, but it cost him 150 sandwiches and you've expended 150 sandwich making effort. There is only 100 people so there is a lot of sandwiches left over that are not used.


Scenario 2. Making sandwiches the agile way.

Requirements.
Sometime later the same customer faxes another order, this time you try a different approach.
You invite him to come to the cafe and tell him he can use the wi-fi and he'll get a coffee on the house while he waits. You sit down with him and ask your usual catering questions. How many people ? are there any vegetarians ? The barista overhears - and suggests that to cater for vegans and wheat intolerance and through your many years of experience you estimate that 75 sandwiches should be enough for 100 people.

Development.
You start making sandwiches one at a time. As each tray of sandwiches is made you show the customer. You have made 50 sandwiches (two trays). When you overhear the customer exclaim - bugger!

He's just got an email. The meeting has been rescheduled until the afternoon. You suggest to him that for an afternoon meeting cakes might be more appropriate and so decide that 50 sandwiches and 25 cakes would be plenty. You stop making any more sandwiches and the and start slicing cake.

User Acceptance
The customer has seen the first tray of sandwiches as they have been made. He quickly checks the cakes as they are being arrange - all is looking good.

Sign Off. The customer is happy and pays. You suggest that he takes one tray of sandwiches to put in the fridge on the off chance that some of the attendees didn't get the rescheduled meeting notice. After all they are already made - he might as well take them.


Let me explain the difference

Scenario 1 - the customer didn't really understand what he wanted until he started thinking more about his needs when he saw the entire finished platter. He ended up with more food than he actually needed and there was a certain amount of waste. The sandwiches were all produced in great big block so there is little flexibility in changing the fillings during the making of the platter.

Scenario 2 - the customer also did not understand what he wanted, but as he was available in the coffee shop he could actively participate and give the sandwich makes feedback as his requirements changed, like when the meeting was rescheduled. There was little to no waste in the construction and as the platter was made in smaller, fully complete, chunks. In fact, so complete that the customer could actually take part of the order with him and realise that value earlier.

Summary.

You can see for the examples that when the customer is involved more closely with the production of the sandwiches that the whole team is more able to quickly adapt to the changing situation. Have smaller, fully complete, increments allowed for the customer to start using the end product quicker. The customer only paid for what he actually needed.

The trade off.

The customer/product owner has to commit to spend time working with the team. If the product owner, the person with ultimate responsibility to steer the results of the software development effort, doesn't have the time or inclination to work in an agile way then waterfall my still be the most appropriate method for your situation.

There is a lot more to agile than one post. Hopefully this post has given you a small insight and taster into Agile. Let me leave you with one last thought.

Image you have two project, one waterfall and one agile. Imagine a time of economic uncertainty. Imagine both projects are canceled half way through. Which project will be able deliver value to the customer in the form of working software.

Answers on a postcard...(or comments)

Tuesday, February 24, 2009

should I or shouldn't I ?

Here's an e-mail that I received this morning. Its tempting to engage in a bit of fun. But I just don't have the time right now. I guess that not everyone in the world knows about the scams as they're still trying it on.

If anyone is wondering what a scam email looks like, here is one.


From Mr Benson Karim
Auditing Manager,
Bank of Africa(B.O.A)
Ouagadougou Burkina Faso.
West Africa.

ATTN,


Sorry to distract your attention, I am Mr Benson Karim the Auditing manager
in the bank of Africa Ouagadougou Burkina Faso West Africa.

In my department, I found the deposited fund amounted ($12.5 MILLION US
DOLLARS) belonging to a customer who died in the air crash with his entire
family.

However, I shall detail you with the full information as soon as I hear from
you.

Can you be able and capable to assist me provide your receiving bank account
where this fund will lodge in your favour?

I shall give you 35% of the total sum as soon as this fund hits your account
and I shall visit you in your country for the shearing of the fund.

Please this is very confidential. If you are interested, please forward to me
the bellow information's;

Your name:............................

Your country:.........................

Your phone Number:......................

Your tel/fax:...........................

Your age:...............................

Your occupation:.......................

Thank for your anticipated co-peration.
Your's Faithfully.
Mr Benson Karim

Friday, February 13, 2009

Web UI Patterns

From the authors of Designing Web Interfaces via Ajaxian, via their blog. 390 screens have been added to the Designing Web Interfaces Photostream.

You should also checkout the 15 Common Component Patterns.

Lots of inspiration, eye candy and general UI tips for the Domino developers out there.

Thursday, January 15, 2009

2008 retrospective

2008 was an interesting year, there have been many highlights. However, one of the most rewarding aspect has been writing this blog and giving back to the community. Even though I've been around Notes and Domino a long time I've never really been in a position to regularly contribute. It's been great to change that and something that I've really enjoyed. I would like to thank all those who have commented on my blog. It's great to get feedback that the posts and downloads have been useful and you've gained something out of them.

However, next week I'll be mostly reading. I hope that all the LS09 attendees enjoy next week and I'm looking forward to keeping up with all the latest news.