Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Senior Developer looking for your asst in employmt issue (not job seeking!)

Reply
Thread Tools

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

 
 
Xavier Jefferson
Guest
Posts: n/a
 
      05-06-2004
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 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


 
Reply With Quote
 
 
 
 
Steven Burn
Guest
Posts: n/a
 
      05-06-2004
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" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> 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 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
>
>



 
Reply With Quote
 
 
 
 
Al Manint
Guest
Posts: n/a
 
      05-06-2004
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" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> 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 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
>
>



 
Reply With Quote
 
Jeff Schaefer
Guest
Posts: n/a
 
      05-06-2004
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


 
Reply With Quote
 
DebbieG
Guest
Posts: n/a
 
      05-06-2004
Jeff,

I am in total awe of your response.

Debbie

"Jeff Schaefer" <(E-Mail Removed)> wrote in message
news:%(E-Mail Removed)...
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


 
Reply With Quote
 
clintonG
Guest
Posts: n/a
 
      05-06-2004
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 http://www.velocityreviews.com/forums/(E-Mail Removed)
URL http://www.metromilwaukee.com/clintongallagher/



"DebbieG" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Jeff,
>
> I am in total awe of your response.
>
> Debbie
>
> "Jeff Schaefer" <(E-Mail Removed)> wrote in message
> news:%(E-Mail Removed)...
> 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
>
>



 
Reply With Quote
 
William \(Bill\) Vaughn
Guest
Posts: n/a
 
      05-06-2004
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.
__________________________________

"Jeff Schaefer" <(E-Mail Removed)> wrote in message news:%(E-Mail Removed)...
> 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
>
>

 
Reply With Quote
 
Rick B
Guest
Posts: n/a
 
      05-07-2004
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

"Xavier Jefferson" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
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 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



 
Reply With Quote
 
BJ Freeman
Guest
Posts: n/a
 
      05-07-2004
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" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> 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 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
>
>



 
Reply With Quote
 
Timo
Guest
Posts: n/a
 
      05-08-2004
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.

In article <(E-Mail Removed)>,
(E-Mail Removed) writes...
>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 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
>
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Job Senior PHP 5 Web Developer - NYC John Dufour Ruby 0 10-17-2006 10:48 PM
newbe who is also senior having a senior moment stan Python 1 09-07-2006 03:45 AM
Job Opprtunity: Senior, Experienced Unix Kernel Developer/Architect- Seattle WA Suzanne Tonini C Programming 0 04-26-2004 11:18 PM
Job Opprtunity: Senior, Experienced Unix Kernel Developer/Architect- Seattle WA Suzanne Tonini C Programming 0 04-26-2004 11:18 PM
JOB: Senior ASP Developer, NYC NYC-SEARCH ASP General 0 10-12-2003 04:23 AM



Advertisments