• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Project is a poisoned chalice - when to walk away?

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    #21
    Originally posted by Freaki Li Cuatre View Post
    4 weeks into a project that has just gone live by the seat of its pants & it's falling over right left & centre. So they want us to fix everything, support and test it while developing more functionality.

    I've only just got fully acquainted with the system in the mad panic to roll it out.

    Basically, I've walked into a right royal Indian mess .

    Code first EF implementation using independent associations resulting in a back end with no referential integrity, unpredictable cascading deletes going on and other such undesirable things. A poorly implemented unit of work pattern, probably copied from Code Project - with repository instances knocking around in the controller classes (this is MVC). Boolean flags everywere - it seems that every new bit of complexity added to the use case has resulted in the crowbar-ing in of these flags right left and centre & it's already a load of spaghetti with just the most basic functionality in place.

    And don't get me started on the Javascript It uses angularJS - and I can see its strengths - but the validation for every single control is a separate function called something along the lines of shouldButtonBeDisabled() and there are hundreds of them. I could go on but it's too depressing...

    I'm not a lead dev on this project - I'm the last one to join the team & the other 2 seem happy plodding away adding to this spaghetti. We're not really going anywhere - in fact every fix that is made just seems to break more things. Unless it's one of my fixes of course....

    At what point do you take it upon yourself to go to the management and tell them what a pile of cack their application is & that it has no chance of succeeding unless they allow us to step back and do a serious bit of redesign of what we already have - especially the data layer? I would be pointing fingers here - and i feel a little bad about it - but I'm working weekends & long days & have had enough of the crap other people are checking in screwing everything up and making us all look like chumps.

    Or do I just walk?
    I'm not minimising the pain but are things so bad they can't be fixed relatively easy - I'm not in your shoes but just wondering?

    It's been a while since I've used EF, moved to using PetaPoco or Dapper a while back but can't you enforce referential integrity using EF?

    Why is it so hard to fix the cascading delete issue?

    What's so wrong with using the repository in the controller? Get the data, stuff it into a viewmodel and pass to the view, doesn't seem that bad. Though I tend to go through a service layer first.

    I've not used angularJs but funnily enough was going to start looking into it.

    Comment


      #22
      Originally posted by woohoo View Post
      I'm not minimising the pain but are things so bad they can't be fixed relatively easy - I'm not in your shoes but just wondering?

      It's been a while since I've used EF, moved to using PetaPoco or Dapper a while back but can't you enforce referential integrity using EF?

      Why is it so hard to fix the cascading delete issue?

      What's so wrong with using the repository in the controller? Get the data, stuff it into a viewmodel and pass to the view, doesn't seem that bad. Though I tend to go through a service layer first.

      I've not used angularJs but funnily enough was going to start looking into it.
      Part of his issue - in fact the major part - seems to be the people he's working with.
      "You’re just a bad memory who doesn’t know when to go away" JR

      Comment


        #23
        Originally posted by woohoo View Post
        I'm not minimising the pain but are things so bad they can't be fixed relatively easy - I'm not in your shoes but just wondering?

        It's been a while since I've used EF, moved to using PetaPoco or Dapper a while back but can't you enforce referential integrity using EF?

        Why is it so hard to fix the cascading delete issue?

        What's so wrong with using the repository in the controller? Get the data, stuff it into a viewmodel and pass to the view, doesn't seem that bad. Though I tend to go through a service layer first.

        I've not used angularJs but funnily enough was going to start looking into it.
        Did you used to work here?

        Handing IQueryable stuff back to a business layer is bad enough IMO but to the controller?

        They'd obviously tried copying some repository/unit of work pattern example from Google but got its implementation totally wrong. So, wherever you want to save something you get a call to repository.SaveEntity(), or whatever, which is immediately followed by a call to unitOfWork.Save() to persist it to the database. Then you have the lifetime management of all these repository & unitofwork instances. Some of them are passed around all over the place, some of them are injected. It's a nightmare.

        Comment


          #24
          Originally posted by Freaki Li Cuatre View Post
          Did you used to work here?

          Handing IQueryable stuff back to a business layer is bad enough IMO but to the controller?

          They'd obviously tried copying some repository/unit of work pattern example from Google but got its implementation totally wrong. So, wherever you want to save something you get a call to repository.SaveEntity(), or whatever, which is immediately followed by a call to unitOfWork.Save() to persist it to the database. Then you have the lifetime management of all these repository & unitofwork instances. Some of them are passed around all over the place, some of them are injected. It's a nightmare.
          You did not mention IQueryable in your original post. A repository used in a controller is fine with me though not returning IQueryable.

          Write a proper implementation of the unit of work pattern and show em how it should be done.

          Comment


            #25
            Originally posted by Freaki Li Cuatre View Post
            At what point do you take it upon yourself to go to the management and tell them what a pile of cack their application is & that it has no chance of succeeding unless they allow us to step back and do a serious bit of redesign of what we already have - especially the data layer? I would be pointing fingers here - and i feel a little bad about it - but I'm working weekends & long days & have had enough of the crap other people are checking in screwing everything up and making us all look like chumps.

            Or do I just walk?
            Been there myself at least once. My attitude is this: if everything around is going to hell, start fixing! So, if I was in a position where my voice could be heard and my opinion would matter, I would just go to the management and tell them: the project is crap because 1, 2, ..., the best way (IMO) to proceed is this, then that, and then a, b, ... . They will either listen to you or not, but you've done your bit - informed them. The way I see it, I (the contractor) will give all and any information the client needs to make his decision, and the decision, together with end result, is his, not mine.

            Once that's done - reevaluate! If you're happy with the direction things are going, fine. If not - decide if you're going to do it just for the money or the mental pain of staying in that mess is too big. But, especially in the latter option, long days and weekends can be spent at work if are paid generously.

            Comment


              #26
              Originally posted by BrilloPad View Post
              What would suity do?
              Post a long winded whinge on here.......
              Originally posted by Stevie Wonder Boy
              I can't see any way to do it can you please advise?

              I want my account deleted and all of my information removed, I want to invoke my right to be forgotten.

              Comment


                #27
                Originally posted by SimonMac View Post
                Post a long winded multi comment whinge on here as he revealed the story question by question.......
                ftfy

                at least in this thread the complaint is in the first post.
                merely at clientco for the entertainment

                Comment


                  #28
                  As others have said, do not call anything out as a mess. It just isn't worth it. How do you think it'll go down?

                  "Thanks for telling us that this product we've sunk a tulip load of money into is bollocks. Here's an extension" .

                  You can either stay on board and LOOK like you're adding value, or go.

                  On my last contract the back end was a right royal mess, and they employed 3 well paid perm dbas. It was clear as day that their section was a mess, was slowing development down, and was causing production issues, but there would have been no benefit to me calling then out. Just build relationships with people and do what you can. The good thing about working in a tulip code base is that you can't make it much worse.

                  Comment


                    #29
                    Originally posted by superted View Post
                    As others have said, do not call anything out as a mess. It just isn't worth it. How do you think it'll go down?

                    "Thanks for telling us that this product we've sunk a tulip load of money into is bollocks. Here's an extension" .

                    You can either stay on board and LOOK like you're adding value, or go.

                    On my last contract the back end was a right royal mess, and they employed 3 well paid perm dbas. It was clear as day that their section was a mess, was slowing development down, and was causing production issues, but there would have been no benefit to me calling then out. Just build relationships with people and do what you can. The good thing about working in a tulip code base is that you can't make it much worse.
                    Is there space for another contractor? FTW

                    Comment

                    Working...
                    X