Should I Start My Project Over From Scratch or Update It?

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ก.ย. 2024

ความคิดเห็น • 42

  • @lebeluet
    @lebeluet ปีที่แล้ว +5

    Thank you Tim for summarizing in 34 minutes approximately 30 years of professional careers of over "X" million people.

  • @andywalter7426
    @andywalter7426 ปีที่แล้ว +5

    I many times had the opposite problem where I thought a complete redo would take 3 months and sometimes I end up getting it done even as soon as one week.

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +8

      There are only two ways that this could be. Either you were doing a VERY little project, or you lost a LOT of "hidden" functionality or business logic (likely both). Often apps seem simple to redo. For example, a form that asks for purchase date and company email should be REALLY simple, right? And if you were to build that today, you could probably do it in an hour or less. However, over time, issues will come up. For instance, one customer might be making a pre-order so the date is in the future. Now you put a patch in to update that field to allow future dates. Then, a customer has an email address with a weird domain name. You update the validation to allow that. Then, a customer miskeys their email address and cannot get confirmation because it goes to the wrong location. As a result, you make them re-type their email address. You still have problems, so you implement a verification step that sends out a code that they have to enter in. Then someone abuses that system to send out emails to random people. You then implement an IP address validation and rate limiting system. The result is a very complicated system for an "easy" form. When someone comes along and rewrites it, they might not take into account some or any of those edge cases. The problem is that when you don't do that, the form will still work. It may even go in and run fine for days, weeks, or months. However, when those edge cases come up again, you've lost the fixes you implemented before so you are again going to spend more development resources to fix the same problems over again.
      To be clear, this isn't just guesswork. I've seen these exact things done multiple times. Systems don't get so complicated and messy just because people were bad developers. They get that way because of all of the fixes and edge cases that they've had to handle. Redoing an application is dangerous because of how much of that work you might lose.

  • @faisalalhoqani6151
    @faisalalhoqani6151 ปีที่แล้ว

    Thank you, dear Tim, for clarifying and sharing your real-world experience.

  • @LivingStoneRoxks
    @LivingStoneRoxks ปีที่แล้ว

    Thanks for this informative video Tim

  • @corsaro0071
    @corsaro0071 ปีที่แล้ว

    Great content. Thank you

  • @pr0_secrurity876
    @pr0_secrurity876 ปีที่แล้ว +2

    Your company should also have the budget to update or rewrite the software, or else you ll do that on your own time and for free which is not convenient

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      If you are doing it right, absolutely. The problem is that maintenance is expensive, and it feels like there is no benefit so I understand the hesitation. As developers, we need to do a better job of communicating why upgrades are important without overstating things or overpromising.

  • @omkale6541
    @omkale6541 ปีที่แล้ว

    From scratch it would be great... Looking forward to watch your videos on project development...

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +2

      I have three full courses here on TH-cam on building full applications from scratch, if that interests you. Each is a playlist.

  • @Linkario86
    @Linkario86 ปีที่แล้ว

    Okay I write this before I watched the Video and my worst experience so far is when management tells the team to use the prototype, that was knowingly written as a prototype and was supposed to be just a prototype, as the actual product. I switched companies so often because of this. It's terrible to work with.

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      The solution here is a mix of things. First, it requires clear communication. That includes communication in writing to follow up from a conversation about it. Next, it requires careful planning on how you build your prototype. Making a prototype look good is a big mistake. There are actually tools out there to make a prototype look like a sketched drawing. Third, it requires only doing certain tasks in a prototype. For instance, you only allow a form to work with a specific value or set of values. Or, you make a form that doesn't do anything but then have a clearly non-permanent button that says "go to completed form results" that takes them to a pre-scripted results page. There are lots of techniques to help users understand that the prototype is not a completed application, but the biggest ones involve how we create them in the first place.

  • @randyriegel8553
    @randyriegel8553 ปีที่แล้ว

    I'm working on an application where the previous application (10 years old) was WPF. The new one still in progress is web based and kind of in beta, some customers are trying it out for us. But as far as the WPF app... it's frozen. We haven't touched any source code in a year. Any requests come in for features our sales/support team take notes of and we add it to list of "maybe if it makes since for all customers" and not doing work for just one for the new product. Although the old code is froze we still have to fix some stuff on database side and things when customer export/import doesn't work right.

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +2

      That's a tough place to be, but understandable. Like you said, the frozen app isn't really frozen. The worst is when a compliance issue comes up, where you end up needing to unfreeze fully or risk fines, etc.

  • @silasmekwuye7954
    @silasmekwuye7954 ปีที่แล้ว +2

    Tim, this is great as I could relate with my experiences.
    Keep up the good work

  • @mscavsfan
    @mscavsfan ปีที่แล้ว

    at the 5:20 minute mark , you mention moving from class library to API - what's the difference between the 2 ? Is it really just project type or having to use endpoints to make calls to API ? Great video !!

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      It is a different project type and a different way to interact with the code. With a class library, you bring the dll into your UI project and use it directly. The two languages have to be in sync since the UI treats the dll like it is its own code. With an API, you make calls to it over the web (or over the network internally, of course), which means that the API code is fully separated from the UI. The API does not even have to be in .NET for a .NET UI project to use it. That means you can upgrade your API to .NET 7 while still running a .NET Framework 4.5 WinForms project that calls it.

    • @louiseeggleton7420
      @louiseeggleton7420 ปีที่แล้ว

      @@IAmTimCorey You can share a dll directly between .Net Framework and .NET 7 via .Net Standard. That is a lot less work than creating an API

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว

      Yes, kind of. I like that option except that nothing from .NET 6 or .NET 7 actually works in .NET Standard. They support it, but they do not allow later features and options. Also, you will need to use the .NET Standard 2.0, not 2.1 since 2.1 excludes the .NET Framework. The .NET Standard is a good option, but if you can do it, creating an API is a better long-term option. It all depends on your situation.

    • @louiseeggleton7420
      @louiseeggleton7420 ปีที่แล้ว

      ​@@IAmTimCorey Yep. In my case, since I already had nice separation of concerns between business logic, DAL, infrastructure and UI as separate class libraries, it was remarkably easy to convert those projects to .Net Standard and reference them in the UI project which was very dependent on the .Net Framework. I also have a lot of Console apps that reference the core business logic which were easy to upgrade to .Net 6 referencing the .Net Standard libraries. Once I am finished updating the UI to .Net 6 /7, I will convert the .Net Standard libraries to .Net 7 as well. Long term everything will be .Net 7 +

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      Excellent!

  • @Alex-Ackerman
    @Alex-Ackerman ปีที่แล้ว

    Hi Tim, wonderful video as always.💯
    I just checked your online courses, I wanted to take the all access monthly pass but, it is closed. Why?😱😱😱

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      For right now, I limit enrollment because of abuse. People would wait until a new course was released (one that cost $100). They would then enroll for $50, illegally download the course, and then cancel their subscription. This reduces that abuse. We are working on ways to allow fully open enrollment. We just haven't been able to get it right yet. It will open again. You can always ask further questions about the pass at help@iamtimcorey.com

  • @codefoxtrot
    @codefoxtrot ปีที่แล้ว

    Is it just me -- or is the audio and video slightly out of sync?

  • @evangreavu9621
    @evangreavu9621 ปีที่แล้ว

    I have inherited an application that is written as if it's a .NET Core Web application, but it builds from .NET Framework. The top of the csproj file looks like this: net48. It is built on .NET Framework because of important 3rd party dependencies that are not compatible with .NET Core. But the all the controllers are Microsoft.AspNetCore.Mvc Controller objects. Would you say this is necessarily a bad thing, and also what relative speed would code execute at - the speed of Framework or Core? My mind is being bended by this, appreciate any thoughts. You are my mentor Tim!

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      If it is being built as a .NET Framework project, it will run at .NET Framework speeds. The runtime framework determines the speed at which it will run.

  • @ElCidPhysics90
    @ElCidPhysics90 ปีที่แล้ว

    I’m using WinForms with .NetCore. Why do you say one has to stay with .NetFramework?

    • @Dultus
      @Dultus ปีที่แล้ว +1

      Because Core isn't supported anymore.

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +2

      I believe I said that WebForms cannot be upgraded to .NET Core, not WinForms. WebForms is a web technology that was designed with similar goals as WinForms was for the desktop. WinForms came over to .NET Core (as you know). WebForms did not.
      @Dultus - I'm thinking there may be a bit of confusion here. .NET Core is just called .NET now (so .NET 7 is technically .NET Core 7) so .NET Core is definitely still supported. However, the versions that used the Core in their name (.NET Core 2.1, .NET Core 3.1, etc.) are old enough now not to be supported anymore.

    • @ElCidPhysics90
      @ElCidPhysics90 ปีที่แล้ว

      @@IAmTimCorey Thanks for the clarification!

    • @Dultus
      @Dultus ปีที่แล้ว

      @@IAmTimCorey yeah, I was thinking Core was basically a dev branch that got merged into .NET.

  • @ElCidPhysics90
    @ElCidPhysics90 ปีที่แล้ว +1

    Let me answer this for you: It depends, lol

  • @azragreen2064
    @azragreen2064 ปีที่แล้ว

    Hi, i have questions. what is alternative option for . we have multiple server that run different module. we want to display this module as sub pages or partial page in one master website.

  • @emersonstori
    @emersonstori ปีที่แล้ว

    Hello, I don't know here would be the right place to suggest a theme. I noticed that several friends are having difficulties with the entity framework core and the multi tenent model, several databases, what would be a safe way to work with this feature.

  • @Antonio-lt1sp
    @Antonio-lt1sp ปีที่แล้ว

    Thank you Tim, your video came in the best time for me, as I was struggling with this question regarding my application 🙏🙏🙏