People and Technology

June 15, 2008

How to combine Workflow and Business Rules - in 5 easy steps

Tom has a good post on the jBPM (JBoss workflow) community day held at the Guinness brewery in Dublin. Warning - slides may contain pictures of people drinking beer.

Drools jPBM Business rules presentation

How to combine (jBPM) Workflow and (Drools) Business Rules - here’s the summary. Slideset is available on this blogpost.

  • Workflow (e.g. JBoss jBPM) is great - it allows you to take spaghetti code and draw it as a workflow diagram (flowchart) so that it can be reviewed by the business (the nice people who pay our wages). You then attach standard (Java) actions to these steps.
  • Only problem is when you come to a decision node (the one circled in red below): How do you decide to go left or right (in the workflow)? Normally this is coded in Java - good for us, but hidden from those nice business people (which means that this is more room for errors-in-translation).
  • Business Rules allow you to keep those decision making rules in Plain English: When something is true , then do this. That’s it. The rule engine does most of the hard work.
  • Integrating Workflow and Rules is easy. Use JBoss Seam (link) or do it by hand (link). And it works on non-JBoss web / app servers such as Websphere, Oracle Application Server, Tomcat and Weblogic.
  • Repeat x6 : Use workflow and rules. Use workflow and rules …

Simple Workflow

In a maybe related development, Tom Baeyens is now using strangely Rules-y like examples over on his workflow blog ….

May 6, 2006

Architecture? One size fits all

No matter what your system does , be it insurance , banking , online travel booking or telecoms, the chances are it does the following things:

  • Gets information from users over the web
  • Does some business processing on that information
  • Saves the information in a database.

At a conservative estimate , about 99% of Enterprise systems would fall into this category.

If so, why do you need an architect , when you can use our ‘one size fits all’ architecture diagram (below)?! Most non-trivial systems, regardless of the language they are written in (be it Java, .Net , or your language of choice) follow the pattern seen in this diagram.

3 Tier Enterprise Diagram

There are 3 Pieces to the Solution:

  • Web Browser (for the user / client).
  • Web and Application Server - carry out business logic.
  • Database Back End - to store data and ensure data integrity.

Within the Application Server (the middle bit above, which as Java Architects is the bit we are interested in), there are a further 3 tiers

  • A Presentation tier (or layer), which is mainly about talking to the user (it gets and sends requests to the web browser).
  • A Service layer , which is mainly about talking to back end such as databases, legacy systems (such as mainframes) and XML-Web services that we may use.
  • A Business layer, the ‘meat’ of the sandwich, where the ‘Value add’ is in terms of business processing and validation.

For each of these layers , your priority in building them are slightly different.

  • The Presentation layer is the bit the user sees. You want it to be fast and give a good impression to the client. Underneath, use a standard framework (link: pick your framework here) and then customize the look and feel.
  • The Service layer you want to work fast and well (e.g. no data faults), but then then forget about. Unless things go wrong, no user is going to complement you on the quality of database persistence! Use standard libraries for the entire layer.
  • Unless your company is a clone or franchise, the business layer in the system is going to be completely different. Aside from the user-interface , concentrate most of your project effort here as this is the core of what system does. We’ve written quite a bit about how to increase the value-add of the business layer (link to O’Reilly Technical Articles)

By the way , we’re only half-joking about the ‘why do you need an architect’ bit. We can be contacted here.

April 20, 2006

It’s been very quiet over here (aka what has Paul been up to) - Enterprise Web 2.0

It’s all been very quiet over here , too quiet. And not just because of the hosting issues (the people at Netbunch, you know that I’m talking about you)

It’s been very quiet , because I’ve been very busy. On top of all this , we’re coming to the end of the year for the (part time) Masters at UCD in Dublin, so we’ve also got exams coming up. Thankfully it’s the last year, the downside being I have a dissertation to write.

Being a blogger , I’m not happy putting together a weighty tome that will sit gathering dust on a shelf. Instead , I want something that will solve some business problems , and that I can use as interesting content. So after much thought , the proposed title of my dissertation will be …… cue drum roll ….. ta-da!

Enterprise Web 2.0

Now, if you’ve talked to me , you know I spend a lot of my working day as an Enterprise Java Consultant , working for various banks. The idea is to take some of the Web 2.0 ideas (and you don’t need me to repeat them) and apply them to the sort of problems large companies have. Or , if you want the catchy subtitle , ” it’s all about sucking the knowledge out of people’s brains and putting it onto (ugly) websites”.

So an obvious topic to cover is the use of Ajax , which while big on the web at the moment , is going to be huge once companies realise what it can bring to their internal applications. The rest of the topics cover knowledge management (what is web 2.0 if it’s not about sharing knowledge), but also some tools and techniques that will all Enterprise Java (with all it’s robustness and scalability) compete with the nimbleness and tricks of Ruby.

Business Problem 1: How to present this information to people in a easy to deploy, but powerful way.
Solution: Update to Sun Java article - this one on how to do Web 2.0 / Ajax ‘right’ in Enterprise Java (i.e. not worrying about legacy code)

Business Problem 2: Where you have documentation, but don’t know how to find it.
Solution: Write up of the Red-Piranha Adaptive Search engine that ‘learns’ what the team wants , and finds more of it.

Business Problem 3: Where you have information in Excel sheets, but can’t do much with it.
Solution: Update to previous O’Reilly Articles on JBoss Rules - this one on JBoss’ ability to ‘run’ Excel Spreadsheets.

Business Problem 4: Where you have information that people ‘know’ , but that a machine finds it hard to ‘learn’
Solution: Simple Neural Networks using Joone, applied to a ‘real life’ business problem.

Business Problem 5: Where several people have to work together on a set of information , following a strict set of steps.
Solution: JBoss workflow, with a simple online example

March 7, 2006

More information on How to talk to your boss about agile projects…

Filed under: Agile, Development, Dublin, Events, JUnit, Networks, NoUnit, Process, Project, presentation — Paul Browne @ 1:29 pm

Will update this with feedback from the ‘How to talk to your boss about agile’ event, but in the meantime, here is all the slides and links to articles used in the Agile presentation.

March 5, 2006

How to talk to your Boss about Agile

Filed under: Agile, Architect, Business, Ireland, Location, Microsoft, Networks, NoUnit, Process, Project, Testing, presentation — Paul Browne @ 12:03 pm

We’re giving a talk about ‘how to talk to your boss about agile‘ for the Irish .Net Developers Association next Tuesday in Buswells hotel Dublin.

More details (including the slides themselves, as a preview of what you are missing) are available here in powerpoint, openoffice, pdf and flash formats. The slides explain how 4 pictures of bridges can explain the difference between Ad-Hoc , Predictive, Agile and XP projects. No , really , you do want to check this out.

Links to a lot of the sites / articles / tools used in the presentation are here on Del.icio.us. More posts on this blog about using agile techniques on projects are here.

The Bridges are:

  • Old Drogheda Bridge from the 1200’s - Quick and Dirty or Ad-Hoc project. Got the job done , and fast . Was patched a load of times, but eventually fell down under the weight of the traffic.
  • New Drogheda Motorway Bridge - Predictive Projects. Very easy to specify what you want (I want a bridge going from A-B to carry a motorway) and very easy to know when you are finished.
  • Drogheda Railway Brigde - Agile. Once the longest Iron Girder bridge in the world.Built in the 1850’s and the spec has kept on changing since. This included a complete rebuild in 1925 without losing a single days traffic. How’s that for unit testing?
  • Bungee Jumping off bridge in Queenstown - Extreme Programming (XP). Great fun if you’re doing it (and can be pretty effective), but scary for anybody watching.

As a sample of some of the pictures (which include lego people showing everything that can go wrong on a team), check out the image below.

source the brick testament.com.
Image from
TheBrickTestament.

February 21, 2006

JBoss Workflow JBpm and JBoss Rules (Drools)

Filed under: JBoss, Process, Rule Engine, Technology, Uncategorized, Workflow, Xml — Paul Browne @ 7:04 am

Notes from this Post on the Serverside

 I recently wrote an O’Reilly article on one of the related JBoss projects the Drools / JBoss rules engine.

Just to get the difference between jBPM and Drools / JBoss Rules straight in my head:

- Workflow tends to be ‘wide’ where Rule Engines tend to be  ‘deep’.

- Workflow is wide as the flow is spread over different people / actors and over time.

- Rule Engines are ‘deep’ as they apply simple rules to solve complex problems, but in general the rules are applied ‘all at once’.

Some of the confusion (in my head at least) comes from the fact:

- It is possible to implement workflow using a rules engine, much as it is possible to write your own workflow using Java. Of course , you don’t get the graphical designer that JBpm has.

- Both JBoss Rules (Drools) and JBoss Workflow (jBPM) see to
‘externalize’ part of the solution outside of Java. By stepping outside
of Java to use an XML / Graphical based approach, it makes the solution
easier to configure and understand.

February 3, 2006

How to avoid losing 150m Euro

Filed under: Agile, Architect, Articles, Business, CRM, Dublin, ERP, Finance, Government, Health, Ireland, Open Source, Process, Project — Paul Browne @ 5:52 am

It now seems obvious that the Healthcare Payroll system was destined to fail. If you were working on the project, I’m sure it felt very differently at the time. How can your projects avoid a similar fate? While IT may sometimes seem disconnected from reality, the following guidelines show that ‘Real World’ lessons still apply.

  1. Know what you want and stick to it. If you’re building a house and change the plans several times the builder is going to fleece you, no matter how low the initial quote was. The same goes for IT Projects - if you change your mind after the price is agreed, you’re going to pay more.
  2. If you don’t know what you’re doing , find a friend who does. I know very little about houses, so when I was buying my own I got a friendly surveyor to check it out. With IT projects, this ‘friend’ should be genuinely on your side, and have something to lose (e.g. financial or reputation) if things go wrong.
  3. Little and often is better. Like exercise, smaller projects that deliver results little but early are best. If the results are good, try a second (and third) round to add more functionality based on the feedback from users.
  4. It’s been all done before. Tailored suits cost a lot more than ready-made ones - and most people are happy with a ‘Good enough’ instead of ‘Perfect fit’. There are literally thousands of ‘off-the-peg’ computer systems out there ready for final alteration to what you need.
  5. If you don’t understand the answer, ask more questions. Thankfully the days we sat and nodded at the Doctor’s Latin words are long gone. IT Consultants may sometimes speak a different language, but if they can’t explain what they’re talking about in English that you understand, the chances are they’re trying to hide something.
  6. Don’t build on sand. Like houses , projects need good foundations. For IT Projects , the good foundations are sound knowledge of the Business Processes being coded into the system. Changing processes and changing IT systems at the same time is like building on sand.
  7. Sometimes the tortoise wins the race. Unless your entire business model is built around being the very first to market, then being a tortoise and letting others race ahead has very big advantages. Not only can you learn from other people’s mistakes, but the chances are you’ll get it at a much reduced cost - For example websites now cost a fraction of what they did during the dot.com boom.
  8. Use a safety net. When building houses, often the first thing to go up is scaffolding, for safety reasons. The equivalent safety net in IT is called ‘Unit Tests’. Not only do they help you get there faster, but they let you know if you’ve broken something you’ve already built.
  9. Be a good poker player. Good poker players never give away valuable cards. For IT projects, owning all cards mean just that - make sure that you have full rights to the solution so that you can still move tables and use a different supplier. Even if you never make the move, knowing that you can is an effective bargaining chip.

And finally …

When you are in a hole, stop digging. The decision to call a halt to the projects was no doubt a difficult one, and is to be applauded. Too often, the temptation is to keep on going and hope things will turn out right. Recognising problems at an early stage means there is more chance of being able to fix them.

January 30, 2006

Watch out Java - Windows Workflow is coming!

Filed under: Dublin, Ireland, Knowledge Management, Process, Rule Engine, Workflow — Paul Browne @ 1:00 am

Workflow is core to most business as it describes the core of what they do. Workflow can be as simple as ‘Search for Flights, Select Flight, Pay, Recieve Email confirmation’, to something much more complex (e.g. a Mortgage application). Many systems already have workflow in them, only they don’t know it. The problem is then that the Business People (who understand the workflow) can’t see how it is implemented in (hidden behind code), while the technical people don’t understand the business process. Workflow (closely related to Rule Engines) aim to solve this problem.

I recently attended an Irish .Net Developers presentation by Aiden O’Connor(long story), about the new Windows Workflow, currently in Beta as part of Microsoft .Net. While workflow in Enterprise Java is nothing new (Serverside Article), the implementation of Workflow in Visual Studio will bring it’s ideas to a wider audience, and force the Java workflow people to ‘raise their game’.

So, why should you be interested in Windows Workflow?

  1. Visual Studio has always had ‘Drag and Drop’ building of Systems. Now it will also have ‘Drag and Drop’ flowcharts (it looks a bit like Visio or other drawing tools). When the process hits a stage an Event is triggered and appropriate code called (e.g. similar to a mouse click on a form).
  2. It is likely that Business Analysts will use a Visual design tool to draw up the workflow. Programmers will then handle events at each stage in the workflow - a much easier process as they just have to concentrate on a single step, and not worry (so much) about the bigger picture.
  3. Long lived workflows and processes can be handled easily. For example, if we have issued the ticket and are waiting for the customer to check in (weeks later), state will be persisted automatically.
    It brings the workflow ideas from a niche to a wider audience. Even the Java based frameworks will benefit from this.

  1. It is part of the .Net framework - the equivalent in the Java world of it coming free with the JVM. It will run anywhere .Net does, and one workflow can span multiple machines (this was buggy in the beta, but it is a known issue).

January 23, 2006

Checklist for IT Contracts

Filed under: Business, Consulting, Dublin, Government, Ireland, Process, Project, Supply Chain — Paul Browne @ 3:51 am

The Irish Computer Society (ICS) has a useful checklist for Irish companies of things to watch out for when setting up an IT contracts.

These items include:

  1. Take a look at your ’standard’ contract in the light of recent developments in IT
  2. Review how you can make your supplier selection process even better.
  3. Use competitive procurement if possible
  4. Keep electronic copies of contracts
  5. Have formal contracts in place
  6. Watch out for IPR and use source code escrow if necessary

January 9, 2006

CRM Experts predict 2006

Filed under: Business, Knowledge Management, Office, Oracle, Process, VOIP, Web, Workflow — Paul Browne @ 6:15 am

TechTarget is running it’s CRM predictions for 2006. Among the top predictions are:

  • CRM (Customer Relationship Management) will become less of a standalone function, and even more highly integrated with business process.
  • SugarCRM (Open Software) will make it’s breakthrough into the mainstream (we told you so).
  • SugarCRM will not only become a viable alternative to low-end Oracle and SAP , but also to online services , such as SalesForce.com
  • Voice over Internet (VOIP - think Skype) will become increasingly important in the  call-center.

January 1, 2006

NoUnit Development Process

Filed under: Agile, Business, Development, JUnit, NoUnit, Process, Project — Paul Browne @ 8:00 am

Some notes on agile process based around NoUnit - to be expanded later

Metrics

  1. Use Cases Completed (e.g. Track using XPlanner)
  2. Tests (Junit) written to confrim that these use cases are complete.
  3. Percentage of Unit Tests Running (should be 100%)
  4. Code Coverage of these tests (using NoUnit)
  5. Code Quality (Sun Javadoc Quality Checker, Code Review)

December 12, 2005

Ease the pain of project delivery

Filed under: Business, Process, Technology, Testing — Paul Browne @ 12:39 pm

Many people I talk to still seem to regard delivering IT projects on time as something of a ‘black art’. No matter (or perhaps because of) how many Microsoft Project plans and Gant charts they have, they get stuck in the illusion of paper over reality where the project must being going well because the plan tells them so. Add to these unknown quantity of new (or new to the business) technologies and it seems only a matter of time before things go out of control.

Agile techniques are one response to this, but projects still need to be managed, hence the need for metrics - cold hard numbers that lets the big boss know that things are going ok. The Agile Blog has a good section on getting started with these metrics.

This topic also fits neatly with the news that the presentation slides for NoUnit at Fosdem are now live on the site.

NoUnit, an extension to JUnit the Java Unit testing tool, gives one of the key metrics that project managers need to see . These include

  • How many pieces of functionality have been delivered (as demonstrated by automated Unit test).
  • How many of the automated tests are working (should be 100%)
  • Are the important parts of your project being tested (this is where NoUnit steps in)
  • What is the quality of your project? (e.g. Sun Javadoc Quality Checker)

November 29, 2005

ComputerScope

ComputerScope (them of the free monthly magazine that somehow I’ve never been able to subscribe to) have a nice directory of Irish Web links.

The useful people that they link to include:

Computerscope (for Business) are part of the same stable as PC Live (consumer) and Smart Company (Small Business).

November 14, 2005

How supermarket store cards could save your life

Filed under: Health, Knowledge Management, Process — Paul Browne @ 2:57 am

The BBC are running an article on how Store cards (the sort that give you bonus points with your shopping) could save your life.

The basic idea is that information that the supermarkets are already gathering (to profile area’s so they know what products to put on shelves, and to profile you as a customer) can be used to predict health risks.

I used to do similar work (not for any of the Major Supermarkets) and it is amazing/slightly worrying how much information can be ‘bought’ off the shelf like this. It’s good to see the technology being put to a good use.

October 31, 2005

I have seen the future of web applications and it is ….

Filed under: Ajax, Business, Development, Knowledge Management, Process, Technology, Web, Web 2.0, Workflow, Xml — Paul Browne @ 2:00 pm

Jotspot . It’s not that it is very much a Web 2.0 company. It’s more that it draws together a lot of previous ideas into one easy to use package.

  • It’s easy to use - if you can use Microsoft Office , you can use JotSpot
  • It’s easy to develop - ‘Power Users’ not developers can do it (the sort that come up with fancy Excel Spreadsheets).
  • It’s web based, is available everywhere and uses a very fluid Ajax interface
  • It can be easily extended , so all the people currently playing around with PHP and websites can get up and running more quickly.
  • It’s free, with a more powerful commercial version

Other ‘out of the box’ features include being able to import Excel Spreadsheets and have them available as online applications. It also comes with ready build applications such as CRM , Project Management Tools, Colloboration Tools etc

Jotspot is exactly the sort of ‘Component based Architcture’ that Java Developers have been aiming towards. It ties the portability of Java, the ease of development of Visual Basic and the promise of Lotus Notes. It also has a full set of easy to use XML API’s , so a wave a client applications tied into a Jotspot server is not far off.

October 30, 2005

Do Software Patents really Affect you?

Filed under: Business, Development, Knowledge Management, Process, Project, Technology, UK, Workflow — Paul Browne @ 2:00 pm

The Economist is running one of it’s in depth Surveys on Software Patents and the Market for idea’s. Some of the content is available online but here is the 10 second version:

* The market for idea’s is one of the key drivers of Economic Growth.
* Large Companies are gathering Patents as a means of defense against other people enforcing patent claims on them.
* Patents , if used unwisely, can be a bit like the tolls that used to be charged travellers - good for the local warlords but bad for everybody else.
* Many large companies , including IBM and Novell are donating Patents to Open source as a means of helping the open software , and hence their own , interests.
* As other countries (e.g. China and India) gather their own Patent portfolio, the attitude to Patents and Copyright, instead of one way traffic, will become more balanced - for example the US Cogress was ready to forcibly licence an anti-anthrax drug from a German Company post 9-11. Expect

A good forum for expressing your views on Patents is Digitial Rights Ireland.

September 26, 2005

Security : How to break your own web application

Filed under: Business, Development, Process, Security, Technology — Paul Browne @ 2:11 pm

Almost as bad as thinking ‘nobody can break my web application’ is a bury your head in the sand and think ‘if I don’t try and break it , then it must be working , right?’

The Open Web Application Security Project is a cold dose of reality - it documents what the bad guys already know, and what you should know to actively try and break your own website.

I haven’t tried running any of these against any of the well know Irish Websites, (for obvious reasons), but it would be interesting to see how many would pass these tests … they even provide WebGoat , a piece of software to teach you on how to find (and fix) Security flaws (thanks John for the correction!).

August 14, 2005

Easier Builds equals more work done

One of the ’should be easy but takes up loads of time’ items is actually building your code , especially getting the first build working. Until now , the tool of choice has been Ant which means that as soon as one person on a team can get things up and running, everybody else can copy it and do the same (as opposed to having to set up each machine one by one).

Been getting more into Maven which is what the people from Ant did next. It can do everything Ant does , but is more project focussed and on getting results. For example , instead of making you worry about the technical details of the build (which it does very well) , Maven lets you think ‘I want to build the project’ and tries to do (trival!) things like download the necessary libraries for you …

The integration with Eclipse promises to be very good , even more natural than is currently possible with Ant. More details here.

December 8, 2004

Red Piranaha Available

Filed under: Knowledge Management, Process — Paul Browne @ 8:06 am

First Version of Red Piranha (Open Source Search and Knowledge Management) now available on sourceforge - http://www.sourceforge.net/projects/red-piranha/

Red-Piranha is sponsered by us (http://www.firstpartners.net )