Engineering for the real world

My carbon neutral future

I had a sudden realisation today about the poor environmental credentials of this website. I've seen a few reports recently that have honestly shocked me about the carbon emissions from websites and emails. I guess because it is so cheap, I don't realise the cost on the environment. Today I read an article saying that each item of junk email produces an average of 0.3g of carbon. I don't know how acurate that number is, but I find it truly amazing that something with such a small piece of information can produce enough carbon to actually see.

I've decided to try and make this website and all of it's surrounding activities carbon neutral. I suspect this is not going to be an easy thing to achieve, because the information and tools just are not available to make it a simple fill in a form and make a few payments exercise. Somehow I need to work out, for each activity, be it website views, emails, application releases or just support activities, how much it will cost to do the release. My other problem is that I want to be carbon neutral at the source rather than by mitigating carbon emissions. I feel that this is a little bit more holisitic than simply working out emmisions and then paying to have trees planted that offset the emmisions.

This is not going to be an easy problem to deal with and it certainly is not going to be something that I can complete overnight. I do however want it to be as open as possible so I will openly publish the work I do on this. In the mean time, if anyone has any ideas or useful tools for how to assess carbon emissions from websites or emails please drop me a line and let me know.

The future of Risk Engine

First of all, thankyou to everyone for the support during the development of Risk Engine to date. It really is much appreciated and is a huge help to further the development.

Unfortunately support from donations, or other similar sources have been somewhat limited. Developing and supporting an application does cost money and to date donations have not covered these costs. I really want Risk Engine to pay for itself as there is much more work that I want to do to create a leading example of an analysis application.

To try and deal with this problem I have a few possible solutions. One is to open source the application and see if the community can push it forward. Although I'm an advocate and user of open source software, I'm not sure that open source is right for Risk Engine. It is a specialist piece of software and so the number of users who might want to work on the development will be somewhat limited compared with other projects such as Adium.

After some thought, I've decided the best route for me to take is to release Risk Engine as a paid for application. The next release of Risk Engine will therefore be a 1.0 release and the software will become a paid for application. This will hopefully allow me to drive towards some of my aspirations for Risk Engine. It will also enable me to put support in place that a professional level application deserves.

This doesn't help me achieve all my aspirations for Risk Engine though. I wanted to create an application that was simple enough to use and accessible enough that everyone can play around and learn from Monte Carlo analysis. These are techniques that need to be used rather than taught, and they need to be used in a creative and experimental manner to get the best from them. I am therefore going to have a tiered pricing system of:
  • Normal license of $40
  • Academic license of $10
The academic license will therefore be accessible to anyone who is undertaking academic work. If you are a student or a teacher in school, college or university and would like an academic license then just get in touch and I will arrange for one. I'm also opening up the academic license to anyone who is engaged in work that will become open source as I really do believe that you don't have to be in an academic institution to be either a student or a researcher. Anyone who is undertaking some sort of learning programme, even if it is a programme you made yourself, should therefore be eligible or an academic license. Similarly, if you are engaged in research work, as long as your research will become public domain at some point in time, you will be eligible for an academic license so please get in touch for a license.

I want everyone who buys a license to be happy with the purchase, so to enable this I'm going to introduce a limited functionality demo. This means that everyone who is interested in Risk Engine can have a look and trial the software prior to purchase to make sure they will be happy with the purchase. I'm limiting functionality, rather than have a time limited trial, because I believe that if you create a model in Risk Engine, that is your model and you should always be able to access your data. A time limited trial doesn't do that because if you create your model and want to access it after the time limit is up, you'll have to buy a full license. For this application, I feel that the fairest way of creating a trial application is to limit the functionality rather than having a time limited trial. If you do need a fully functional, time limited trial then please get in touch and I will make suitable arrangements.

Finally, if I am going to charge for Risk Engine, I want to be able to give something back to the community. For this reason 25% of every purchase will go towards The Dogs Trust and SARAID, two UK based charities. In the interests of full disclosure, I am an operational team member in SARAID but I have no affiliations to The Dogs Trust.

The last thing I need to do is to give you some idea for where the future of Risk Engine lies. There are many minor changes and improvements I have planned for Risk Engine to make it a more useable and attractive application to use. In addition to these, I would also like to add some major functionality improvements, including:
  • The ability to solve linear and non-linear optimisation problems for Monte Carlo and other models.
  • Regression of the final outputs from the model to give best fit probability distributions.
  • The ability to take 'snapshots' of spreadsheet models and run and store multiple analyses.
  • Adding spreadsheet templates to the model.
  • Adding evidence based probability distributions and tools to check input models against actual out-turn results.
  • Localised versions of Risk Engine (thanks to Olivier De Smet who has already provided me with some useful feedback on this particular issue).
My aim is to make Risk Engine a leader in usable and practical analysis tools. All of these improvements are planned for the 1.0 release and so will all be accessible to license holders as soon as they are implemented in Risk Engine. Of course, if you have anything you would like me to look at for the future please get in touch.

Thankyou to everyone who has provided feedback to date. I hope that the future versions of Risk Engine live up to your expectations.

A quick apology

Just a quick update to apologise to anyone having trouble updating a previous version of Risk Engine to the latest version released today. I've hit a few problems with a third party piece of software designed to make the release process run a little easier and unfortunately this has hit the automatic update system for one of the releases. The link to update directly from the website should still work however so this will hopefully not cause too many problems for users.

Thankyou for the support.

Ian

The solution space and design creativity

In the last few weeks I've heard a few discussions about 'solution spaces'. I thought it might be time to update a post I wrote a few years ago on my interpretation of the solution space and the importance of boundaries in creativity.

There is a fairly commonly held belief that boundaries are bad for creativity; the more boundaries you have the less creative your outcome. Creative endeavours are often described in terms of 'pushing the boundaries', opening up the space in which to create something and thus being creative simply by exploring something that has never been explored before.

So what does this mean for engineers and other real world problem solvers. If we push the boundaries of what has been achieved before, does this mean we are being creative? And what does it actually mean to push the boundaries in terms of creativity. It can not be the limits of technology, otherwise the only source of creativity in real world problem solving would be through scientists rather than engineers and designers.

For me, the solution space is a really important concept in helping to understand these issues. I tend to think of the solution space as a multi-dimensional space where each variable of the clients requirements, such as cost, time, accessibility or reliability, is situated in one of the dimensions.

Consider a client who requests the services of an engineer to design a bridge from an island to the mainland. He gives the engineer nothing more in the brief than the request for a bridge. What sort of bridge should the engineer design? In this situation, she must do her best to satisfy the client, but with such a limited brief she shouldn't do anything particularly creative. The design will be fairly standard, maybe a simple concrete two lane highway bridge. Nothing particularly special, but at least an attempt at giving the client what he wants.

In this situation, the clients brief was clearly a problem. The lack of definition meant that there was little chance that the bridge would actually give the client what he actually wanted. It also means there is little chance for the engineer to be truly creative, trying to satisfy the clients requirements.

So let us say the client is a little more definitive about the brief, and define the cost. The client knows his budget for the bridge and says the bridge should cost between £3 million and £4 million. Now things are a little more defined and the engineer has some sort of idea how best to satisfy the clients requirements. In this instance we can also start to represent the clients requirements in terms of a solution space:

Pasted Graphic 1

There is still not much room for creativity, and the chance of satisfying the clients requirements is still fairly low. Does he want a footbridge, a two line highway bridge or even a twelve lane highway bridge?

For a better design, that satisfies his desires better, the client adds a little more detail to the request. The brief is now that the costs should be around £3.5 million and there should be four carriageways. With two dimensions to the clients request, the engineer now has a much more interesting solution space to work with. The graphical representation goes from one dimension to two dimensions. With such a defined brief from the client there is also a single point on the graph that represents exactly what the client requested:

Pasted Graphic 2

With this brief the engineer can now work on a solution which we can also represent graphically in the solution space:

Pasted Graphic 4

Off all the possible solutions, there might only be a handful of solutions that actually satisfies the clients requirements. We are now in a situation where the engineer is producing designs that may genuinely have never been created before. This allows the engineer to express some of their creativity in developing a solution and yet in this instance, the boundaries have not been pushed, the boundaries are actually allowing the engineer to express some of her creativity.

For me, this is the essence of creativity as an engineer. By defining your boundaries better, it actually forces the engineer to come up with a more creative solution to satisfy the clients requirements.

The real world is of course much more complicated than this. What if the client requested a bridge costing around £2.5 million? Suddenly the engineers solution space is very different:

Pasted Graphic 5

Now it seems like we can not deliver the clients desires. This is the sort of situation where true creativity is required, the engineer has a few options for dealing with this situation. One option is to push the boundaries of the possible solutions, expanding the possible range until it encompasses the point which satisfies the client. Another option might be to consider the clients original request for the cost of the bridge. He requested a bridge of around £2.5 million, so there is obviously some scope to vary the cost, although the further the final cost is from the original, the less likely that the clients requirements are satisfied. It is therefore very important to not only understand each of the variables, or dimensions, in the clients brief, but also how client satisfaction varies within that dimension. Does the client want it maximised, minimise, is there an absolute floor or ceiling to the request, and if there is some variation allowed, how much?

Ideally we would want to represent all of these dimensions graphically as it is much easier to understand the problem. Most clients desires are however heavily multi-dimensional. As such they are very difficult to plot graphically. One document should however be used by every design team to lay out the solution space. In this instance I'm going to call that document the design specification, although it may be know by many other titles. The design specification lays out in detail how the clients desires will be satisfied. It gives both the dimensions which need to be considered to provide a design that satisfies the client, as well as the range within each dimension that can be considered. Given the real world nature of the problems that the specification defines, it is important that it gives the designer some wriggle room when dealing with a problem so some of the dimensions in the specification must be flexible, and yet some will be fixed with no room for changes; few clients let designers compromise on health and safety in delivering a solution. The design specification therefore defines the solution space that the designer must search in order to provide a solution to the client, and by laying out the boundaries clearly, this document allows the engineer to be truly creative in the search for a solution.

By way of closing, I'd like to go back to the client who wanted a bridge between the mainland and an island. The client now comes with a modified brief that they want a minimum cost bridge, with a very low capacity and which is not classified as a critical link so it does not necessarily need to be open every day. In this instance, a cheap, single lane, bridge design might somewhat satisfy the client. But would a simple vehicle ferry give more satisfaction being much cheaper and yet still satisfying the other requirements? A ferry would be a truly creative solution to a request for a bridge from a client and yet this creativity is only possible by truly understanding the clients requirements and having a good design specification at the outset.


Quick bit of reformatting in Excel

I spent most of today working with an Excel spreadsheet. I don't know whether I have been spending too much time with Numbers, but looking at all those white rectangles with grey lines was just too much for me today. I wanted something that looked a little better than the usual spreadsheet.

It's amazing what a difference just turning off the gridlines can make; the spreadsheets just look so much more elegant and professional. The only problem is that standard formatting for excel has the text essentially equally spaced between the cells and within the cells. My spreadsheet had word wrapping switched on so some of the cells had one row of text, some had two, and some had more. Without the gridlines it was really difficult to tell where one cell ended and another began. I needed a little padding between the text in different cells to complete my little makeover.

It's not perfect but I wrote a little excel macro to help me with this. It looks down the first column in the spreadsheet and checks if each cell contains a value. If it does, it adds a little padding to the cell, and then carries on to the next until it reaches a cell which doesn't contain anything. If it is useful to you, here is my script, hopefully someone might find it useful.

Sub AddRowPadding()
Dim i As Integer
i = 1
Do While i < 32000
If IsEmpty(Cells(i, 3).Value) Then
Exit Do
End If
startingHeight = Rows(i).RowHeight
Rows(i).RowHeight = startingHeight + 10
i = i + 1
Loop
End Sub

Adding Monte-Carlo analysis to iWork Numbers

Monte-Carlo analysis is not a new method of analysis. Scientists, engineers and project managers have been using it for years in many different fields to solve problems with multiple varying inputs. As a tool it has proved to be incredibly adaptable and reliable as a problem solving method. It is simple to understand, works with models of virtually any type and gives a good understanding of a problem. So the question is why is it not used more?

The first problem seems to be that it is not well understood. I think that few engineers actually have a chance to learn about methods if they don't have access to the tools to actually use them. Monte-Carlo analysis can only really be used with a computer model capable of running a Monte-Carlo simulation. It can be done manually, and for complex models sometimes it is necessary to just perform a few runs and manually compare the difference (ref. 1). This is not much different to performing a finite element analysis manually though, it can be done but there is little benefit for all the work that goes in. There are far better ways to solve the problem if manual methods are going to be adopted.

Tools are available to the engineer to undertake Monte-Carlo style risk analysis. The problem is that they are not accessible and they come with an enterprise price. Combining the the cost per seat of the software, the training cost and the learning cost, the price of getting up and running with these tools prevents engineers just having a go. It becomes a serious proposition to look at using Monte-Carlo analysis on a project and yet so often some fairly small decision could be well informed using the method. The tools should encourage the playful, explorative search for a solution as well as being capable of performing accurately, tightly defined, high quality analysis necessary when solving a significant problem.

Monte-Carlo analysis is also prone to a credibility problem. The outputs an always statistical. If you ask your programmer when the project will be complete it is much easier to deal with the answer '4 weeks time' rather than 'there is a 67% chance that the project will be complete in 4 weeks time'. Whilst the statistical answer is more informative, it can also hide many problems. If the project over-runs beyond the 4 week deadline it is easy to say there was a problem with the deterministic answer of '4 weeks time'. You can't readily say whether the statistical answer is right or not though.

For a project manager this would be a serious issue, because without some form of validation of the method being used, you can not have any confidence about using the methodology. Validation of a method only really comes with its regular use; repeated use gives both direct evidence of its performance as well as the personal, empirical understanding of how effective a method is.

To help with these problems I have started to develop a tool that will put Monte-Carlo analysis, as well as other similar tools, into the hands of any engineer. When Apple updated iWork earlier this year, Numbers finally got an Applescript dictionary. This means that automated tools can be created which hook into Numbers. The aim is to create a complete suit of automated tools that allows engineers, scientists and managers to create a model using the freeform approach of Numbers and then analyses the model using simple, intuitive but powerful tools to explore the behaviour of the model.

The project is in an early Beta phase and I would like as many people to try it as possible. People use these tools in many different ways and I need to understand how people will use it to understand how to develop it further, without impacting on the creative use of the tool.

If you are interested then please have a look at the Risk Engine page, download the application and try it out in your models.

Thankyou for your support.

References
1. One is not Enough, 2008, Rocscience Inc., [http://www.rocscience.com/library/rocnews/winter2009/One-Is-Not-Enough.pdf]