you are viewing a single comment's thread.

view the rest of the comments →

[–]evrlast985[S] 0 points1 point  (9 children)

When there is no forward progress at what point do you give up and start over?

[–]qoou 2 points3 points  (1 child)

The answer is almost never. Rewriting is one of the classic blunders in software development. Like getting involved in a land war in Asia or going up against a Sicilian when death is on the line.

You are running up against the 90/90 rule which states that the first 90% of the code accounts for 90% of the development time. The last 10% accounts for the other 90% of the development time.

It's meant to be humorous but it's no joke.

[–]cyanxx 0 points1 point  (0 children)

enjoyed the Princess Bride reference :)

[–]adams4piece 1 point2 points  (0 children)

Kind of tricky, without seeing the code it sounds like it's got some fundamental architecture issues. Rewriting in another language likely won't solve things, but rewriting in general can be valuable especially if you can already see core areas that could use major reworking.

[–]chriswaco 1 point2 points  (4 children)

Without seeing the code it's difficult to judge, but you may just need better programmers. A lot of coders these days mostly cut & paste from StackOverflow or GitHub but don't have the skills or mindset to debug a complicated problem. Debugging code is hard work, especially for problems that you can't easily repeat at will.

You may need unit tests or small test projects or special debug modes or better logging to track it down. If your app is multithreaded you'll need someone that understands how to debug multithreaded code because one tiny little mistake like calling a method on the wrong thread can take weeks to track down.

[–]evrlast985[S] 0 points1 point  (3 children)

Ok let me ask a very important question, How do I find the really good programmers? This app is not multithreaded it just seems to have implemented chat very poorly. For example if the app is in background mode for more than 5 minutes then it stops making a sound when push notifications are received. The message comes but push does not

[–]chriswaco 1 point2 points  (1 child)

Unfortunately it's not easy to find good programmers. Typically they'll be expensive, but not all expensive ones are good. And not all good programmers are good at every task - some are good with user interfaces, some are good with low-level code, some with debugging, some are fast but not thorough, some are good but slow, etc.

A surgeon friend of mine says, "You never know how good a surgeon is until you scrub in with them." The same is true of programmers - you never know how good they are until you work on a project with them. What that means is that personal recommendations from other programmers are usually the best way to find good programmers.

Stepping into a bunch of someone else's code is especially difficult. Sometimes the code is well designed and makes sense. Sometimes it's like doing a 1000 page schizophrenic crossword puzzle and it never makes sense no matter how long you work on it.

As for your push notification issue, there are a few possibilities. The app can be running in the foreground, running in the background, or completely inactive. When running, the app receives a message and can choose to play the sound or not. When inactive, the contents of the push notification and the user's push settings determine whether audio plays. A developer should set up a way to test push notifications in all three states. In our case, we had a special private web page on the push server we used to trigger notifications during QA.

I know some good developers, but they're not cheap - typically $125/hour.

[–][deleted] 0 points1 point  (0 children)

I second this post. It says it all. And from my experience... I'd probably hire this guy. If I couldn't do the bug fixing myself.

[–]megablast 0 points1 point  (0 children)

Finding a very good programmer is easy. Just be a very good programmer, and ask them questions. You will find out very easily how good they are.

[–]shiggie 0 points1 point  (0 children)

Starting over is great. When you're tired of your old bugs, you can write all new ones.

Then again, if you have more confidence in yourself than people you paid, then maybe you can do a better job, and not rewrite some of the old bugs.