Integration – how to plan for the unknown
No one has ever said integration of one system with another is straight forward. But does it always need to be a surprise a minute roller coaster ride? In a recent and slightly challenging (read evolving) integration projects I devised a simple set of rules:
Action Plan:
- Identify the unknowns
How? Start simply with broad questions. Don't be too quick to get into the detail as this will be the natural tendency. At this stage understand nothing about the detail but fully comprehending the end user environment or capabilities will give you a greater barometer for detecting where the unknowns are essential or not. - Questions everything, assume nothing
I've tripped over this many times, combined with one this is probably the largest probably when scoping, initiating or specify an integration piece of work. I find Excel is my friend in this situation, I can capture questions and responses as the knowledge flows - Seek documentation but don't rely on it.
Documentation in what ever form is usually well intentioned, but out of date, inaccurate or just plain wrong. Typically the documentation will look grand 'Technical Specification for X.Y.Z version 1.2' however what tends to happen is that was written at the outset before a line of code had been written - ask yourself when you last went back and updated a specification at the end of project, yet you want to make key integration decisions based on it? - Get a setup of the system as close as possible to the real environment for use during development, verification testing and UAT
- Commit, integrate and test regularly. Really if your not doing this forget it
- Use real data not 'lorem ipsum' or 'test account 1'
Demand this especially if you have translation or localisation considerations to consider. - Allow your/encourage your client to come and inspect your work - they may see things your developer mind over looked.
Coming from a developer mind I'm always surprised how easy it is to be lulled by our perspective on systems. - Testing
Even with all the automated testing, eyeballs and code reviews I'm still amazed by how often I come across developers who see it as acceptable to ship code from their development computer to a production environment without any testing.
Have I overlooked anything you find works best for you? Let me have your comments and I'll add them in.
Six thinking hats designing and scoping solutions
I've been contemplating this for some time. In fact it dates back to my first trip with my Dad to the local library in North Walsham where I found a copy of Dr Edward De Bono's: Six thinking hats.
Six Thinking Hats is the concept that innovation, judgement and thought can be better managed and facilitated within a group if the group organises their collective thinking processes around a set of specific areas.
Each hat represents a specific area of consideration or thought and for simplicities sake you often see them represented with different colours. I've used this personally over many years and found that with time a. you can become faster but b. it takes time to perfect. The tools are useful for innovation but they can equally be applied to strategy enabling you to flesh out and balance a strategy considering the full range of inputs and therefore logical outputs.
During a recent workshop I attempted to use this model for technical innovation, scoping and design. Much of the work I'm interested in is understanding the real business requirements and desires such that I can translate this into a process and therefore into a software solution. I stress real business requirements because in my experience what I'm presented with at the start often differs from the final needs. In effect there is a part for me to facilitate the discussion and also capturing it as it comes to light.
With any task these days time is money and being swift, focus and accurate are critical during this stage. So using the six thinking hats should work...
Hat 1:
Is concerned with questions and facts. Well that was excellent we started the discussion collecting together the initial facts/needs we had about the solution. The white board was our friend and having allowed our self with 20 minutes we finished feeling like a second pass was necessary but that we'd made a start. The nice experience was the shared concentration, each time something not to do with Hat1 surfaced it was immediately parked.
Hat 2:
Is concerned with the emotional, irrational aspects. This is not so easy simply because of the lack of time we've had to work together (kick off meeting) and that its not immediately obvious that this should have a relevance on our task. However after a short pause we did gather to gather our emotions and it was pleasant to find them largely similar. In this case around the desire for success, daunting hill to climb and concerns over failure to bring the essential elements out.
Hat 3:
Is concerned with judgments. Beneficial but challenging was the outcome here. The problem with this stage is that you need to criticise the solution, need, business case to unpick where there may be logical arguments which challenge the need for it. Our discussion unearthed a number of things which in Prince 2 might go onto a risk register. In our case we decided once again to not try to judge the arguments, if we felt they were valid then onto the whiteboard with the desire to return to each and ensure we had a mitigation in place at some stage during the spec phase.
Hat 4:
Is a pleasant stage where we all dust ourselves off from the previous stage and now focus on the positive points. In effect the positive points indicated a range of needs which weren't focused on in the RFP, some of the more softer aspects such as the user experience, information architecture. As with most software RFP there is typically a lot of focus on the scope of the works with some explanation of the strategy. However its then important to tease out the needs in respect of the structure, and the representation it will take on screen.
Hat 5:
Is concerned with creativity, new thoughts and investigations. In effect this just happens as a outcome from doing each of the other hats. We confirmed in this section that the questions area of the whiteboard captured the unknowns at this point in time and quickly moved on.
Hat 6:
Is concerned with the holistic view. A moment to step back and recheck that the process followed has struct the correct chords and we are moving in the correct direction. Actually it identified that this may well be iterative. With the discussion so far the high-level areas have been considered but there remain holes to fill. Which gave us the drive to create the now and next actions plan. This gave each of us a collection of tasks to go away with and further enable us to cover off some of the more mundane aspects like who is taking on what. Probably not so 'big picture' as is intended but given the discussions to date have always been seeking for the big picture this was seen as no bad thing.
Conclusion:
Does it help, yes is the simple answer. More so for it being a new group of people working together and the need to channel constructive energy in a meeting to leverage a brief. However there are pitfalls and gap in terms of facilitating this as a process. Tangents appear which with excited minds can lead to new tunnels being explored which digress from the intention of this structure approach. Would I use it again - definitely given the right group and challenge.
Top 5 things I’ve seen before I was 30
Here is my top 5 places I've seen, this is not easy you have to leave out so many amazing sights
- Visited the Louvre to see the Mona Lisa
- Visited Luxor to see the Karnak Temples
- Visited Mauritius to see the Black River Gorges
- Visited Rome to see the remains of the Roman Empire
- Visited Venice to get engaged
quiet afternoon – try this…
Felt like a little distraction and a link to this popped up on twitter so I just couldn't resist having a play
Try it for yourself over at
http://www.themaninblue.com/experiment/JS-909/
How do I ask Apple to fix this?
Rough Cut: Should I create a song perhaps?
Oh OK perhaps not, since I have absolutely nothing to complain about really. But I would add that perhaps it would be very nice if someone in Apple could try using this interface to traverse massive playlists? With all that spare space around the panel surely it would be trivial to make the selection window bigger?

Just a thought?
Rails – if I new when I started what I know now?
How would you answer this question?
I've been using rails for development of applications for what feels like a long time. I wasn't in the pre 1.0 crowd but I did spend many days hacking around in cgi scripts to make the website run in apache so I do feel like I've been here a while.
As brackground I came up through C++ operating systems development (loved it), delphi (blah blah), then on to Java (which I never liked) and into web technologies and scripted languages.
My day job doesn't allow more than 10-20% of development anymore (by choice). So although I'm still keen the time is not usually available. Interesting this has quite an impact on way you program.
For one thing change is an issue, changing technology requires great investment just to achieve the simplest of tasks. Something I can not afford.
Rails has always been for me about using a good language to enjoy my craft. For a variety of reasons enjoyment does enable better results. Further the rails stack goes all the way through the systems I need to utilise - database, ORM, MVC, and client side (javascript + tempaltes). By understanding one language and leveraging the well written information on Rails I avoid needing to care about most other areas.
However the trade off is that sometimes it just can't do what you need so some custom javascript or SQL query is required. I've never been particularly strong at either. So that usually gets less of my attention. I break the rules at this point and do what needs to be done to get the job done. Many in the community would disagree with this approach. And I applaude them, they are correct but realities/needs/timescales differ. As yet I've never had a hard time sleeping at night!
In many cases the Agile method of working is excellent. I was slow to value the testing framework built into the system. For a while I played with Selenium (amazing solution) but I have a regularly changing interface and could never get beyond the issue that tests broke because they were out of date (not the application was broken). Shoulda on the other hand has been very helpful as has rcov.
Of course the testing approach when time constrained is brief in some aspects. And not by design. Its just their is no documentation on how to achieve certain things - e.g. validate a upload dialog can import, parse and process an zip file + manifest. Of course this is domain specific but validation of file uploads is not, and as yet I've not found anything on this.
Google is a strong friend when there is trouble. I've found many articles and blogs to guide me. Although sometimes in the wrong direction - engines. There coming back and I'm scared I found them confused and difficult the first time around so I wonder (without a name change) who will be listening?
Would I do it all again: yes. In fact I'd do more. Its a fantastic stable platform which has I believe shaken up the entire 'intelligent' web development community along with its cousins DJango I'm looking at you. I'm sure that even in these difficult times we'll continue to see this is a fertile ground with many innovations and improvements yet to come.
Looking to the future I'm very aware of the tiny amount of knowledge I have. I've spoken to many in the community who are streets ahead. I wonder if I'll ever get to where they are? Do I need to perhaps not, if anything I can say that even with a small amount of knowledge and clear understanding of the principles (which you can pick up very quickly) creating the next application is available to almost any developer.
If only rails could create cross platform desktop applications?
learning in the 21st century
Does accessible flash truly exist?
For a designer or software developer the appeal of flash content is compelling. It provides a strong interactive capability to deliver engaging media over the internet consistently across all browsers which have the flash player plugin installed. The speed and visual nature of the authoring tools make is quick and easy to work with. However the same problems crops up time and time again: that of your client wishing to provide accessibility, for me this usually entails complying with the W3C AA guidelines.
If we consider the accessibility specifications and tools available it is quickly apparent that flash is lacking in this regard. Understood the paper work is in order from both Adobe, the browser manufacturers and main assistive software providers. But have you actually tried it?
In this 2 part series I will comment on first hand experience developing solutions to provide accessible flash and contrast this against the information available from webAim who have taken great care to survey validated users on their use of flash websites.
Finally I will provide some bold recommendations on how to navigate this difficult field to improve the user experience for all concerned. Please don't take my approach as correct it stems from years putting large amounts of content together and trying to meet clients opposing requirements.
Screen Design & Presentation
Lets start by considering the quick, obvious and beneficial to all wins: Organise your screen design so that the layout is easy on the eye, visual ques and information is well positioned, logical and correctly marked up.
Flash: Strong Support
How: By organising the materials on screen in a clear, consistent and meaningful way is easy in even the oldest of flash players. Careful selection of colour palettes is essential and avoiding the use of text on graduated backgrounds is good practice. Other requirements including ensuring that any content presented to users is not time bound, this ensures that those who need longer to read are not disadvantage.
Oh and please please no blinking, moving, animated text.
Scaling
With more recent version of flash comes the introduction of scalable vectors graphics support. This allows content to be scaled to any size without loss of any quality. For those requiring accessibility options taking advantage of this feature is desirable. Unlike providing text only resizing controls the entire flash content is resized. This approach ensures that the use of scroll bars, text overruns, pagination are avoided.
The Timeline
Flash operates very differently to traditional web development. HTML is largely static and has no support without complex programming to support a timeline. A timeline allows content, actions and experiences to be triggered in response to a time event occurring.
As a result this can provide engaging content however it can also severely limit the accessibility capability.
So what to do...
Consider the impact your timeline events will have on users who may need longer to take in the content. Perhaps the use of a pause, rewind/replay controls will provide all that is required to ensure that the widest range of users can access the content.
In the next session I'll continue the discussion and look at keyboard accessibility, closing down of the 'open web', navigation and interactions. Also included will be the use of video and audio and how to handle screen readers and where there may be the case for alternative formats such as separate accessible formats such as a essay document.




