How do you determine that doing something in the right way will prevent you?

I have a terrible habit, actually what I am struggling with now when I think of a better way to do something - a refactor or something that will just have SO MUCH COOLED COOL, or such a better UX, I just need to do it. Even when it will cost me time, and I am on time. I never know when to say: "No, I don’t have time for this, I can do it later."

Is there a line you draw?

As of now, I need a way to display journal articles that are in the database. An easy way would be to create a new .aspx page and just pass in the article id. AWESOME path will jquery disappears in a modal that will display the article. At least that's what I think. Without being a guru, it would take me more time to write. Next week we run out of shit. However, I just can't get myself to do it easily.

Anyone else run into this issue? Consider whether more experienced programmers have any wisdom to share.

+4
source share
11 answers

First I would do a quick route.

Write an ASPX page that displays an article based on ID, or even colder and more SEO-optimized, slug. You can fulfill your deadline. Then I'll start with the amazing jQuery way.

The bonus to this is that you will have a fallback option if the user has JavaScript disabled.

+9
source

You are talking about "gold." This is a very common and well-known problem for software developers.

From the glorious founder of StackOverflow itself:

30: Gold developer cover. Developers admire new technologies and sometimes worry about trying new features in their language or environment or creating their own implementation of the spots they saw in another product - regardless of whether it is required in their product. The required efforts to develop, implement, test, document, and support functions that are not required to lengthen the schedule.

The right way to cure this problem is to voluntarily participate in such work that you don’t have time to do it right, not to mention adding additional bells and whistles. :)

Edit: Other links to "classic errors" here .

+7
source

I think this is just a matter of prioritization. Also, if your client or boss doesn’t want you to do something in a screaming way, and you really don’t have time to do it in a screaming way, just do it in a simple way, go back and update to screaming if you have time later. Customers and bosses are usually happier when you finish the work they have given you before moving on to improve the situation.

+1
source

I look at how much time I have left, and if I feel that they are pushing me, I will not go beyond my competence. I do it right and elegantly, but the reality is that in most cases the deadline takes precedence, and I know if I will stay in my comfort zone when pressed, I will most likely make fewer mistakes, which means that I keep QA people time in testing things.

With everything said, I have repeatedly had to talk about how much can be done. If you no longer work with a huge amount of overtime, you can always increase the time required to complete a more difficult route. Yes, this can lead to a bit more work for additional people, but sometimes this is the difference between the best applications or the first loser.

My other advice is do not try to do both. If you create a basic version with it and continue to move. If you try to do both, you are really wasting time in the end.

+1
source

The right way is to make it work so that users can get the information they are looking for. The design way is to make it work like a workplace, but also have javascript highlighting and move around.

The best way is to make it work correctly and then review it. There shouldn't be much refactoring if you know where to place things. Obviously, getting the article will be the logic of the business / application, and the actual design fantasy (like fades / animation) will be part of the design / look aspect of the installation. These parts should be able to sit and be somewhat unaware of what the other is doing - they should not be closely related.

+1
source

Sounds like a typical creep function. Convince yourself that tallying the idea of ​​an object to meet the deadline is now no different from simply abandoning a function. You can return to it a few months after the release and add new features.

0
source

I think you pretty much answered your own question. You said that adding this feature will take too much time, and you will step on for some time and start your work next week. I think it’s obvious enough that you need to take the easy route.

You mainly describe creep functions. http://en.wikipedia.org/wiki/Featuritis

You need to discipline yourself, what would I do in your position - to document a new function that I want to add, and to implement it after you exit the crunch mode, when you have time to work on it. You obviously know that adding this feature will cost you time and may well delay the launch of this product, you just need discipline to be a priority and stick to it.

0
source

I think that every developer has this problem, if he is interested in programming and does not code, as a way to make money in office work from 9 to 5.

Here is my tip: Make a list of all the interesting things you think about when writing code. Once you have a working basic version , copy it to the source repository.

Now, if you have time, go back and do as many cool things as you have time. Use branch tags if you have to seriously redesign your code.

As soon as you run out of time, if you do Agile, write the leftovers as stories and pass them on to the project manager or client.

0
source

I think when you say that you are doing something “right”, which implies a balance of quality with the speed at which you can record it.

If you do something of the highest quality possible, but never release it, this is not the “right way”. On the other hand, if you write shit, but get it very fast, this is also not the “right way”. To do something “right,” you must balance the two.

The economic phrase that comes to mind is “Quality, Price, or Speed ​​of Production, Choose Two.”

0
source

Things like this have completely killed me!

Here is my tip:

  • Do it the easy way (aspx with id)
  • Write a little proof of concept for showing a customer

Show the client a work page and proof of concept later along with an assessment of how long it will take. The prototype experience will give you a better idea of ​​what is going on, how to do it and how long it will take. The proof of concept can also inform developers of what (attenuation versus logic), and allows them to fail if the fading mechanism or logic is violated.

Personally, I would stay away from fading things. In my experience, the client will not see any added value in the damping functionality, and IMHO sharing it on another page will be easier to maintain. I believe that it will be less error prone later, because the code for 2 pages will not mix on one page (if I understand you correctly).

0
source

In test-driven development , when you implement a function by writing a test for it and implementing it the easiest way, you can go back and do it “right” only when you really need a need . Knowing this, you can avoid revaluation. And often you find that you still don’t need to.

0
source

All Articles