Technical debt - was Re: datetime seems to be broken WRT timezones (even when you add them)

DL Neil PythonList at DancesWithMice.info
Wed Feb 12 18:22:42 EST 2020


On 13/02/20 9:17 AM, Michael Torrie wrote:
> On 2/12/20 7:44 AM, Ethan Furman wrote:
>> On 02/11/2020 04:38 PM, Michael Torrie wrote:
...

> True.  Costs can be calculated and planned for. But Technical debt is
> often impossible to quantify in a real, meaningful, business sense,
> other than the that we "know" it's going to cost big time in the future.
>   In some senses, it's theoretical future cost.  That's what I was having
> a hard time with, and still do to a large degree.
> 
>> I think an oft overlooked aspect of technical debt is the affect on
>> the programmers dealing with it:  frustration, burn-out, and
>> job-seeking.
> 
> Yeah for sure.  A programmer may not love dealing with technical debt,
> and certainly he may want to chase greener fields.  But there are lots
> of things about lots of jobs that are less pleasant than other things.
> Personally I tend to get way caught up trying to get a perfect design
> that avoids technical debt, but often get not much done (on my personal
> projects). Whereas another guy just cranks out code that isn't always
> the best but serves his needs at the time. Guess who is more productive
> overall? Not me.

Applauding your professional attitude, but haven't you (only) defined 
"productive" as purely getting 'this job' out the door? cf any 
definition of "Total" cost?


I had an IT Manager moaning at me precisely because of one of those 
'other guys'. The job had been 'done'. The contract had mere 'words' to 
cover 'quality'. Accordingly, difficult to argue that 'the guy' hadn't 
done what was asked (my 'specialist' $advice on the matter). However, 
the code was 'ramshackle' and had obviously been 'dashed off' in the 
shortest amount of time possible. Maintenance costs were expected to be 
high; motivation of in-house staff to do so, expected to be v.low!

So, we're re-negotiating the contract-wording... More importantly, 
improving their acceptance testing, and adding more detail to their 
specs/requirements, etc. (the mistake there, was thinking that reqmts to 
external staff would be 'the same' as such to in-house employees)


However, the interesting question was to ask whether he (the manager) 
was 'taking advantage' of the "gig economy". (yes, that's what it's 
there for!) Thus, what relationship did he (or even, 'they' of the IT 
dept) have with the contractor? The home truth: 'using' the cheapest 
people creates a 'race to the bottom', and must, by definition, lead to 
'the cheapest job' being done. Why the surprise?
(He doesn't hire me as a programmer - and we're not even talking 
'Python', apologies!)

I asked him if he wanted a 'professional' to do the job, ie in a 
'professional manner'. Yes! So, why are you looking for the guy(?) 
who'll do it at the lowest-possible price/rate or imposing the delivery 
date on a short time-line? Ahh...

The above concerns contractors, but I managed to slide-in a few 
questions/comments that relationships with in-house staff require 
similar consideration and attention!



OK, so turning it around to people more like 'us': Professionalism? As a 
programmer/coder, would you rather work on decent code? So, is that what 
you turn-out? Alternatively, vice-versa.

That is a slightly unfair, or biased, question. I am in the fortunate 
position of being able to tell certain people that I won't undertake 
their work, that where they want me to work will push the price UP, that 
their tool-set is sub-standard, or that the existing platform is imbued 
with uncomfortably high 'risk'. I quite understand that someone who 
'needs the job' will see that as a 'luxury'. (apologies as necessary)

That said, would you build a team with a mixture of 'clock-watchers' and 
'professionals' or would/do you enjoy working within such a team?

Both 'sides' need to understand that there are two view-points to every 
relationship.


One thought that occurred to me lurking/reading this thread, is the 
likelihood that many of the differing views arise between those working 
in an 'Agile' environment, and those not (or a pseudo-/'we call 
it'-Agile environment)?

One of the (social) contracts in Scrum (for example) is that the 
professionals estimate the time needed to do the job, cf some (likely 
ignorant) 'manager' imposing a deadline. In my experience (YMMV) an 
established, professional 'Agile' team tends to follow practices which 
attempt to avoid adding to Technical Debt, and factor-in any need to 
correct sub-standard or sans-tests old-code. There is no doubt in my 
mind, that the participation of 'users' helps to create an understanding 
that (like anything else) software takes time (read also $), and that 
over-loading (?abusing) development staff is itself a 'Technical Debt' 
("Marginal Cost") for the organisation! (absences, turn-over, ... you've 
been-there, seen-that...). There again, would user-members of the team 
notice if 'we'd' padded our estimates so as to have plenty of time for 
'other things'?

It's by no means a cut-and-dried situation. What 'works' in one case may 
not even get-of-the-ground in another!

Thanks for provoking the grey-matter to ponder...
-- 
Regards =dn


More information about the Python-list mailing list