How can Angry Birds and Facebook change e-health?

Well, not through clinical versions of these applications of course. That would be an interesting approach though, especially the social networking idea may have many applications in health IT, but I’d like to talk about something else that is happening in front of our eyes.

Facebook, Twitter, Angry Birds and other big names of the mobile application market are doing something for us that would normally take a lot of effort, and would not probably be as effective, these applications are training clinicians for mobile device usage.

We were having a conversation with Professor Ingram (Professor David Ingram of UCL) last week, and he was talking about some mobile applications he has seen, which aim to provide information to clinicians on the iPhone.

This led me think about the success of iPhone and iPad, which id pretty much obvious, at least based on Apple’s company value and sales numbers. That success has led to a new computing platform that has a user base from all ages. Now this is quite interesting, because if you introduce a computing platform with a completely different user experience (touch vs mouse & keyboard) and a completely different operating system, that would normally be a huge challenge for your sales and marketing. People usually do not switch that easy, because learning to use new devices takes time.

Even on the same hardware and software platform, introducing a new application into healthcare is a tough task. When I was working for HIS vendors back in Turkey, everytime we used to introduce one of our products into a hospital or to a pharmacy we had to deal with the training of users. If you had an application that you were replacing things would get even harder, because users would ask for pretty much the same features to walk around the learning curve. “But we used to to use ctrl + F7 to switch to patient search!, This new program does not do it, it does not work!”

What has been harder, is to get clinicians use computers. Even if when they don’t have to type anything, getting a heavy weight professor to use a computer to check out computer records for a patient is not an easy task. They would almost loathe the use of computers, and if you ask them, some would say they are too busy to learn new stuff when they’ve got so much work to do (read: they’re too old to learn new stuff).

What is interesting is, the same professor would be checking his e-mails on his iPhone between patients, and he may even be checking the pictures of the grandsons and granddaugthers on Facebook. The grandson, at the age of 6, probably already has a Facebook account, opened by the parents (yes, there are parents who do that)

Medical students? Oh yes, they all have Facebook accounts, they tweet, they play angry birds, and they would probably skip courses about using computers for clinical practice.

Through various applications, an incredible amount of people are using mobile devices, and they’re getting good at using them. I don’t remember such a large number of people getting so good at using computers (which all smartphones and tablets are) so fast at any time in the last 28 years or so (I was seven when I started using computers, and I’ve been in front of them ever since)

So if I were to introduce a mobile app, whether on iPhone or on a tablet, chances are that other applications will already have trained the users for using the device. Desktop computers never caused such interest from end users. People used them because they had to, MS Office, Internet browsing and maybe gaming made people use them, but I don’t think it has ever been like what we’ve been seeing for the mobile platforms.

So there is a platform that is in the pockets and bags/backpacks of many clinicians, all the way from students to professors, and if you manage to put something there, it will probably be quite accessable to them. This is a big opportunity for people who are trying to introduce computing as a tool into the clinical practice. Sure, we can’t move everything to these platforms easily, they’re mostly information consumption devices, due to their design, but if it makes it easier to reach clinicians to provide them information, then it is still an advantage over the problems we have to deal with desktop platforms today.

So let them play Angry birds, and check Facebook. The better they get in using those devices, the less friction your next application is going to face. What we need to do , is to find out how to develop interactions that maximize the capabilities and common patterns of these platforms, because they’re different than what we’re used to. If we can do that, we can improve at least some aspects of health IT, simply because we’re able to reach a larger user base.

Advertisements

Why reference models matter in healthcare IT?

Recently, I heard a question targeted at my colleagues at Ocean, something in the lines of “what do you think is your greatest accomplishment ?”

Ocean’s software stack has a lot of impressive components, the template designer with its TDO support, the back end repository, Tom’s Eiffel work that is called the Archetype workbench, and clinical knowledge manager are all polished pieces of software with a lot of work behind them (and don’t forget the archetype designer)

However, my pick would not be one of these if I were to choose greatest thing out there. I’d choose the RM, the reference model of openEHR. Why? Well, it is because I have a past that has lots and lots of software development. The vendor that is trying to deliver a product to the clinician stands between the clinician an the technical infrastructure, code and hardware. If you work with all the common approaches and tools of recent times, that is, if you’re doing Object Oriented development with a mainstream language such as C# or Java, it is highly likely that you’ll go through the well known lifecycle of an application. Even if you use agile methods and good practices such as test driven development, there is one fundamental thing in this business you have to get right, if you want to succeed: requirements.

What helps with the requirements?

As scary as it may be, there is not a lot out there that may help with the requirements. In fact, I could argue that one of the reasons we have agile methodologies (and they are liked so much) is that we are expected to get the requirements wrong as software developers! Release early, release often, because most of the time you will release wrong stuff!

Tooling may help you get what you understand as requirements to code faster. A good UML tool that can generate code from models, or convention over configuration approach of frameworks such as Ruby on Rail will certainly help you deliver something fast, but none of these tools will help you understand the requirements better. They’ll just help you avoid mistakes during some key tasks you’re supposed to perform no matter what your software is supposed to do.

Sounds good, right? No matter what you’re supposed to do, these tools help you do it better. That is where the catch is: they won’t make it easier for you to figure out what you’re supposed to do. In order to that, you’d need tools that improve your communication with users and your understanding of the domain, tools that improve your communication with computers would not help here.

This is exactly what RM does, and this is why it is so important. If you’re a clinician, and you want to explain what you want, RM based modelling tools help you express your requirements, without knowing anything about computers, and if you’re a developer, RM based code and frameworks help you figure out how to represent those requirements in code. Someone else did all those rounds of asking the requirements, identifying patterns, and turning them into computable concepts. They’ve done the mistakes, paid the price, and shared what they’ve produced with you. That is one of the most valuable things you can get in this business.

For example, a software developer has a very different view of the concept of quantity, compared to a clinician. The developer has to figure out that quantities in clinical data come with units, magnitudes, reference ranges, and learning this takes time, and costs a lot of money for the software vendors. RM provides time tested components that can help clinicians, developers and computers communicate. Remember: doing it in the right way, and doing the right thing are different. You need better human to human communication for the latter, and if you have something like RM that is accessible to both developers and clinicians, that is your key to productivity.

When comparing RMs people usually forget that RM is not only about clinician to developer communication, once the developer gets his/her hands on the clinical model based on the RM, RM is supposed to improve communication to computers just as well as it has improved communication to clinicians. This is where most efforts fail. If you design your reference model with a very strong focus on human to human communication, diminishing the computability of RM to the point of computer readable (read: XML), you’re going to miss many advantages of an RM that can talk to computer languages better than yours. There are factors such as the granularity of data types, the level of abstractness of top level concepts, and the extend to which object oriented concepts are used. These factors determine how successful your RM will fit into programming language concepts, in other words, languages of computers, also spoken by developers.

openEHR RM has a good balance that lets it sit at a good point between developers (read: machine language speakers) and clinicians. You get too close to developers on that imaginary line, the clinicians lose their ability to express their requirements. You get too close to clinicians, the computers can’t understand what they’re being told. You have to have an RM that sits on the sweet spot.

Every other tool that sits on the RM can be written for other RMs, code generation, persistence, clinical modelling tools, you name it. The one that will succeed is the one that is build on the right RM. This, my friends, is why RM is the most precious asset of openEHR. It has been tested by lots of clinicians and developers, and it has been implemented in many computer languages. Most criticism comes from other methods that are either closer to developers, or to developers.

I am not saying that openEHR RM is the best it can be, because I am not qualified to make these kinds of big statements, but personally I have not seen any other alternative that performs as well. Please give this approach some thought, and think where your approach is putting you on the imaginary line I’ve defined. If you think you’re at a better position than what openRM provides, please let me know!

What on earth is Adobe doing?

UPDATE: Adobe updated the blog bost linked below, so some of the concerns expressed below are not really valid now. The situation is not as clear as I’d like, but it is still better than the original.

 

Last week Adobe announced that whey would not be supporting Flash player for the mobile platforms in the future. Lots of web sites responded with laughter, with Steve Jobs being referred to, at an astonishing rate.

I’ve considered the matter to be something different that the death of Flash.  Adobe’s Flash Builder (the development environment for Flex) has been supporting native application development for Android and iOS for some time, so this only meant that mobile browsers would not need a Flash player to display Flash/Flex content. It would be native applications from now on. It made sense, since this has been the trend anyway.

If you want to deploy to iPhone or to Android, you develop a native application. That is almost always the preferred way, so not having a mobile Flash player does not mean anything to me. HTML5 is going to be standard runtime for rich internet applications, so the real announcement I’ve been waiting (along with some other developers) is about a HTML5 canvas based runtime for existing Adobe development tools.

This is the perfectly sensible step for Adobe. Actionscript and the development tools around it are really good, and by producing HTML5 output, Adobe can leave everybody else in the dust. With native application development capability, both the web and the mobile domain would be accessible to Adobe customers.

Today Adobe dropped a bomb, by saying that they’d be donating the Flex SDK to open source domain. My response, probably very similar to thousands of other developers, was: “What???”. Lots of similar responses followed, such as the ones here: http://blogs.adobe.com/flex/2011/11/your-questions-about-flex.html

Adobe is almost giving the impression that they are shifting away from Flex. What they’ll be shifting towards is the real question. No one in the Flex development community can believe that they’ll be dropping Flex in favor of HTML5 now.  The reason for that is the state of HTML5. Here is a set of facts about HTML5.

HTML5 still does not do all the things Flash runtime can do. I am not talking about niche stuff either. From server communication to text rendering, HTML5 lacks lots of things. It may be supported by some key browsers, but the enterprise market follows the browser market approximately from 5 years behind! Many of the government institutions, financial institutions are still running IE 6 and 7. They’ll stay that way for some time, and their next browser will not necessarily be the latest Firefox or IE. Flex 3.5 can run on Flash player 9, which runs happily in IE6. Therefore, the penetration of Flash runtime is far greater than HTML5 on the desktop, and especially in enterprise domain, will stay like that for a long time.

Even if HTML5 had the same installation base, the language (99% Javascript) used for development is simply horrible compared to any Object Oriented language. Most HTML5 developers are Javascript hackers, and the excitement around HTML5 is mostly about the fancy things it can do using the canvas element. All of that has bee possible with an a lot more cleaner language and high quality development tools for the Flash platform.

So if Adobe announces that they’ll be releasing a new HTML5 based framework that allows developers investing into their technology to deploy to HTML5, they’ll make the jump to future. If not, their move does not make any sense at all. Whey kill Flash when it is a platform with an huge installation base? Why lose all the developers who buy Adobe tools and create products, especially in the enterprise market?

Then there is the mobile. Flex SDK became capable of deploying native applications, and in only a few months, Adobe added some amazing features, even native platform extensions, which made Flex a very attractive option for mobile development.  As it is, Adobe AIR is better than many similar frameworks out there for native application development for mobile platforms.

Before reading the announcements on the page I’ve posted above, I did not have any doubts that Adobe would be releasing an HTML5 transition roadmap for their products. I’m not so sure anymore, but I can’t understand what they’re doing either.

Microsoft’s innovation is leading to confusion.

Metro style applications. This is what Microsoft is trying to get people excited about these days. When I say people, I mean the technical bunch and related demographics and companies. The end users are always after something that works and preferably looks pretty (which has made Apple a tech giant)

Microsoft is actually quite good at learning from its mistakes and adopting. Windows 7 is much better than Vista, and .NET platform is in many ways better than its predecessor: COM, COM+ and all that. However, MS is again getting ready to do the big jump: .NET style application development is rumored to be going away for Metro applications, and Silverlight, which was supposed to be the killer front end for web applications, is going to go to that nice place where all the left and right shifted bits go.

I can remember the same thing happening around 2000, when MS announced .NET. Visual basic and Visual C++ users were quite upset. I mean people who are concerned about their investment, their profits, their business. The 20+ year developer is almost always going to be excited about something new, but that is because they are rarely sitting in the seats which require the occupant of the seat to be concerned about money matters. To them, every new technology is an opportunity to do something cool, which was absolutely not possible with what they had before.

MS usually throws a huge PR budget at its product and technology launches, and switch usually happens. But sometimes it does not. Many corporate IT departments simply skipped Vista, and that was probably a heavy blow to MS’s budget and shares. .NET did the same to established software houses, with products and large scale deployments. It was quite painful for them to consider a switch to .NET, and believe it or not, some of them are just about the complete their switch after almost 10 years. In the last decade, .NET saw some significant jumps of its own, with new versions of frameworks and runtimes, and development tools.

In the context of .NET, firms have managed to keep up with this, but the dissemination of new features is always slower. When you have a working database access layer, you don’t have a lot of motivation to re-write it with a cool new thing you’ve just heard of (like Linq, though it is not new anymore).

MS does not really care about backward compatibility when it comes to announcing new technologies, or updates to existing ones. Java platform still has some missing features, just for the sake of preserving backward compatibility, and even if it makes most Java developers dinosaurs  in the eyes of the excited 20+s mentioned above, it helps a lot in terms of accessing new frameworks of the platform without any major shocks.

MS on the other hand expects you to handle any shock, since the new framework is so much better, that it is worth doing the transition. Really? Some major open source projects does not even compile with Visual Studio.NET 2010. Lots of software houses did not go beyond vs.net 2008, simply because the cost of setting everything up again, configuring the whole development process for new tools etc was too much, with little benefits to offer.

You can’t move your money making business to a new language, to a new set of tools,  to a new development and testing process easily. This is hard, this is expensive, and yet MS is expecting everyone to do that, and with Metro, they are doing it again. Meanwhile, the Java platform, though aging, is still managing to develop new paradigms and frameworks, without asking for major shifts in the underlying infrastructure.

Making money from software is not as easy as everybody wants you to believe. It takes time, it takes maturity. If you keep disrupting that process of maturity, your market will consist of fast burning stars, which will not easily establish a profitable business.

So MS is going to push firms again to make another jump to a new way of creating wonders on its platforms. Will it take off? Who knows. What MS needs to see is, what happened with Vista can happen with their development technologies, and that would harm the whole platform then, since all the cool stuff is going to happen somewhere else. (Think about Flipboard on iPad)

Sure, MS has lots of money and market share to handle these kind of failures, but till when? I think a better balanced technology development and release is required for Microsoft, or they’ll loose a lot of blood.

Peter F. Hamilton, China Mieville, and other readings: book update time

It appears I just can’t give up on Sci-Fi. Here is a list of the recent readings, with very brief notes.Peter F. Hamilton: The Night’s Dawn Trilogy. I think this trilogy exceeds 3000 pages, or something like that. I’ve managed to read it all, and if you want a really long sci-fi book, give your strength a challenge with this one. It is called space opera for a reason!

Hamilton likes to go into every potential outcome of a quite interesting event in this book, and to be honest, you can not easily guess the main story until it begins in an unexpected way. I am not happy about the ending though, so be warned, it won’t give you a very creative ending.

China Mieville: Perdido Street Station: Well, this one is the first book in a couple of years that I could not finish. I’m sorry, but there is way, way to much description in this book, so much that I got bored. Also, certain characters in the book are presented with attributes which later does not match with  their actions in the story.

Frederik Pohl: Heeche Rendevous: The final book of the Heeche saga. I’m not sure if I’ve written about this one, but I’m too lazy to open a new tab and search my own blog, so I’ll just say that this one is not as good as the previous two. Actually, the style of the books change significantly after the first book, but if you want to know more about the Heeche, you’d like to read this.

Ursula K. Le Guin: Left Hand of Darkness: I should have read this ages ago, but I’m glad I finally did it. It is good, but Le Guin does not write too much about technology even when she is writing sci-fi, so if you’re looking for a light weight sci-fi book, this is not what you want.

Terry Pratchett: Guards, guards! : Simply brilliant. Probably one of the best books I’ve read from Pratchett, and I’ll definitely read the other ones about the city watch.

Bill Bryson: Notes from a small Island: If you are an alien in UK like me, you have to read this! I’m still reading this one, but it is one of the funniest books I’ve read, and Bryson’s observations about UK is absolutely fantastic. He is likely to become a favourite author for me.

Dear Google, I am not my mother!

Yes, I know that you people at Google want to make sure that even my mom can easily use your products, and for your search engine, that is definitely a possibility. However, when it comes to browsers, Google Chrome is way, way too simplified for anyone who’d like to use it for daily work.I am  a developer, a PhD student and many other things, and most of my hats require me to use the web all day. I use tabs, I love tabs, I can’t understand how we used the web browsers without tabs (thanks to Opera, who did this first), but tabs have also evolved in time.For any slightly experienced user, the configuration of tab behaviour matters a lot. For some reason, Google people are not letting plugin developers (called extensions for Chrome by the way) to tap into that functionality.Just so you know, this hurts. This is the only thing that makes me remember that I am  more productive with Firefox. Please, for whatever reason you’re doing this, reconsider your approach.  Apple also makes things very simple for users, but one way or another, they manage to provide power along with simplicity, and when it comes to managing features, you can learn a thing or two from them.

Posted in IT

What makes a sci-fi book great?

There is no single answer to this question. Actually the question is wrong, but I’ll go ahead and write an answer anyway. In fact, I want to write a couple of things as I think about the books I’ve read so far. These may help me pick my future books better, or who knows, you may want to send me suggestions?

Ok, rule number 1: dear writers, please, please, do not  go into pages and pages of descriptions to make the setting more plausible, or believable, or  whatever you call it. Don’t! Good books give that feeling without describing every little detail in the surroundings. When the main character is walking towards a key meeting, or a very dangerous encounter, the last thing I am interested in, is the history of the city/planet/road/town/whatever the character is in.

What was absolutely brilliant in William Gibson’s Neuromancer and the following two books of the trilogy was that, they made you imagine the surroundings without boring you to death at the wrong time in the story. I am seeing way too many sci fi books these days which take four times the amount of necessary pages than it is necessary to tell the main story.

I’m sorry, but if your creativity is not good enough to make “what is happening” interesting for the reader, “where it is happening” is not much of an interest to us, at least not to me. Inner struggles, thoughts, memories, all fine, just don’t fill pages with descriptions of the city please…