Why I Posted That MTX Was Deprecated And What It Means

MegaTunix is a cross-platform tuning application written and maintained by David J. Andruczyk. Discuss all things MTX here!
Locked
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Why I Posted That MTX Was Deprecated And What It Means

Post by Fred »

Preamble

Recently I've heard a few comments from Dave and others along the lines of "You kicked MTX to the curb" and/or "You've ostracised MTX". I want to comprehensive dispel this myth, once and for all, as it EDIT:was completely false. EDIT: Now sort of true, but only as of a few hours ago.

What's Needed

FreeEMS is a development system. What that means is that things are changing a lot, evolving, growing, improving, etc. What the project needs is a PC-side application that can keep up with that growth and exercise the firmware's many features properly in order to shake out any bugs etc. MTX could be that system, however that requires Dave to put time into it and cooperate.

In terms of a PC-side application that can grow and evolve and improve to match and keep up with the firmware, the app will need to have a self-motivated author who is open to new ideas and not afraid of hard work and constructive criticism. Such a person would embrace change and strive for the best, not just good enough. They'd actively search out issues based on the slightest misguided clue.

History Of MTX Dev

Over the last year and a half or so since mid-December 2010 Dave has put a LOT of hours and work into MTX. I've expressed my personal gratitude for that work on numerous occasions. Occasionally we've had wonderful and productive working sessions together with ideas bouncing back and forward and both parties fixing things as they went. These times were rewarding and generally beneficial to both projects and all users of them. Sadly, if I said that that was the majority of the time, I'd be lying.

Instead, what tends to happen is very different indeed. I'll raise some technical issue with Dave in IRC, giving him what I reasonably believe to be sufficient detail as the author and architect of his application. 9/10 Dave believes that I've been too vague, and rather than ask me for specific details, he'd berate me for not providing enough information. For a year and a half, I put up with this; it's just Dave; that's just how he is, we loved him anyway. 8 times out of the 9, after making a lot of noise, he'd quietly go away and fix the issue/add the feature/make the change, etc. And thus we made reasonable progress.

Around six months ago, there was a period of me saying "this and that are broken, please fix" and him saying "no they're not" and me saying "yes they are" etc. It turned out, surprise surprise, they were broken! Dave grumbled and fixed them, but removed a needed feature in the process. I asked him to reimplement it in the new structure, he refused. I asked for a number of other semantic changes, he refused. Basically, for the last 6 months, he's made a lot of noise, and refused to do anything much useful, with the exception of the table export/import, which reportedly works well.

I had a deal with Dave from quite some time ago to not ask him for more tunable data until we had an automated way of generating it. No problem. I held my end of that bargain, however to me, that didn't mean I couldn't ask for structural and semantic changes to make the app work "correctly" (from the system architect's eyes, IE, mine). With any person involved with this project I have to balance cost versus benefit. I do this for the greater good of actual end users and it must be this way. The shining star developers who have helped have two main criteria:

1) They don't require much baby sitting/hand holding/mentoring/guidance/explanation/pushing
2) They produce a significant amount of work output in their field of endeavour.

We're lucky enough to have a handful of people that fit those criteria well. We have some others that put out decent amounts/quality of work when driven and steered. And then we have those who don't. There have been a few. Dave is not the first, and he won't be the last. He used to fall into the middle category doing a lot of work with a lot of input. Now he falls into the worst category: Taking a lot of time, effort, energy, resources, emotion, and producing near nothing.

Case in point, and the thing that triggered this entire debacle:

Windows Builds

The case was that windows binaries were built on request for a user from the latest source. Being built from the latest source is necessary given the rate of change of compatibility etc. The trouble was that Dave was not accessible all of the time, and sometimes just flat out refused to build a bonafide user (of either MS or FreeEMS) a binary to use. Clearly from my perspective, as the project leader, this situation was sub par. I needed people to get reliable working binaries for all three platforms that were up to date, when ever they needed them. Not only that, I needed the process behind that to be transparent such that others could build them and leave Dave happily developing. Having a single point of failure on a key aspect like that (no other tuners at that time, which is no longer true) was simply not acceptable.

One night I put this to Dave: "Windows users aren't getting looked after, we need to do better, we need to automate that process." and to my surprise, he began taking action. Dave always likes a challenge, something to dig his teeth into. I pointed out, right there and then, that what he was doing was of limited value unless he documented the process along the way. I went to have dinner, and came back an hour later and asked how the progress was and was it being documented in some fashion suitable for someone else to work backward from and document properly. I was told no, that it was very complex, and that it took several days when you knew what you were doing, and that it wouldn't be documented. Clearly this annoyed me, because I'd been very careful to make sure of that up front. I gave him a minor hard time about it, pointing out the limited value in doing what he was doing. And I quote:

[03:11] <@dandruczyk_home> go away fred
[03:11] <@dandruczyk_home> or i will and you'll be fucked

This was a problem for me. It's a threat and a "you need me". People that do that, can go and spend their time elsewhere. I'm not interested in such games. I kicked him out of the channel, and he and preludelinux proceeded to create their own channel. They've been working on windows builds ever since, however only debug builds twice the usual size are available:

http://preludelinux.hopto.org/Output/windows/?C=M;O=D

There is still no documentation, and everyone is still "at the mercy" of Dave for Windows builds of MTX. Of course, this is what he wanted all along. IE, to have some irreplaceable value. I've got some bad news for him, no one is irreplaceable. This is a common issue in the software industry. Someone clever does some work and makes sure that they're the only person who knows how: it gives them job security. Intelligent employers never allow this to unfold ensuring that at least 2 people know every process at all times.

The MTX situation is no longer relevant to FreeEMS, though. Two new tuners, one in C++ and one in Java are under heavy dev as I type. Both will be usable in the short to medium term. I hope the competition adjusts his shitty attitude somewhat. I don't expect myself or any user of this system to have to beg for a build of an app. Up to date versions of all packages should be available to download. And anyone should be able to build a customised version for any platform at any time.

Deprecated?

When I said that MTX was going to be deprecated, I simply meant that it wasn't going to be the goto system. I'm not forcing Dave out of the project. He's free to develop MTX and remain compatible just like he always has been. Nothing has changed there. However, without Dave being responsive to the needs of users and the system in general, it was never going to be a 1st class solution for FreeEMS. Additionally, I needed something that I could quickly add new features to in order to develop them in the firmware with a usable interface. Asking Dave never worked, as even when he did respond and create something, it often worked in a strange way and he often refused to change it, even if it was a one liner. The BenchTest mode currently can't be used in the way it's intended to be used because of Dave's stubbornness, for example. Given that MTX is in C and written, shall we say, verbosely, it's not practical for me to quickly whip something up to fill a hole in functionality and let someone else polish it later. This meant that I was stuck without what I consider an essential development tool. That situation had to change. I put some time into a private tool of my own around 6 months ago after the first big "fight" when it turned out that his stuff was broken (after much noise). However other things came up, and that got sidelined.

I always encouraged Dave to work closely with me to make MTX all that it could be, but he never filled that hole. Recently, with some of his behaviour I've withdrawn that offer and Dave, if he chooses to support FreeEMS, will have to do it from documentation and example of others. Because of this, he'll always be playing "catchup rugby". This is just a fact of life, nothing personal. I can't decide who writes compatible apps for the system, and I don't want to. All I get to decide upon is who I spend my time supporting and interacting with. As of today, Dave is not going to receive any of my time or support. I've had enough of his personal attacks, abusive behaviour, paranoia, back stabbing, time wasting and closed door development antics. I have more important things to do, for you, the users, than waste time on those games. Again, it's my personal decsion who I choose to spend time with and interact with, not that of anyone else. I've chosen to not spend time on Dave. End of story.

Dave is still welcome on the forum, however his posts come through me now, because of his outbursts and ranting some weeks ago. It's not worth my time to see those kinds of comments go up, get read by you, responded to by me, etc. It's just a damn waste. If he has any technical posts to make, MTX announcements, etc, they'll be allowed up unchanged. I somehow suspect that he won't, though, as so far, each person who has been subjected to the "is this horseshit" filter has posted once, in anger/attack, had it rejected, and not posted again out of pride. I HATE editing posts, and hate my posts being edited. If it's a good post, it goes up as is, if not, it gets rejected and he is free to try again. Same goes for any other loud troublesome individuals. I should have started doing that years ago, but I've learned my lessons now. Off topic and attacks will NOT be tolerated, period. Likewise, he's no longer welcome in #freeems-dev as he kept posting abuse and non-dev noise, nor in #freeems-ot where he did the same thing. These places are places to work and have fun, with FreeEMSers, and I am no longer interested in socialising with Dave, nor working with Dave. #freeems is still open to him, and he was told earlier exactly this:

(15:23:48) Dave MTX IRC Home left the room (Kicked by fredcooke (Sorry man, you've pushed me too far. You're welcome in #freeems purely for the purposes of support. Any non-support political bullshit and general opinion-about-fred sharing done in there = banned.)).

Unfortunate

Obviously the entire situation is extremely unfortunate. It doesn't look good to personally reject someone who has put a large amount of time and effort into the project. This has to be done, though, as it more or less came down to him or me. I could no longer work with him in any reasonable manner. Doing so required more patience and forgiveness than I've currently got available (The Spanish wife used up all of this LOL). I wish Dave the best with his MTX endeavours and hope that at some point, he stops believing that I'm somehow evil, unkind, narcissistic, selfish, psychotic and other things that I've been wrongly labeled with recently, and starts being cool, if a little grumpy, once again.

Solemnly,

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
Locked