The title might be seem vague, so let me tell you a little bit history what i am trying to clarify question.
I have been hired as a consultant for a corporate's small development division. The company also owns a couple of software development companies. My ex-manager runs a BI team, with reports, analyst and developers. He asked me to evaluate overall design, software development process and code quality.
Here what I found:
- Lots of copy/paste code everywhere ( no reuse ).
- Even though they have everything TFS, VS Ultimate etc, they have no build process.
- No Cruise Control.net / Teamcity...
- No unit tests.
- Web Pages with 3700 lines of code, Lots of huge functions ( which can be divided into smaller functions).
- No naming convention both db and c# code
- No 3rd party or open source projects.
- No IoC.
- No Separation Of Concerns.
- No Code Quality Check ( NDepend or FxCope or anything ).
- No Code Review.
- No communication within the team.
- They claim they wrote an application framework ( 6 months, 3 persons), but I would hardly call a framework ( of course no unit test, there are some but all commented out). The framework contains 14 projects, but there are some projects with only one file with twenty lines of code.
Honestly, what people are doing fixing bug all the day( which will provide more bugs eventually), they are kind of isolated from community, some team members even don't know github or stack Overflow they probably went there with google but they don't know about it.
So here is question, Is This list ok? Or am I being picky? Since I don't have any grudge against them, I just want to be fair, honest and I would like to hear you suggestions, before I would submit this list.
And since this list also will be review by software division's manager, I don't want any heart break or something like this. http://www.hanselman.com/altnetgeekcode/ For example I would love to such lists, I can't make references.
Here what I think after this question
Since sorf of list wanted I will submit it. But I will definetly reference this question and great answers to make my intention clear ( I dont want to be picky a***e, I respect what they do, but I believe they can do better) . I will recommend them to take it slowly, use their time wisely, and if they let me I will try to investigate the real problem and try to solve it with them. Not as an enemy or a person who didnt like what they do, as a friend, a person who likes building things.