Disclaimer

All the information on the page represents my thoughts on what is involved in a digital business project, and my experience from supervising some projects over the last two years. It might be wrong, but I've not heard any better story about what makes a digital business project. This isn't an official guide to the project, it's not a recipe for success, it's not a call for a hundred digital business project students to come and discuss it further, it's not even spellchecked. All it is is some ideas that you might find useful in coming up with and refining a project.

HELP! I Need a Digital Business Project!

I have had a few digital business students come to me asking for help in coming up with ideas for final year projects. Since I keep giving the same talk I thought I'd make it available to everyone. Note that these are my ideas on what makes a good digital business project, but you can use these ideas to come up with a project for other supervisors - I am happy to supervise some digital business projects, but there are about 90 of you and one of me, and I'd also like to have some students doing projects in my area of interest.

Also I am going to give an example of what I see as a 'typical' digital business project. This isn't intended to be a 'what you should do if you can't think of a project', or 'come and see me if you want to do this' but an illustration of the ideas I am talking about. The example is in targeted marketing, which several of my previous students have looked at.

Business, Digital, Digital Business

As I'm sure you've been told before you need a business and a computer science aspect to your project, but you also need to have a unified project - you don't want to have a business component and a program which have nothing to do with each other. So what can you do? One approach is to identify a business problem that has a technical solution. This makes sure you have both components present and that they tie in together. This in turn makes it easier to write up as you'll have a coherrent 'story' to tell - This is a problem, here's what other people have done, here's a possible solution, here's how I tried it out, here's what happened (otherwise known as Motivation, Previous Work, Design, Implementation, and Evaluation).

That's all very well but how do you find a topic? Well, you want a business problem so think about your business modules, were there any problems or topics you found interesting or (unlikely as it may seem) exciting? Can they be solved with computer science? Alternitively are there any aspects of computer science which you like? Can they be applied to business? Finally you have to do this for about 2 days a week for 6 or 8 months so you want something that will keep your interest - is there anything that you are personally interested in which can be used?

Ideally you also want something to make your project a bit special. This is tricky, but if you can find some aspect of your project which makes it stand out from the rest, or gives it an edge, then it helps. Possible 'special' things could be taking a new or different approach to an existing problem, coming up with a new way to apply an existing technology, or thinking of an interesting application area. Basically you want something new, striking, and different. This doesn't have to be radical or huge, just something.

Finally there's the question of balance between business and CS. There's no right answer here but I've suggested to some of my students a 1/3 - 2/3 split weighted in favour of CS. There are two main reasons for this. Firstly your course is CS with some business aspects, and about 2/3 of your compulsory modules are in CS. Secondly it is going to be marked by CS staff, so you want to keep a fairly high level of technical content in place. Moving a bit either way would be fine, but I think that you want a fair bit of business but rather more CS. You want a DIGITAL business project, not a digital BUSINESS project. Note: I've had some other views on this - Helen Ashman suggests a 50/50 split for example - so this seems to be a fairly flexible area. Also much of the content of your project should be both CS and business - it should be digital business.

Example: Businesses want to effectively target their marketing. If you send advertising to everyone then they get annoyed, but if you don't advertise then people don't know what you're selling. The solution is to target marketing by analysing the demographics of your customers, but this is information is hard to gather. However, there is a techincal solution for e-commerce: you can gather demographic information by having the customer fill in a form, or more covertly by monitoring their browsing habits. Amazon.com is a good example of this, where it recomends books similar to the ones you have recently browsed.

Something Web-Based with a Database...

OK, so you have a business problem and a technical solution but what do you do with it? Well, you write a program to solve the problem by implementing your technical solution. Your program will also have other aspects to it as well, but first and foremost it solves a business problem. Many digital business projects are related to e-commerce, so a common form for this 'program' to take is a website. This is not the only way to proceed, but it is common enough that I'll go over it here.

Now a website itself isn't a program - it's a bunch of pages formatted in HTML, maybe with some nice graphics or flash animations, and from a computer science perspective requires as much programming skill as typing a letter in Word. You can however add programming instructions to a web page. There are two main ways to do this- CGI (the Common Gateway Interface) and scripting languages such as PHP (PHP: Hypertext Processor). CGI pages are programs (written in any language like Java, C/C++, or Perl) which write web pages, and PHP puts programming instructions inside a web page. There are differences in the approaches of the two but basically they both allow you to have web pages which change based on user input (through forms) or...

...databases. Databases and the web are where most digital business students end up. When you get down to it, most e-commerce sites are essentially a web-based interface to a database. So you'll need a database, which is OK since the school has lots of them. Also it needs to talk to your PHP scripts/CGI pages/TLA thinggies. This is also OK since you can embed SQL (remember that from DBS?) in PHP or Java or C/C++ or whatever.

Example: We want to target marketing to customers based on information provided by forms and their browsing behaviour. To do this we set up a dummy store selling books (it really doesn't matter what it's selling, but books are a common example). Customers will be able to sign up to the site (and log in when they return), search and browse the catalogue, and go through to a shopping cart (which won't actually take their money, but also won't give them any books). The site will monitor customer behaviour to target recomendations, banner ads, and email marketing. To do this a database will be constructed holding store product info, customers, orders, and records of customers' browsing behaviour. The site will customise itself to each client based on their behaviour, which will be driven from the database. Finally there will be administration functions including the ability to send emails to customers who are interested in (ie have browsed or purchased) particular types of product.

Finding a Supervisor

Once you have a business problem, a technical solution, and an idea of what computery stuff (programming etc) is involved you need a supervisor. Who to choose? Well, to be honest there aren't many lecturers who have specific digital business projects on offer, but I also don't know of anyone who would be unable to supervise a project such as the one I have suggested. With so many students (both digital business and straight CS) most of us won't be supervising just in our research area anyway. Personally I'd rather supervise a few digital business students than some CS students working in some areas of computer science outside of my particular research interests. Most of the problems my current digital business students have had have been in 'core' computer science - programming, design, etc. - which I can deal with, but if someone came to me with a problem (for example) related to building a compiler for a functional language, or related to hardware or operating systems, I'd probably be able to manage "Huh?" before I had to reach for a book or send them elsewhere.

The main thing you want in a supervisor is someone who can help you with the parts of the project you are likely to find difficult. For many digital business students this is the programming and the general idea of a 'research' project. Almost any lecturer can help you with this - I think most of us can program, and research is a large part of our jobs here. It doesn't matter if they don't know about some business topic, as long as you can look after that aspect yourself. Also you might have to work a bit to cover particular technologies - some supervisors might not know much about databases or XML for example - but no-one said this was going to be easy.

When you approach a supervisor there's a few things that you should keep in mind:

Working for a Client

Some project ideas start of with "My employer/dad/sister/neighbour's dog has this business and they want me to...". Now this is fine in itself, but there are a couple of problems associated with it. The first of these is that projects like this are usually motivated by a specific rather than general problem. This makes the project a 'design and build' affair, which can be a bit limiting. If you build a web site for a client then that solves the client's problem - they now have a web site - but what is your project actually about? If it's just about you doing stuff because the client wanted you to then it's not very interesting.

The second problem is that you are serving two masters - the client and the course. This is fine as long as things go well, but there is a risk of conflict between the two. If this happens and you choose the course, then the client gets upset and often the 'client' is a relative or prospective employer who you don't want to upset. If you choose the client over the course then your grade might suffer. Now this risk isn't huge, and if you are clear at the start how things are going to work you might well be able to overcome it.

Now this doesn't stop you working for a client - I have a couple of students this year who are doing just that - but means that you need to give things a bit of thought before you commit to it. You need to think how your project can be made broadly relevant, and how you are going to balance the needs of the client and the course.