Senior Developer looking for your asst in employmt issue (not job seeking!)

  • Thread starter Thread starter Xavier Jefferson
  • Start date Start date
X

Xavier Jefferson

Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
Oks, first of all, we can't (or atleast, I can't) say whether you acted in
good faith or not, nor whether you are incompetent or not. Only yourself and
your employer can judge that.

As for #1 and #2, if you did not do what you were paid to do (i.e. getting
rid of Access) then your employer has a right to complain.

As for re-building the entire app in FM Pro over the course of a weekend, if
he could have done that, would he really have needed to employ you? (not
saying he couldn't have, just suggesting that it's unlikely)

--

Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!


Xavier Jefferson said:
Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
Well,

It sounds like you gave it the ole college try and without seeing the Access
database, I really can't answer your questions.

I do have a question however. A person your position must also run as the
project manager. Did you set the expectations? I think you were over
enthusiatic and didn't take the opportunity to really scope out the effort
to determine if it shoudl have taken 5 weeks. Also, it appears that you
were not truely familiar with what ASP.NET (Web applications in general) are
set up for and how they do what they do. This lead you down a few blind
alleys and ate time. I'm not saying you are incompetent because I've done
this many times myself early in my career. If you are wearing a project
manager hat, you must manage expectations.

I wish you luck. Wish I could see the actual database to answer your
questions and see a functionality sheet on what you needed to deliver based
on that database. Then I can make a real judgement as to whether you are
"compentent". I do think that your manager probably needs a reality check
though.

Al Manint, MCSD (VB5, VB6), MCSD.NET (C#), MCDBA

Xavier Jefferson said:
Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
Xavier,

I will tackle your questions in order, followed by my general thoughts:
1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

The answer to the question (accomplish x, y, and z in 5 weeks?) is not
knowable. As an experienced developer, I can say from my own projects as
well as projects I have participated in as a team member that it is
literally impossible to say with certainty how long *any* project will take.
Development is necessarily a cyclical process in which requirements are
defined and then implemented; then the requirements are further clarified,
and then re-implemented. Put another way, development is a *process of
discovery* for both the developer(s) and the user(s). Frequently the users
say "I need X and Y". And you as a developer say, "sure - 5 weeks, no
problem". Then as you implement X and Y, you make discoveries about what X
and Y really are or what it takes to make them happen - and go back to the
user for further clarification. Often times the user will respond something
like "oh, yes, of course - it's not Y that I need, it's Z. Well at that
point, your origina ("5 weeks - sure") response is no longer valid because
you're now dealing with the need to implement X and Z - or X, Y and X, or X
and some combination of Y and Z. You get the idea. The requirements evolved
as a result of both the developer and/or the users discovering (1) what is
really needed, or (2) what it actually takes to implement the original
requirements. This abstracted scenario can be seen in real-life projects all
the time. It is the norm. The exception is the project for which the
requirements are (1) prefectly understood by the user/requester, (2)
perfectly communicated to the developer, and (3) implemented perfectly by
the developer - after which the user (4) accepts the project as it is, with
no additional requirements. I've never seen or heard of this happening in
over 10 years of consulting for dozens of large and small companies, the US
government, and non profits.

Additionally, even on an apparently trivial "mini requirement" (forget an
entire project) it is difficult to predict with certainty how long it will
take to implement. Take, for example the requirement to "Add one new column
to an existing table in an MS Access mdb database". The knee-jerk response
is "10 minutes max" - including time to locate the mdb file on the network,
open it up, open the table in design view, add the column, specify the
column name, data type, and close the mdb file). Well, what if your table
has 254 columns in it already. Adding the additional column is not possible.
Suddenly your 10-minute "mini requirement" just got really big, as you'll
have to now (1) create a 2nd table (2) add any necessary key columns to the
new 2nd table, (3) possibly move some columns from the orignial first table
over to the new table in order to make room for new key columns in the first
table so that you can join the two tables together logically (and
physically). Then because you've had to reorganize the table structures,
you've just broken all the queries that referenced the original table, and
you'd have to rebuild all of those, and on and on it goes. You get the
point. Even for a "mini requirement" it can sometimes legitimately take far
longer than originally estimated. Note that this scenario says nothing about
the competence of the developer who is doing the work. The developer could
be the best in the world, and the mini-requirement could still take far
longer than initially estimated.

There are a number of ligitimate reasons why a project may take longer than
estimated. An incompetent developer is one of the more unlikely reasons.
Imperfectly understood and/or communicated requirements are the most common
reason (at least from my observations and experience).

I suspect that the original 5-week estimate in your situation was a pretty
good guess givent the facts *as they were presented to you*. Then, as you
got into the project, the facts were discovered to be something more complex
than originally presented to you.

Are you to blame for any of this? Perhaps you could have sought further
clarification - but even if you sought it, was anyone there who could really
present you with the clarification you needed? If not, then you were the
only one in the entire world who could possible discover the true state of
the system and the requriements.

Is your manager to blame for any of this? Perhaps he could have presented
the facts as they really were to you. If he did not, then your 5-week
estimate had no chance of being accurate (beyond good luck - which you
cannot count on). If he did not present the facts as they really were, then
we need to under why: perhaps he was not in a position to know; perhaps he
did know but did not tell you the complete picture; in any case, the problem
is a lack of clarity. In either case, it is not fair (nor accurate) to
simply blame the programmer for being incompetent when a deadline is not met
(even if it is overshot by a long time).

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

The likelihood is "minimal". Unless you've been there, you cannot possibly
know what it really takes. You can THINK you know - but unless you've
actually done it, you don't really know.

You, as a legitimate developer, who has been immersed in the "developer
community" for some time have a better idea - but even then, you are dealing
with a unique system, with unique issues. So, even you are not in a position
to really know what it takes until you jump in and actually get into the
system. As someone who has been involved in the development scene, you are
(or should be) well aware that it would not be a trivial undertaking. The
manager would be in less of a position than you. His lack of expertise or
experience *as a developer* means that his expectations may be unrealistic
(because he has little or no familiarity with what it takes).

Many network engineers I have worked with over the past 10 years (and there
have been dozens) all believe that they understand the development game even
though they have never written code (or have only written trivial code or
played with File Maker Pro). This "hobbyist experience" provides them with
the *illusion* that they actually know how to write code and develop. Not
true. Only after undertaning a substantial project would someone even begin
to gain an understanding of what it takes to be a developer and what it
takes to complete non trivial projects - such as your porting project.
3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

His claim is the kind of naive and arrogant commentary we'd expect from
someone who doesn't know what it actually takes to complete a non trivial
development project. Second, even if it was true that he could have done it
in a weekend - then why did he bother to hire a developer? If it were truly
the trivial undertaking he is making it out to be, then there would be no
need to hire someone for it. His arrogant comments serve to raise more
questions: If File Maker were the platform of choice, then why did he ask
you to do it in something else? All this calls into question his competence
as a manager (hiring someone to do something so trivial that could have been
done over a weekend... and asking the developer to use a different platform
than the claimed "faster/RAD File Maker").
4) Did I act in good faith, or would you say that I am incompetent?
Given what I know about your situation from your original post, and having
dealt with and observed similar situations; and given the fact that you
apparently care about this so much as to pursue it with your peers in the
development community, I suspect that you not only acted in good faith in
your initial estimate and other dealings with this manager, but I'd also
suspect that you are the *kind of person* who acts in good faith in general.
Are you incompetent? I doubt it. Does every developer (including you and me)
have room to grow in terms of technical proficience? You bet. There's always
more to know - and no one can know it all.

So, it's not a question of competence/incompetence - it's a question of
intent given the facts + how clear the facts were presented + how knowable
the facts were, and by whom, etc...

An incompetent programmer cannot get the job done - or requires constant
supervision and assistance to get anything done. Another hallmark of what
I'd call an incompetent programmer is someone who builds solutions that are
not maintainable or unnecessarily difficult to understand or have
unnecessarily poor runtime performance.

A good programmer can be easily made to appear incompetent when the
requirements are changed. It's like saying a sharp-shooter is incompetent
when the target is constantly being moved. Imagine a high-jumper at the
olympics going for the world record. If the bar were to be moved as the
jumper was running toward it or in the act of jumping, then he'd land on his
rear and appear to be incompetent. How about a Pinata example: We all think
it's funny to blind-fold someone, give them a stick, and then ask them to
hit a hanging box full of candy that is being constantly moved. We laugh and
laugh and laugh. But we don't say that the blind-folded person swinging at
the moving box is incompetent when they don't hit the target.

Can a case be made that the manager is incompetent? I think so.

First, he hired someone for a project that he, himself claims to believe
could have been done over a weekend.

Second, he claims that the project could have been completed much faster
using one product (File Maker) than the one he actually requested you use
("anything on the Microsoft Platform").

Third, he is attempting to diffuse responsibility for something of which he
is an integral part. He definitely has a significant role in the fact that
the project was not completed when expected (I believe he is the one who set
the unrealistic expectation; if he did not actually set the deadline, he did
not apparently work to manage the expectations of those who did have the
unrealistic expectation).

Fourth - he apparently changed requirements mid-stream; the ASP.NET
front-end wasn't going to happen by the deadline, so switch back to patching
the Access front end.

Can a case be made that no one here is incompetent? Sure
Like presented above, the development process is a process of discovery for
both parties (the business users and the developers). As discovery proceeds,
initial estimates must be revised.

Should you be fired because (1) requirements changed; (2) he didn't have
complete and accurate information upon which to base his initial estimates;
(3) was doomed from the start with an unrealistic deadline; (4) he
obviously does not have a supporting manager?

This is like asking if a blind-folded child should be punished for not
hitting a swinging Pinata. Rediculous.

Good Luck

Jeff Schaefer
MCSD, MCDBA, MCSA, MCSE
 
Jeff,

I am in total awe of your response.

Debbie

Xavier,

I will tackle your questions in order, followed by my general thoughts:
1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

The answer to the question (accomplish x, y, and z in 5 weeks?) is not
knowable. As an experienced developer, I can say from my own projects as
well as projects I have participated in as a team member that it is
literally impossible to say with certainty how long *any* project will take.
Development is necessarily a cyclical process in which requirements are
defined and then implemented; then the requirements are further clarified,
and then re-implemented. Put another way, development is a *process of
discovery* for both the developer(s) and the user(s). Frequently the users
say "I need X and Y". And you as a developer say, "sure - 5 weeks, no
problem". Then as you implement X and Y, you make discoveries about what X
and Y really are or what it takes to make them happen - and go back to the
user for further clarification. Often times the user will respond something
like "oh, yes, of course - it's not Y that I need, it's Z. Well at that
point, your origina ("5 weeks - sure") response is no longer valid because
you're now dealing with the need to implement X and Z - or X, Y and X, or X
and some combination of Y and Z. You get the idea. The requirements evolved
as a result of both the developer and/or the users discovering (1) what is
really needed, or (2) what it actually takes to implement the original
requirements. This abstracted scenario can be seen in real-life projects all
the time. It is the norm. The exception is the project for which the
requirements are (1) prefectly understood by the user/requester, (2)
perfectly communicated to the developer, and (3) implemented perfectly by
the developer - after which the user (4) accepts the project as it is, with
no additional requirements. I've never seen or heard of this happening in
over 10 years of consulting for dozens of large and small companies, the US
government, and non profits.

Additionally, even on an apparently trivial "mini requirement" (forget an
entire project) it is difficult to predict with certainty how long it will
take to implement. Take, for example the requirement to "Add one new column
to an existing table in an MS Access mdb database". The knee-jerk response
is "10 minutes max" - including time to locate the mdb file on the network,
open it up, open the table in design view, add the column, specify the
column name, data type, and close the mdb file). Well, what if your table
has 254 columns in it already. Adding the additional column is not possible.
Suddenly your 10-minute "mini requirement" just got really big, as you'll
have to now (1) create a 2nd table (2) add any necessary key columns to the
new 2nd table, (3) possibly move some columns from the orignial first table
over to the new table in order to make room for new key columns in the first
table so that you can join the two tables together logically (and
physically). Then because you've had to reorganize the table structures,
you've just broken all the queries that referenced the original table, and
you'd have to rebuild all of those, and on and on it goes. You get the
point. Even for a "mini requirement" it can sometimes legitimately take far
longer than originally estimated. Note that this scenario says nothing about
the competence of the developer who is doing the work. The developer could
be the best in the world, and the mini-requirement could still take far
longer than initially estimated.

There are a number of ligitimate reasons why a project may take longer than
estimated. An incompetent developer is one of the more unlikely reasons.
Imperfectly understood and/or communicated requirements are the most common
reason (at least from my observations and experience).

I suspect that the original 5-week estimate in your situation was a pretty
good guess givent the facts *as they were presented to you*. Then, as you
got into the project, the facts were discovered to be something more complex
than originally presented to you.

Are you to blame for any of this? Perhaps you could have sought further
clarification - but even if you sought it, was anyone there who could really
present you with the clarification you needed? If not, then you were the
only one in the entire world who could possible discover the true state of
the system and the requriements.

Is your manager to blame for any of this? Perhaps he could have presented
the facts as they really were to you. If he did not, then your 5-week
estimate had no chance of being accurate (beyond good luck - which you
cannot count on). If he did not present the facts as they really were, then
we need to under why: perhaps he was not in a position to know; perhaps he
did know but did not tell you the complete picture; in any case, the problem
is a lack of clarity. In either case, it is not fair (nor accurate) to
simply blame the programmer for being incompetent when a deadline is not met
(even if it is overshot by a long time).

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

The likelihood is "minimal". Unless you've been there, you cannot possibly
know what it really takes. You can THINK you know - but unless you've
actually done it, you don't really know.

You, as a legitimate developer, who has been immersed in the "developer
community" for some time have a better idea - but even then, you are dealing
with a unique system, with unique issues. So, even you are not in a position
to really know what it takes until you jump in and actually get into the
system. As someone who has been involved in the development scene, you are
(or should be) well aware that it would not be a trivial undertaking. The
manager would be in less of a position than you. His lack of expertise or
experience *as a developer* means that his expectations may be unrealistic
(because he has little or no familiarity with what it takes).

Many network engineers I have worked with over the past 10 years (and there
have been dozens) all believe that they understand the development game even
though they have never written code (or have only written trivial code or
played with File Maker Pro). This "hobbyist experience" provides them with
the *illusion* that they actually know how to write code and develop. Not
true. Only after undertaning a substantial project would someone even begin
to gain an understanding of what it takes to be a developer and what it
takes to complete non trivial projects - such as your porting project.
3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

His claim is the kind of naive and arrogant commentary we'd expect from
someone who doesn't know what it actually takes to complete a non trivial
development project. Second, even if it was true that he could have done it
in a weekend - then why did he bother to hire a developer? If it were truly
the trivial undertaking he is making it out to be, then there would be no
need to hire someone for it. His arrogant comments serve to raise more
questions: If File Maker were the platform of choice, then why did he ask
you to do it in something else? All this calls into question his competence
as a manager (hiring someone to do something so trivial that could have been
done over a weekend... and asking the developer to use a different platform
than the claimed "faster/RAD File Maker").
4) Did I act in good faith, or would you say that I am incompetent?
Given what I know about your situation from your original post, and having
dealt with and observed similar situations; and given the fact that you
apparently care about this so much as to pursue it with your peers in the
development community, I suspect that you not only acted in good faith in
your initial estimate and other dealings with this manager, but I'd also
suspect that you are the *kind of person* who acts in good faith in general.
Are you incompetent? I doubt it. Does every developer (including you and me)
have room to grow in terms of technical proficience? You bet. There's always
more to know - and no one can know it all.

So, it's not a question of competence/incompetence - it's a question of
intent given the facts + how clear the facts were presented + how knowable
the facts were, and by whom, etc...

An incompetent programmer cannot get the job done - or requires constant
supervision and assistance to get anything done. Another hallmark of what
I'd call an incompetent programmer is someone who builds solutions that are
not maintainable or unnecessarily difficult to understand or have
unnecessarily poor runtime performance.

A good programmer can be easily made to appear incompetent when the
requirements are changed. It's like saying a sharp-shooter is incompetent
when the target is constantly being moved. Imagine a high-jumper at the
olympics going for the world record. If the bar were to be moved as the
jumper was running toward it or in the act of jumping, then he'd land on his
rear and appear to be incompetent. How about a Pinata example: We all think
it's funny to blind-fold someone, give them a stick, and then ask them to
hit a hanging box full of candy that is being constantly moved. We laugh and
laugh and laugh. But we don't say that the blind-folded person swinging at
the moving box is incompetent when they don't hit the target.

Can a case be made that the manager is incompetent? I think so.

First, he hired someone for a project that he, himself claims to believe
could have been done over a weekend.

Second, he claims that the project could have been completed much faster
using one product (File Maker) than the one he actually requested you use
("anything on the Microsoft Platform").

Third, he is attempting to diffuse responsibility for something of which he
is an integral part. He definitely has a significant role in the fact that
the project was not completed when expected (I believe he is the one who set
the unrealistic expectation; if he did not actually set the deadline, he did
not apparently work to manage the expectations of those who did have the
unrealistic expectation).

Fourth - he apparently changed requirements mid-stream; the ASP.NET
front-end wasn't going to happen by the deadline, so switch back to patching
the Access front end.

Can a case be made that no one here is incompetent? Sure
Like presented above, the development process is a process of discovery for
both parties (the business users and the developers). As discovery proceeds,
initial estimates must be revised.

Should you be fired because (1) requirements changed; (2) he didn't have
complete and accurate information upon which to base his initial estimates;
(3) was doomed from the start with an unrealistic deadline; (4) he
obviously does not have a supporting manager?

This is like asking if a blind-folded child should be punished for not
hitting a swinging Pinata. Rediculous.

Good Luck

Jeff Schaefer
MCSD, MCDBA, MCSA, MCSE
 
No sh!t. I often do that sort of thing myself and while I sincerely
appreciate those that do for me and others I still wonder why I
and others take so much time doing so via NNTP which I
absolutely consider to be Satan's spawn.

The next thing I findi disturbing is the way some boob will come
along and change the subject ;-)

--
<%= Clinton Gallagher
A/E/C Consulting, Web Design, e-Commerce Software Development
Wauwatosa, Milwaukee County, Wisconsin USA
NET (e-mail address removed)
URL http://www.metromilwaukee.com/clintongallagher/
 
I think Jeff makes a number of valid points. Project estimation is a tough job--just as estimating any job is tough. What makes it harder is not having all of the facts as Jeff points out. However, when I work with customers, I provide a "mentoring" service where I come in an study the problem for several days before any promises are made. This fixed-fee and fixed-time service is akin to a doctor doing a full physical and specific tests before providing a diagnosis or treatment regimen. An important part of this process is getting to know the people that will use the program. They can provide valuable insight as to what it's supposed to do as opposed to how it's described to you by a manager with an agenda. Politics often play an important role in how a system works and observing who is pulling the strings can help. Sometimes the manager wants to farm out the solution to his problems only to prove to his/her manager that it's too hard to do. I also look over the shoulder of the users for a few hours and quietly take notes. I follow that with interviews that focus on some of the issues noted during the day. This step would have told you that the ASP approach would not be appropriate. Getting into the database also helps. This will tell you if it needs a tune-up or CPR. All too often we've seen databases built by what I call "paradevelopers" (Microsoft calls these "hobbyists") with little (or no) technical training.

Are you incompetent? That's not for me to say. I don't have any evidence except what you told us. Inexperienced? Yes, to some extent but like many new developers you may tend to implement what you're most comfortable with. When you go to a chiropractor with a headache he'll tend to suggest a "manipulation". If you take the same complaint to a neurologist, he'll make plans to buy that condo in Florida.

I walk away from many mentoring jobs saying, I'm not the right person to solve this problem. I do, however, refer them to someone better equipped to deal with their problem. Knowing when to commit to a project, a timeline, a price and a specicification that lays out the ground rules is the key. Remember, those things that don't kill you make you stronger. You'll do better next time.

Good luck.


--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
 
While it sounds like you had good intentions, my overall feeling is that you
did not do what you were employed to do (get rid of Access). Working long
hours without extra pay is admirable, but if it does not lead to the
ultimate objective, then it is working hard, not working smart.

As a manager I constantly have to explain to people that all the good
intentions in the world do not matter if the end result is not met. Also,
if I am told something will be done in a specified amount of time and it
does not happen, the project is a failure. I expect my folks to give me
realistic timelines and set goals that are attainable.

One last point, you are trying to argue whether or not you are competent.
The simple fact is that your supervisor's perception (right or wrong) is
that you are not. This is not a good working situation. You should cut
your losses and find a place where your talents will be appreciated.

Good luck in your future endeavors.

Rick B

Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
xyz hires you to-do something they have a picture of in their mind. If you
have probe enough to know they don't know what they are talking about, then
you must propose a time to evaluate the project, before committing to it.
If you don't get this walk away.

The manager, in his mind hired you to accomplish one thing. Get rid of the
access. If you did not accomplish this you have not met the requirements.
You could have mediate this by reporting in the first week you finding of
your evaluation, which is necessary to plan the project. Then you and he
could have worked out how to accomplish his goal.

Basically the manger is complaining you made him look bad, and your the
scape goat.




Xavier Jefferson said:
Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
Xavier,
In light of your boss's instructions to you to use "a Microsoft
tool" and his express desire to get "rid" of the Access
application, his bringing in FileMaker Pro's putative RAD
capabilities and his own skills with that tool as evidence of your
alleged incompetence is both irrelevant and unfair. FileMaker is
not a Microsoft tool. And what are the Microsoft counterparts to
FileMaker Pro? Access and FoxPro.

Where you seem to me to have miscalculated, is in thinking you
could successfully convert in only 5 man-weeks (plus whatever
overtime your were willing to work) a project of the described
scope: 8 tabbed pages containing ~15 controls each, bound to a 40-
table SQL Server database via undocumented client-side queries,
where the original application apparently had bugs or was not
functioning as expected. It could be that some of those queries
were flawed and would require investigation. Was there any client-
side enforcement of business rules? Was the server enforcing the
referential integrity?

Perhaps you would have had a slighly greater chance of timely
success by converting the thing to Access ADP. That would have let
you focus on the logic of the app without having to spend so much
time on the custom databinding classes and presentation layer. But
to begin to judge the situation really requires that we know if
your boss wanted to get rid of Access entirely, or simply wanted
to get rid of the problems arising from the original two-tiered
client-side implementation, whatever those problems were.

However, it's quite evident to me, from your description of the
situation, that you are not an incompetent developer. If there is
incompetency to be found in this situation, it is in the arbitrary
deadline of 5 man-weeks to fix a broken application of this scope.
Regards
Timo
P.S. I've been developing multi-user database applications since
1985 (shared CPU mainframe with dumb terminals, DOS shared-file
networked apps, networked Access.MDB apps, Access ADP against SQL
Server, VB 2-tier and 3-tier client-server apps against Oracle and
SQL Server, and most recently .NET WinForms and ASP.NET. Also
earning today only about 35% of what I earned throughout the
1990s.

Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
I am looking to augment manpower for SQL 7 server and ADP. only Stored
procedure used in ADP.

We will eventually be converting to

postgresql and Java interface.

email me if you interested.

Timo said:
Xavier,
In light of your boss's instructions to you to use "a Microsoft
tool" and his express desire to get "rid" of the Access
application, his bringing in FileMaker Pro's putative RAD
capabilities and his own skills with that tool as evidence of your
alleged incompetence is both irrelevant and unfair. FileMaker is
not a Microsoft tool. And what are the Microsoft counterparts to
FileMaker Pro? Access and FoxPro.

Where you seem to me to have miscalculated, is in thinking you
could successfully convert in only 5 man-weeks (plus whatever
overtime your were willing to work) a project of the described
scope: 8 tabbed pages containing ~15 controls each, bound to a 40-
table SQL Server database via undocumented client-side queries,
where the original application apparently had bugs or was not
functioning as expected. It could be that some of those queries
were flawed and would require investigation. Was there any client-
side enforcement of business rules? Was the server enforcing the
referential integrity?

Perhaps you would have had a slighly greater chance of timely
success by converting the thing to Access ADP. That would have let
you focus on the logic of the app without having to spend so much
time on the custom databinding classes and presentation layer. But
to begin to judge the situation really requires that we know if
your boss wanted to get rid of Access entirely, or simply wanted
to get rid of the problems arising from the original two-tiered
client-side implementation, whatever those problems were.

However, it's quite evident to me, from your description of the
situation, that you are not an incompetent developer. If there is
incompetency to be found in this situation, it is in the arbitrary
deadline of 5 man-weeks to fix a broken application of this scope.
Regards
Timo
P.S. I've been developing multi-user database applications since
1985 (shared CPU mainframe with dumb terminals, DOS shared-file
networked apps, networked Access.MDB apps, Access ADP against SQL
Server, VB 2-tier and 3-tier client-server apps against Oracle and
SQL Server, and most recently .NET WinForms and ASP.NET. Also
earning today only about 35% of what I earned throughout the
1990s.

Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
Your only "incompetence" was in making assurances that you could meet the
deadline, "sink or swim" -- particularly since there were so many unknown
variables. I have made that mistake myself in the past.

Another mistake was trying to develop in new technologies in order to
increase the functionality that the client would gain in the long run. I
have made that mistake also. In your case, it was shooting craps with all
your assests on the pass line. If you could have pulled it off, you would've
looked like a guru -- failing, you look like an incompetent. Management
never sees the myriad issues involved in even a "simple" project and your
performance is usually only noted in its absence -- and then its REALLY
noted.

Man is fundamentally an optimist -- it is this trait that developers have to
strongly resist when presented with such challenges and asked, "how long"?
In your case, I would build a defense around your over-optimism and the
unknown issues that sprang to life. I hope you documented your work.

Xavier Jefferson said:
Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
I saw a lot of good suggestions, etc. here. Just wanted to throw in my
observations. The trap I believe you fell into was when the manager, rather
than saying "here is the problem - fix it" tried to offer the solution,
i.e., "get rid of Access". Which is why you wasted time on a .NET
"solution", when in the end it appeared that Access was not the problem,
after all. Whenever I am approached by someone saying to me "this is what
you need to do" I immediately respond by saying "what's the problem?" Then,
I come up with my own solution, which may or may not be the same as the
requester proposed. After all, *you* are the professional developer, the one
who is paid to come up with the solutions. If the manager was *really*
capable of solving the problem, he would have done so.

That being said, from your post it appears that you are both intelligent and
articulate, therefore *probably* not incompetent. Also, I am quite certain
that the manager could *not* have recreated the app in a single weekend! Not
even in FileMaker Pro... ;-)

Xavier Jefferson said:
Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district). Wondering if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3 and 4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even for an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
Xavier,

you're in trouble. Sorry to say that, however my experience insists that if
super wants to fire you, it will happen sooner or later.
Instead of concentrating on technical issues (this guy would never deliver
stable release in 5 weeks - at least I did not see such supervisors in my
life) - better concentrate on friends and good connections.

In principle if problem is dismissal, I see 2 possible outcomes and one is
not very probable - either you, either your supervisor. Hence the
conclusion.

I know it is not optimistic enough, however, when you start to retaliate by
enumerating your past achievements, you lose face. That's harsh reality -
most managers consider references to past as lame whining. You can overcome
this with either demonstrating that your super is incompetent in most
obvious manner as possible, either by taking part of blame and trying to
stabilize situation for nearest future. However, super who wants to fire you
is personal enemy - and you must take this into account. Whatever you'll
do - overtime, heroic efforts, genius solutions - will weigh nothing against
personal grudge.

I am not saying that war is worth the effort. Unfortunately sometimes it is
necessary. So think, what kind of weapons and defenses you have. Question is
not .Net, Access or other technical issues - question is personal
relationships. Try to elaborate plan of war - where you can show to higher
management that super is not what he/she seems to be, how to avoid personal
clashes, which usually make bad impression on external participants and how
you can take super place. If you have some friend on top - talk and maybe
even document your decisions and reasons why you did not succeed and what
was done wrong.

Finally, you will lose - 99.99% - so, be ready for this. Just don't do
anything stupid - try to keep good memories of you in the team. And if there
is no team - what for to suffer? Spend the remaining time trying to find
another and better one - and don't be shy to tell everybody why you are
doing this. Truth is most precious thing in this world. However, I am not
God, so, please don't take that literally.

And final note - most managers are not able to come with solutions. I mean
technical. It's a bit different psychology - to develop something and to
manage developers or people in general. So, take this into account too. As
soon as you start understanding motives of your super - you might find
winning position. In any case try to understand why it happened at all. If
super personally dislikes you - for pimples or bad breath - you can do
nothing. But understanding might help you to fight back with some
satisfaction.

Not much help, huh? But this is fight and you have to fight - if you want
it, of course. Just be intelligent and use your biggest muscle - brain.

HTH
Alex


Ron Hinds said:
I saw a lot of good suggestions, etc. here. Just wanted to throw in my
observations. The trap I believe you fell into was when the manager, rather
than saying "here is the problem - fix it" tried to offer the solution,
i.e., "get rid of Access". Which is why you wasted time on a .NET
"solution", when in the end it appeared that Access was not the problem,
after all. Whenever I am approached by someone saying to me "this is what
you need to do" I immediately respond by saying "what's the problem?" Then,
I come up with my own solution, which may or may not be the same as the
requester proposed. After all, *you* are the professional developer, the one
who is paid to come up with the solutions. If the manager was *really*
capable of solving the problem, he would have done so.

That being said, from your post it appears that you are both intelligent and
articulate, therefore *probably* not incompetent. Also, I am quite certain
that the manager could *not* have recreated the app in a single weekend! Not
even in FileMaker Pro... ;-)

Xavier Jefferson said:
Community,

I am dealing with a tough employment issue in which a supervisor - who is
not a developer - is insisting that I am incompetent as a basis for my
dismissal from a public entity (a California school district).
Wondering
if
you'd mind sharing any thoughts you might have as a basis for my argument?
There are no other developers in the midst who can substantiate what I have
to say vs. my supervisor.

I've been working professionally as a developer since 1993. I have advanced
experience with Visual Basic versions 3 through 6, Access versions 1.1 to
2000, SQL Server versions 4 to 2000, the .NET platform, Sybase, ASP 3
and
4.
I have consulted for the United States Navy, Bankamerica Mortgage,
Neutrogena, express.com, SunAmerica. In 2000 I even marketed a shareware
product developed in VB, called Acidizer. I am no longer marketing or even
distributing it, but there are still links for it all over the Web.

I began employment in my current situation on June 25, 2003. Prior to
starting, I interviewed with my supervisor in April, who told me then that
he had an Access application that he needed to rid himself of, and that
whichever new platform could be used wasn't important to him as long as it
was a Microsoft tool and worked successfully.

I learned immediately that this conversion project needed to take place by
August 1, 2003 - a mere five weeks. As it turned out, it was an Access
front end linked to a SQL Server database. It was shared on the local area
network by about twelve people. There were no written technical
specifications or user manual. The SQL Server database consisted of about
forty tables with foreign key relationships.

I proposed to rebuild the front end as an ASP.NET application, mainly to
reap in the benefits of a thin client. I sought to mirror the existing
design to lower the learning curve. The existing design consisted of one
form with a tab control containing several tab pages (maybe 8) and those
pages containing maybe 15 controls each, all data bound to ODBC linked
tables (this was not an Access ADP project) and a gaggle of slow-running
local queries. My liason for usability testing was a novice user in another
department who still, at this point, had a lot of trouble understanding
things like data relationships.

I made assurances to my supervisor to meet the deadline, sink or swim. I
set to meet my deadline by developing an ASP.NET object class to mirror
Access data binding. I developed ASP.NET containers and controls with the
same properties and functions as the Access object model. Subforms!!!
Figured out ways to make data binding and error reporting work with so many
controls and subforms in an ASP.NET page all at once.

I didn't make the deadline, despite working plenty of unpaid overtime. I
hadn't had much time to understand how the current application was used -
basically, the users were used to having eight full tabs of data available
to them at all times without any refreshing, and I couldn't incorporate this
into a web interface without lots of changes. About three weeks later, I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with the user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even
for
an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
By the way, if you really need to talk to me - send me personal email -
remove NOSPAMPLEASE from my address.

Rgds
Alex

AlexS said:
Xavier,

you're in trouble. Sorry to say that, however my experience insists that if
super wants to fire you, it will happen sooner or later.
Instead of concentrating on technical issues (this guy would never deliver
stable release in 5 weeks - at least I did not see such supervisors in my
life) - better concentrate on friends and good connections.

In principle if problem is dismissal, I see 2 possible outcomes and one is
not very probable - either you, either your supervisor. Hence the
conclusion.

I know it is not optimistic enough, however, when you start to retaliate by
enumerating your past achievements, you lose face. That's harsh reality -
most managers consider references to past as lame whining. You can overcome
this with either demonstrating that your super is incompetent in most
obvious manner as possible, either by taking part of blame and trying to
stabilize situation for nearest future. However, super who wants to fire you
is personal enemy - and you must take this into account. Whatever you'll
do - overtime, heroic efforts, genius solutions - will weigh nothing against
personal grudge.

I am not saying that war is worth the effort. Unfortunately sometimes it is
necessary. So think, what kind of weapons and defenses you have. Question is
not .Net, Access or other technical issues - question is personal
relationships. Try to elaborate plan of war - where you can show to higher
management that super is not what he/she seems to be, how to avoid personal
clashes, which usually make bad impression on external participants and how
you can take super place. If you have some friend on top - talk and maybe
even document your decisions and reasons why you did not succeed and what
was done wrong.

Finally, you will lose - 99.99% - so, be ready for this. Just don't do
anything stupid - try to keep good memories of you in the team. And if there
is no team - what for to suffer? Spend the remaining time trying to find
another and better one - and don't be shy to tell everybody why you are
doing this. Truth is most precious thing in this world. However, I am not
God, so, please don't take that literally.

And final note - most managers are not able to come with solutions. I mean
technical. It's a bit different psychology - to develop something and to
manage developers or people in general. So, take this into account too. As
soon as you start understanding motives of your super - you might find
winning position. In any case try to understand why it happened at all. If
super personally dislikes you - for pimples or bad breath - you can do
nothing. But understanding might help you to fight back with some
satisfaction.

Not much help, huh? But this is fight and you have to fight - if you want
it, of course. Just be intelligent and use your biggest muscle - brain.

HTH
Alex


Ron Hinds said:
I saw a lot of good suggestions, etc. here. Just wanted to throw in my
observations. The trap I believe you fell into was when the manager, rather
than saying "here is the problem - fix it" tried to offer the solution,
i.e., "get rid of Access". Which is why you wasted time on a .NET
"solution", when in the end it appeared that Access was not the problem,
after all. Whenever I am approached by someone saying to me "this is what
you need to do" I immediately respond by saying "what's the problem?" Then,
I come up with my own solution, which may or may not be the same as the
requester proposed. After all, *you* are the professional developer, the one
who is paid to come up with the solutions. If the manager was *really*
capable of solving the problem, he would have done so.

That being said, from your post it appears that you are both intelligent and
articulate, therefore *probably* not incompetent. Also, I am quite certain
that the manager could *not* have recreated the app in a single weekend! Not
even in FileMaker Pro... ;-)

Wondering and
as
place
by incorporate
this
later,
I
ended up just stabilizing the Access application (after all that) and it's
been purring ever since.

My questions, if you please:

1) Could this have been accomplished using any Microsoft development
platform in just five weeks, without me having any familiarity with
the
user
base, the data relationships on the back end, the idiosyncracies of the
front end; also short of testing, training, and user acceptance?

2) My supervisor's experience is in network technologies and not
development. He's a director, but has limited management training and no
exposure to the "developer community." What is the likelihood that he could
really understand the ramifications of converting (porting) a client-server
application?

3) My supervisor has offered that he could have re-built the entire
application -by himself - in Filemaker Pro over the course of a weekend.
Based on what you've read, what would be the likelihood of such, even
for
an
experienced developer?

4) Did I act in good faith, or would you say that I am incompetent?

If you choose to give your frank response, please share a name and telephone
number if that's okay. I just want to make sure that management knows that
there are real people connected to my evidence.

Thanks and best wishes. My hearing's on May 13, 2004.


Xavier Jefferson
Hit reply, or respond to [x](a)[v]{i}(e)[r]{j} at yahoo.dot.com
 
Back
Top