Fog Creek Software
Discussion Board

new job, but the actual project is silly

After being unemployed for ages I finally have a job. I started last week. The company doesn't write software but uses packaged 3rd party software to provide services. The interviewers seemed very sensible. They said they pick people by ability not by buzzwords and actually started me on a good salary (better than anything I've been on before) without me having to haggle or even suggest a figure. I just asked that they pay me what they pay everybody else.

They did take on one project some months ago that turned out needed some software written. I am guessing the guy who wrote some of this software has never written software before.

Anyway this guy is leaving the company soon for a round-the-world tour. Hence the vacancy I accepted.

Yesterday he told me in detail about the software he has written. He gave me the source code. It is written in Visual Basic for Applications.

I was shocked. He is essentially trying to replicate the functionality of part of a Microsoft product. However just a part of the functionality. They are still going to use the Microsoft product.

The whole thing is perverse beyond belief. It goes beyond Alice In Wonderland.

They could just do the whole project with Microsoft Access. However they want to re-implement part of Access' replication using home-grown Visual Basic, produce a continually growing pile of XML documents that grows by 1 document every time a single database row gets altered. They still haven't worked out how to deal with conflicts. Then they want Lotus Notes to take this continually growing pile of database changes represented by x number of XML documents to use its replication to move the documents to a central machine.

I told the guy yesterday there has to be a simpler way to use this and that they should just use Access's built-in replication. The first thing he said was the client is fussy about what runs on their network. When I questioned later in the day he said the specs have been written to do it this way and they can't be changed. He said he couldn't argue his point as he agreed with me.

Before I found out about the project someone senior in the organisation told me how wonderful Lotus Notes' replication is, how useful it is to him and that is still manages to work despite his computer crashing in the middle of things. The thing is that they although they are using Lotus Notes, the database they are using is Access which has its own replication. Also as I said they are partially re-implementing replication in their own VBA code.

Microsoft Access ----> Home grown code that isn't finished trying to replicate a part of what Access does already ---> Lotus Notes replication

What should I do?

1) Leave now
2) Tell someone more senior in the organisation what is going on
3) Do nothing

Tuesday, October 14, 2003

And which of those options keeps you employed and paid?

i like i
Tuesday, October 14, 2003

I'd choose secret option number 4: Stay and pretend you really like this solution. Tell this soon-to-be-gone developer this is the best solution you have ever seen. Wait for him to leave for his bashi-boozook trip and execute the following procedure.

(1) eliminate all documents he left at the company
(2) go to your boss and tell him you don't understand a thing of the existing software. Maybe alter a few things there too
(3) convince him it was the other guys fault.  Should not be THAT hard, is it? In the end it's not your fault there is no documentation :-)
(4) tell your boss not to worry as you can do the job in half the time. Assuming your boss is an idiot, just use the standard access replication
(5) you are welcomed as the new secret weapon of the company as you'll have not only spared time, but also have smartley 're-used' existing functionality, which is one of the buzzwords of this decade.

good luck,

Alonso Moseley
Tuesday, October 14, 2003

You can't compare Domino (Lotus Notes) replication and MS Access replication - I am sure there are reasons (security, reliability, client requirements, bandwith etc.) they want to use Domino replication.

I am not sure I quite understand what you are doing.  Do you move data from Access to Domino and replicate to a customer site?  The customer then accesses the data from his Domino server (either through a Notes client or Browser client)?  Is this a one way transfer?  Is the data read back into Access from Domino on the customer side?

There are simpler ways of getting data from Access to Domino, than dropping a XML file somewhere and parsing it into a Domino document.  OBDC, JDBC and various other third party tools spring to mind.

Are you sure you understand the problem?  Is it possible Access/VB is your hammer and everything is a nail?

Tuesday, October 14, 2003

My past projects have used Oracle rather than Access and so I don't think the problem is that Access is my nail.

The problem is that they are representing a local Access database by x number of XML documents. Every time a row is changed a new XML document gets produced. Rows are never deleted.

Above that every user in the system has a local Access database. Say 10 users alter the same row. 10 new XML documents just containing the new row get pumped out.

In the end there will be hundreds to thousands of XML documents. There is no decent way to final the latest version well. The code for this hasn't been written yet. What the man here thinks is that each user will somehow get shown all the possibilities and choose between them.

What happens if different users choose different versions to be the latest version?

(Database replication will handle all this for you. Well Access has a simple means of doing this and conflicts get written to a table_conflict table.)

Their way sounds really perverse to me.

The whole point is just to let each user have a local database and that each local database is kept in sync with all the other local databases. I suppose having a central store safely on a server is an aim as well.

*** Please tell me more about other means to passing data from Access to Lotus. *****

Tuesday, October 14, 2003

You are the new guy, so take advantage. Your goal is to understand the problem being solved. Once you have an understanding of the complete problem, put together a proposal explaining why their current path is going to be a bad design. Next to that have ready your proposal for what you think is a good design. Keep it simple and use pro/con bullet list to help them evaluate.

You are an outsider who has the advantage of a fresh outlook. Use that to the employer's advantage. Don't whine to them about how you don't like the solution, show them why it is bad. They hired you for your expertise, but trust takes a while to develop. Give them three months and if there is a repeatable cycle of crap, look for other options.

Tuesday, October 14, 2003

Settle down, put your feet up, have a good look at everything and ask everybody lots of questions, without any preconconceived ideas. It's paying you money and probably keeping you quite happy, so just roll with it.

This way you will be able to make certain you do actually understand the system and requirements. Also, everyone else will be impressed with your enthusiasm and interest.

Last but not least, if it turns out the system really is stupid, you will be ideally positioned to investigate an update. Not only will you know the existing system inside out, you will have gained the trust of all related parties.

If it's a bit boring for you, start some night course for the next two years.

Tuesday, October 14, 2003

First, finding a job is easier when you're employed, so you should not leave until you've found something else.
This is only one project, but if they run all projects like this, you could have found a nice opportunity :) Set a date (i.e. 1 year from now) and try to change things to how you think it should be done.

P.J. Vervoorn
Tuesday, October 14, 2003

To leave a company when you do not have any financial base is very bad decision.

Besides in a new company they'll have their own "tricky projects" and stupid managers.

Offering a radical solution, during your first or second month at a job is risky. If they are not too smart they think you're cheeky and want ot outsmart everyone.

If you want to do things your very own smart way you need own company :-), just like Joel.

Do not take the advice of blaming everything on your retiring collegue - it's not nice, in addition he might be a good friend of the manager. It's the easiest way of making enimies.

So, keep going, collect data before any steps, try making a presentation based on facts, that your manager will understand: simple words, business risks outlined, and remember he likely do not care much about technological aspects.

If you can quit anytime, why quit now?

Tuesday, October 14, 2003

and... probably for your manager this is only small insignificant part of the business.

Tuesday, October 14, 2003

Having used Access' replication in a project, I can understand why they want to roll there own.

My experience was with Access 97, it may have been improved.

We had sales people using a laptop based Point of Sale system.  All data was sycnronised between the laptop and server via replication.

Some of the salespeople had to sync via a dial up modem, and this was a nightmare.  Syncronisation could take a long time, and if it failed for any reason the database was left damaged.

Unless it has been seriously improved, I would never again consider using replication for anything critical.

Ged Byrne
Tuesday, October 14, 2003

Like my Dad once told me when I bought a truck.  "Son, sooner or later someone is going to want you to pull them out of a ditch.  Help them.  But make sure you let them hook the chain or tow rope to their car, not you.  I don't care if they want to hook it to their mirror, you let 'em."

Country Boy
Tuesday, October 14, 2003

*  Recent Topics

*  Fog Creek Home