Just How Crazy Is My Employer (Programmers Opinions Particularly Wanted)

This really is a serious question. I’ve been saying I’d do this for a while now, and the time has finally come. I need to cash a reality check.

The Project:
Build a Contact Management Database which can be used off-line and synced to the network on demand and which can be used to generate proposal requests. It includes a calendar, a diary, and a to-do list and different security levels. Tie these proposal requests into a marketing database and a proposal database. Add in software for our HR department, including recruiting software and project management software. All components are being built in-house and must be easy to use and robust. Oh, and documentation and training would be nice. Basically, it’s build a JD Edwards-type piece of enterprise software.

The Software:
Mostly Access 2002, although there is a SQL Server 7.0 box which will house the data itself at sometime. Front ends will continue to be in Access 2002, as will the off-line versions. Some work will also be done in Visual Basic 6.0 and other parts of MS Office will be used as needed. Users are running two different version of Outlook, which makes automating e-mail interesting.

The Timescale:
Business standard – as soon as possible. We’d like to have the off-line portion of the Contact Management Software running by Friday, the proposal request portion on-line by mid-July (it would be sooner, but can’t for reasons below), and the recruiting software in place as soon as possible after that.

The Resources:
Me. And $1.98 American, and I’m not real sure about the buck ninety-eight. Now, I’ve only got an Associates Degree in Computer Science, but I’m a pretty good programmer, and you’d better believe I’m re-using code and procedures like mad. They’re also doing lots of little things to keep me happy, but I’m my company’s only software developer, and about all I can get help with is the documentation. I’m also going on vacation next week, and it looks like I’ll have to go out to a client site for a few days the following week.

The Question:
Just how reasonable is this? The project is, actually going quite well, but every so often, when I think of everything that has to be done, my head starts spinning. How many people and how much time do you think is reasonable for a project this size (yes, of course the two are related), and how much time would your company give you? If I’m being whiny, tell me now, and I’ll count my blessings that I have a good job working for an employer I genuinely like. If it’s as bad as I suspect it is, we’ll have a good laugh about it over drinks.

Oh, and ** Don Harp And Sword**, if you’re lurking about, that’s one of the reasons I’ve been missing fencing practice.

Thanks for your input,
CJ the Overworked

If your employer thinks you can pull this off, either he’s a wacko or you’re a genius.

About three years ago I went through a project converting an old database system over to SQL server. It was an inventory management and process control system that had to tie in to these barcode data-collection terminals that used hendheld UPC scanners. Basically assembly-line type stuff. The person on the assembly line did his or her thing and then scanned the product and keyed in what they had just done. The system then made note of it, updated inventory, printed out labels for the stuff when completed, generated reports on project progress, etc. We worked on that damn thing for months. I mention this because the scale of the project seems similar. There was for all intents and purposes one programmer (me) and the thing was coded mostly in C++ and C using the standard SQL server database API calls. It was a good product when it was done, but it weren’t easy.

Ditto what ForgottenLore wrote. Besides the resident headaches developing in A2002, then upsizing the BE to SQL, how are you going to control the standalone FE’s? How much stress testing (let alone QA testing) is in the budget? How are you going to do version control on the FE’s (references, et al) with X number of machines tapping into this? (I’m an Access developer, BTW). You have got a long row to hoe, cjhoworth. Best of luck, and oh, if you’ve got any firearms, leave them with a friend to keep locked up…

I think this is a good time for me to buy stock in whatever business sells the caffenated drinks cjhoworth drinks, along with No-Doz, and the makers of Valium. :smiley:

(Or in other words… Aieee! It’s a huge project: if given enough time, it can be done. The problem is: will you have enough time? Will you preserve your sanity?) If you can grab someone to help out with this: even if all they do is stress/quality test what you’ve done, it’ll help. (CompSci students from the local college/university may be a good souce of people for this: you may even luck out and find someone good enough that you can trust working on some parts of the project.)


<< Help! I’m modeming and I can’t hang up! >>

My experience is never roll your own when something comparable can be bought. What you describe seems like a hell of a lot of work, and certainly seems as though there would be commercially available equivalents (specifically the contact management software with sync’ing.

As for time, I’m not familiar enough with Access/SQL to estimate with any authority, but I’d think much closer to six months than one month. Of course, you can always use the standard rule-of-thumb – round up to the next unit and multiply by three. E.g., if you think it’s a one day job, allocate three weeks.

Ummm… I can think of three or four off the shelf products that will do this right now.

Now building this yourself? Well, do you have a full specification yet? (You’re already coding, so I’m hoping you have specs, frozen scope, and full management support?)

Rough Estimate…
Coding Time… figure 8-16 hours per window, 4-8 hours per business rule that doesn’t require a visual element, and at least 40-80 extra hours for any “wizards” they want to allow flexible searches that you can’t steal or call.

Testing Time… multiply the previous figure by 3.

Scope not frozen? Specifications not fully written and signed off on?

Then you’ve got a black hole project from hell. Build up what specifications you can, alert managment to the idea that you’ve accomplished X percent of the project and it’s taken Y hours… so therefore estimated completion is Z.

And buying sufficient licenses of Act or similar contact software would cost the company how much?

I’d say this project needs a project manager who’s job is to keep managment informed and to take the slings arrows directed at the project, shielding the coders. It needs a team of between 3 and 5 coders, preferably at least 1 who’s a senior coder and a good mentor.

Given that… working full time on the project, it could likely get done in 6 months. And still not be as robust as something you could walk into CompUSA and buy today.

Or go the middle route… get something that’s got most of what you want, fully coded, tested and reasonably priced. Make sure it uses a database storage method you can access. Then you write the missing parts and interactions.

-Doug (Business applications Consultant for the last 15 years, usually in the role of lead programmer)

Caveat… estimations are one of my main weak points… usually because I estimate too low.

If my management were to hand me this task, I’d get at least one outside firm to bid on doing it for us (ok, really I’d go by this software off the shelf, but I’m making a general point here). Then my guess is that I could do it for half as much in half as much time. But at least you’d have a data point for making the assertion.

And seriously, consider buying this software, it exists (or close enough).

Oh please Lord, make this happen. Just the once, please.

Almost fourteen years in software development for a large financial institution and (at best) we’ve only ever had one of the above criteria really pinned down for any given project.

Every manager always underestimates the amount of work required to program a new software system. And the stuff you described sounds like a one-way trip to Ulcerland.

You’re kidding, right? This entire thing sounds like seat-of-the-pants development on-the-fly to me.

And I wish I could someday work on a software project where the specs, scope, and management support were all nailed down and well-defined before coding began. Things always change underneath you, because the management and the customers are idiots. :smiley:

God, I thought the life of a DBA was bad. Sometimes, I am SO gratefull I didn’t get into coding (professional-wise)…

But what your boss expects is like Peoplesoft meets BPICS meets Everything else. Might I suggest kneecapping him and getting a new boss?

(The outlook client issue SHOULD be a nonstarter, MS managed to not jack up MAPI calls between client versions, too much.)

That’s about what I figured. Since the hamsters ate the reply I wrote earlier, let me give you a shortened version. This is an internal project, no budget for outside software (believe me, I’ve tried). The good news is, the company will give me just about anything I ask for except money, including the aforementioned SQL box, but I can only get people to do documentation and testing if they’re between assignments.

Despite my earlier question, I am enjoying this, and the people driving this project do realize they’re asking for miracles. It is incredibly challenging, a lot of fun, and I can feel my skills growing every day. I set the rules, I can call them on the impossible stuff, and I’ve got all the support I need. I’ve also got a therapist and a couple of Mensan Cabana Boys (see Fairy Chat Mom’s thread over in MPSIMS) on call if I need them. A few years ago when I was working with a user-annoying piece of software called Xerox Chess, I used to mutter about getting a chance to build a better piece of enterprise software. I really should learn to be more careful about what I wish for!

Now, back to the maelstrom!
CJ

Unless M$ put some serious new shtuff into A2002, miracles won’t cut it. Last non-Oracle db I devd under was A97, so my knowledge of this might be a little out of date.
At that point at least, 1) Jet (the Access SQL engine) would basically drop out if a query tried to join more than 11 tables, which is bad. 2) If you tried to do OLE calls on a remote network db, Access would dl THE ENTIRE DB to your local machine. Former employer found this out the hard way (I got in a good round of “told-ya-sos”, then quit) when I built a CAD imaging engine on Access97. 4 gigs of raster data moving across the wires, when the user only requested one drawing…total mess.
Anyway, good luck. If you can get the MSQL box up, you’d be better off doing it there. Might want to consider ASP (yeck) so you don’t have to ship the frontend around.
Plavacek

WWJD? JWRTFM!

Avoid using Access across a LAN or WAN.
As Plavacek tells you, you are up the duff if you final DB is large. You are going to hog your bandwidth and you app will suck.

As a PM and former AP, I think your employer is nutso if he thinks this can be pulled off. You may be good (or even a God), but as you’re the only developer, don’t think about leave, and make sure your don’t get hit by a bus.

I think your employer is being too unrealistic about the timeframes.

I read the OP, and immediately a scene from Blake’s 7 sprang to mind, where Avon sneers at Blake’s impossible requests: “Is that all? What do you want me to do with my other hand?”

Having established my geek credentials… yes, your employer is asking far too much. You should, at the very least, bring this up next time raises are discussed.

And I’m inclined to agree with Plavacek and Caught@Work - Access is liable to be the weak link here.

Echo what Plavacek said; Access is fine for small projects, but once you try to put the back end on a server, and/or attach more than a couple of users, and/or query tables with more than a few tens of thousands of records, it starts to get slow and creaky.

Interesting sounding project though and if you can get them to give you the right tools (and the space in which to learn their use), it would be a rather attractive feather in your cap (not that you’d ever dream of applying for a job anywhere else, naturally).

Oh and the timetable they’ve set is utter bollocks, but that’s to be expected.

If he wants it in a month, he is nuts.
What is the motivation behind doing it yourself? If all the boss wants to do is save money, point him in this direction: www.phprojekt.com
It has a lot of what you are looking for, and all of the components are free. You can either contract for expansions, or get a PHP manual and do it yourself. The GPL isn’t a problem. If the boss doesn’t want you to release the source, then you just use the finished system only for your company and don’t sell or give it to anyone.
You could use PHProjekt with your SQL server, and save setting up a MySQL server.

Your employer’s insane. You’d be much better off, IMO, just doing the whole thing in SQL server and using ASP as a front-end–at least then you won’t have the migration issues, which could realistically kill you. But other than that, this is not a one-person job that can be finished in any reasonable amount of time. And I’m not even sure that I need the words after “that” in the last sentence.

Up until January, I was a C++ coder whose primary responsiblity was coding the DB access layer for an enterprise level piece of commercial software. The DB we used was SQL 7.0/SQL 2K.

When reading the OP, I thought it all made sense until I got to the timeline part. Next Friday? Mid-July? <stifles laughter>

I agree with those who say ‘don’t try this with access’. I don’t think it would be any more difficult to do this with SQL 7.0 and an interface built in a browser (ASP or whatever) than it would be with Access. And, if it’s going to be any size at all, you don’t want to use Access. When you say “Enterprise-level” I assume it’s going to be a somewhat large database.

You didn’t post a lot of details as to the actual work, but my wild ass guess would be a year, minimum, for me to code, test, and document this project. And that’s counting the fact that I’ve lived, breathed, and eaten SQL and Enterprise level software development for the past 4 years.

(and, btw, I’m currently an independent contractor - so if you go ahead on this project and need an extra hand or two, drop me a line)

It’s a totally ludicrous timetable. Ditto what everyone else said above.

You could do it in FileMaker in that time frame. It’s far easier to work in than SQL or Oracle, far more scalable (and easier to work in) than Access, and adequate for your purposes if you have fewer than 200 concurrent users (as I presume you do if you’re even momentarily considering Access).

Can your office afford to purchase FileMaker?

What you’re describing is a mid-sized project of the sort that they pay me to write. Time frame is about the same, perhaps a little on the tight side (but you can continue fleshing it out even after they are working in it). FileMaker Solutions Alliance is chock-full of programmers who would take on this project as a consultant. (including me, for the right price). An experienced FmPro jockey could have a functional (if perhaps aesthetically ugly and without a finished UI workflow) version by Monday.