24
PaperTrail
222d

Worst collaboration experience story?

I was not directly involved, it was a Delphi -> C# conversion of our customer returns application.

The dev manager was out to prove waterfall was the only development methodology that could make convert the monolith app to a lean, multi-tier, enterprise-worthy application.

Starting out with a team of 7 (3 devs, 2 dbas, team mgr, and the dev department mgr), they spent around 3 months designing, meetings, and more meetings. Armed with 50+ page specification Word document (not counting the countless Visio workflow diagrams and Microsoft Project timeline/ghantt charts), the team was ready to start coding.
The database design, workflow, and UI design (using Visio), was well done/thought out, but problems started on day one.
- Team mgr and Dev mgr split up the 3 devs, 1 dev wrote the database access library tier, 1 wrote the service tier, the other dev wrote the UI (I'll add this was the dev's first experience with WPF).
- Per the specification, all the layers wouldn't be integrated until all of them met the standards (unit tested, free from errors from VS's code analyzer, etc)
- By the time the devs where ready to code, the DBAs were already tasked with other projects, so the Returns app was prioritized to "when we get around to it"

Fast forward 6 months later, all the devs were 'done' coding, having very little/no communication with one another, then the integration. The service and database layers assumed different design patterns and different database relationships and the UI layer required functionality neither layers anticipated (ex. multi-users and the service maintaining some sort of state between them).

Those issues took about a month to work out, then the app began beta testing with real end users. App didn't make it 10 minutes before users gave up. Numerous UI logic errors, runtime errors, and overall app stability. Because the UI was so bad, the dev mgr brought in one of the web developers (she was pretty good at UI design). You might guess how useful someone is being dropped in on complex project , months after-the-fact and being told "Fix it!".

Couple of months of UI re-design and many other changes, the app was ready for beta testing.

In the mean time, the company hired a new customer service manager. When he saw the application, he rejected the app because he re-designed the entire returns process to be more efficient. The application UI was written to the exact step-by-step old returns process with little/no deviation.

With a tremendous amount of push-back (TL;DR), the dev mgr promised to change the app, but only after it was deployed into production (using "we can fix it later" excuse).

Still plagued with numerous bugs, the app was finally deployed. In attempts to save face, there was a company-wide party to celebrate the 'death' of the "old Delphi returns app" and the birth of the new. Cake, drinks, certificates of achievements for the devs, etc.

By the end of the project, the devs hated each other. Finger pointing, petty squabbles, out-right "FU!"s across the cube walls, etc. All the team members were re-assigned to other teams to separate them, leaving a single new hire to fix all the issues.

Comments
  • 2
    Yikes. Hope you don't work there anymore
  • 6
    @connormon > "Hope you don't work there anymore"

    Yea, I still work here. When the 'leadership' quit+got fired, it's a new world.

    Amazing what happens when mgmt focuses on results instead of blind adherence to process. What matters? People, take care of your customers, actually *be* a team player, etc.
  • 1
    @PaperTrail Well at least it's better.
  • 1
    Good story! Hope our company (which has a huge code base in Delphi) won't follow the same road.

    P.s. I love c#, but I know that won't help here 😅
  • 1
    @jaylord > "has a huge code base in Delphi"

    Sweet. Why C#? Trouble finding Delphi devs?

    Finding devs who wanted to write/maintain Delphi apps was impossible for us.

    Even today, I would challenge any of our C#/WPF developers to a race.

    Spec: "Create an app that queries a database and shows the data in a grid."

    CSharpDev: "OH...I GOT THIS!...lemme start with MVVM...gotta create some models...implement ICommand...INotify...oops...better create some data annotation classes..can't forget the unit tests... "

    DelphiDev: <click..click> "Done. Next?"
Add Comment