8

Not sure that this is the right stack exchange site to ask this of, but here goes...

Scope


I work for a small company that employs a few hundred people. The development team for the company is small and works out of visual foxpro. A specific department in the company hired me in as a 'lone gunman' to fix and enhance a pre-existing invoicing system. I've successfully taken an Access application that suffered from a lot of risks and limitations and converted it into a C# application driven off of a SQL server backend.

I have recently obtained my undergraduate and am no expert by any means. To help make up for that I've felt that earning microsoft certifications will force me to understand more about .net and how it functions.

So, after giving my notice with 9 months in advance, 3 months ago a replacement finally showed up. Their role is to learn what I have been designing to an attempt to support the applications designed in C#.


The Replacement

Fresh out of college with no real-world work experience, the first instinct for anything involving data was and still is listboxes... any time data is mentioned the list box is the control of choice for the replacement. This has gotten to the point, no matter how many times I discuss other controls, where I've seen 5 listboxes on a single form. Classroom experience was almost all C++ console development.

So, an example of where I have concern is in a winforms application: Users need to key Reasons into a table to select from later. Given that I know that a strongly typed data set exists, I can just drag the data source from the toolbox and it would create all of this for me. I realize this is a simple example but using databinding is the key.

For the past few months now we have been talking about the strongly typed dataset, how to use it and where it interacts with other controls. Data sets, how they work in relation to binding sources, adapters and data grid views. After handing this project off I expected questions about how to implement these since for me this is the way to do it. What happened next simply floors me:

An instance of an adapter from the strongly typed dataset was created in the activate event of the form, a table was created and filled with data. Then, a loop was made to manually add rows to a listbox from this table. Finally, a variable was kept to do lookups to figure out what ID the record was for updates if required.

How do they modify records you ask? That was my first question too. You won't believe how simple it is, all you do it double click and they type into a pop-up prompt the new value to change it to. As a data entry operator, all the modal popups would drive me absolutely insane. The final solution exceeds 100 lines of code that must be maintained.

So my concern is that none of this is sinking in... the department is only allowed 20 hours a week of their time. Up until last week, we've only been given 4-5 hours a week if I'm lucky. The past week or so, I've been lucky to get 10.


Question

WHAT DO I DO?!

I have 4 weeks left until I leave and they fully 'support' this application. I love this job and the opportunity it has given me but it's time for me to spread my wings and find something new. I am in no way, shape or form convinced that they are ready to take over.

I do feel that the replacement has the technical ability to 'figure it out' but instead of learning they just write code to do all of this stuff manually. If the replacement wants to code differently in the end, as long as it works I'm fine with that as horrifiying at it looks. However to support what I have designed they MUST to understand how it works and how I have used controls and the framework to make 'magic' happen.

This project has about 40 forms, a database with over 30 some odd tables, triggers and stored procedures. It relates labor to invoices to contracts to projections... it's not as simple as it was three years ago when I began this project and the department is now in a position where they cannot survive without it.

How in the world can I accomplish any of the following?:

  • Enforce standards or understanding in constent design when the department manager keeps telling them they can do it however they want to
  • Find a way to engage the replacement in active learning of the framework and system design that support must be given for
  • Gracefully inform sr. management that 5-9 hours a week is simply not enough time to learn about the department, pre-existing processes, applications that need to be supported AND determine where potential enhancements to the system go...

Yes I know this is a wall of text, thanks for reading through me but I simply don't know what I should be doing. For me, this job is a monster of a reference and things would look extremely bad if I left and things fell apart. How do I handle this?

6
  • 1
    This is not an engineering question. Vote to close.
    – jason
    Commented Jun 28, 2011 at 19:00
  • 1
    You are leaving a paying programming job, so you can study for a test? This is your idea of improving as a programmer? Search this site for certification advice.
    – JeffO
    Commented Jun 28, 2011 at 19:28
  • I didn't realize my post left that impression. No I'm not studying for any tests, I've already taken the certs on my own dime, I'm simply leaving for a better opportunity with another company. In terms of replacing my function, I just have knowledge that I know the replacement doesn't have and that concerns me. I've suggested that they take them too since the company reimburses for training but there seems to be a 'lack of interest' on that end. I'm not sure how to motivate them...
    – Mohgeroth
    Commented Jun 28, 2011 at 20:54
  • 1
    "A few thousand" employees is a small company? Commented Jun 28, 2011 at 22:47
  • 4
    Datasets/TableAdapters are unofficially legacy code. There's a dizzying array of data access options out there - Linq to Entities, Linq to SQL, NHibernate, Subsonic, Castle ActiveRecord, LLBL, Lightspeed, the list just goes on and on... if you're trying to teach about good practices, don't drag them down with a lowest-common-denominator DAL.
    – Aaronaught
    Commented Jun 29, 2011 at 2:20

4 Answers 4

14

I laud your desire to help the company, but honestly whether or not the replacement can do the job is not your problem, and won't reflect on you. Do your best, document what you can, and when you leave forget about it and move on. Don't break your back for a company that, I'm sure, doesn't care as much about you as you seem to care about them.

1
  • 3
    +1. The die was cast the day they decided to hire someone fresh out of college with apparently zero .NET experience, to be the sole developer responsible for a .NET invoicing system. It's not your problem. As Wayne says, do your best, document what you can, and then go. If it all falls apart, they might learn the lesson that they need to hire qualified people, no matter how cheap it is to hire someone who can't do the job. Commented Jun 29, 2011 at 2:14
12

Document as much as you can, and once you leave, don't worry about it.

9

Talk to your manager (or whoever will be the manager of this after your leave) and share your concerns with them. If they won't listen, try talking to the stakeholders who will be affected if your replacement damages things after you leave.

Do what you can before you leave but remember that after you leave, it's not your problem.

0
2

Any company worthy of receiving feedback will have an appropriate exit interview process in place. To be effective this is usually chaired by someone from HR giving you the opportunity to speak freely. This is the place to bring up your issues if you feel so inclined. If they don't have one perhaps suggest they should. Failing that just drop all of your technical concerns/suggestions in an email to your line manager before leaving.

The bottom line is you've decided to leave the company and therefore chosen a different path. Therefore their path is no longer your concern.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.