re: "it is very difficult to judge the quality of the code until you are quite a long way into an app development."
I'll let other programmers weigh in with their own opinions on this as well.
But I believe small test projects can be used to discern the difference between:
a) a real programmer who knows what they're doing
b) a nephyte programmer who has some tools and can get some things to run, but isn't really right for a large task
c) a copy-and-paster who is simply downloading stuff and trying to pass it off as their own
I do not offer my services as a project manager, but I have been asked by clients to evaluate potential new programmers from time to time. I think any truly experienced programmer, with expertise using programming language X, can look at even very small samples of work done by a candidate, using that language, and assess their general level of skill.
re: "For apps?"
No, I have not evaluated the work of app developers.
But I have worked on app development projects and I believe that an experienced app project manager would be able to discern between good and bad developers, between scammers or the real thing, before a large amount of work has been done.
I don't think app development is qualitatively different than other endeavors in any way that makes it impervious to evaluation with regards to the level of quality exhibited by practitioners.
re: "from what I understand (which is purely gained from talking to many app dev clients) it is very difficult to judge the quality of the code until you are quite a long way into an app development.
At least that is what I was told over and over when asking why a problem was not caught earlier."
I thought some about this statement. I agree. This is true. But the key word in this statement is "clients."
It IS difficult for an app development CLIENT to judge the quality of source code.
It is difficult for them to judge the quality at the beginning of a project. It is difficult for them to judge at the end of the project. Even at the end, such a client is not really judging the source code, they are judging whether the app performs as desired.
In my other responses, and in John's comments, in which we maintained that it IS possible to judge the quality of app source code and app developers, even early on, these observations are based on obtaining the help of an expert, often identified as a "project manager."
A client without application development expertise can't evaluate the quality of the work or the developer. Petra is correct about this.
That is why it is important to utilize the services of a project manager or some kind of expert to evaluate source code and developers early on.
If your project is small, it might not matter. You can drop a few hundred dollars on an unknown developer and if she turns in usuable work, then great. If not, move on to the next developer. You can afford to go through a few bad developers until somebody gets it right.
But for a large, complex project, with a large budget, it is important to work with a competent project manager who can help select the right development team and can identify bad work and fire the developers submitting bad work so that you can spend your money wisely on the developers who do good work.
It is ALWAYS necessary to work with a separate project manager?
Some developers are very responsible, very high quality contractors who are capable of serving as their own project manager.
But how do you know the developer you are working with is one of these? You have no way of knowing.
On the other hand, even the most experienced, most dependable developers can benefit from working with a project manager, if for no other reason than the project manager helps keep the project on schedule. Any professional developer will be happy to report to somebody who is not the actual project owner, but is actually a third-party manager brought in to manage the development team. This is a very common arrangement for large projects.
The PM would have to be a coder though. Most PMs are not qualified to code review. I've never had a PM do a code review. It's always a lead. The flipside is that coders aren't necessarily good at managing projects. PMs ensure that the project is on track, the project is following specs, and there is communication with the customer. You would want someone in a lead position to code review.
Coders can also be very judgemental unnecessarily. Especially in the freelance side of things. Essentially, if you hired a coder to code review on here, he will be unnecessarily harsh because it's his competitor. It's a double-edged sword.
I had a lead once do a code review and change my code for efficiency. OK, whatever. The issue is that he introduced a major bug into it. Like major. lol I got totally slammed for "my" mistake and because I'm not a narc and a team player, I took the heat for it. So, this is one of the issues of letting a third-party review or edit. It's also why no one will want to touch anyone else's code. It's risky.
I feel bad for the small guy who just wants an app. Lots of poor contractors here but lots of good ones. The good ones are high priced, so that leaves the small jobs to the more risky group. Maybe the answer is to start off with a small part of the project and get an update for review. Like, the login page or something. Not sure what the answer is but there must be some way.
If a developer does not mention version control in their Upwork profile then they are not worth hiring.
The version control systems you should at least know how to use are Git, Subversion and CVS. There are many others that are sexy and some of the others I have used are: Mercurial and Bazaar.
The Upwork tests only demostrate a basic level of skill.
I would never hire someone that did not have at least top 10% in any skill they were claiming that was their top skill that they did.
Seriously on my first attempt on doing the ANSI SQL test here on Upwork I managed Top 30%.......and I had not been even doing SQL for at least 6 months....and don't do SQL often.
For me now if I see someone saying that they are a programmer and then mention Wordpress in the next sentence I just laugh now....
When I see development shops or any IT companys advertising services and then I check their website and they have built it with Wordpress....and then they wonder why they keep getting hacked....
Any company that uses Wordpress and still uses 'admin' as the superuser login username has no idea what they are doing.....most companies do not even have any security plugins installed....I tell you now the negligence of the average IT person is huge....