My organization began to slowly shift to a less product-oriented business model and a more contractual business model over the past year or two. Over the past year, I was transferred to a new contract business to help extinguish fires and fill orders. Although the year as a whole was profitable (and, therefore, at least one measure was successful, we had several projects that really distinguished our figures from a year ago in June.
I talked with my manager before the Christmas holiday, and he mentioned this, although he does not like the term "posthumous" (I have no idea what happened to this term, do you know any business people or managers there?), He really wanted to hold a meeting in mid-January, where the entire group of contracts will review the year and try to find out what went right, what went wrong, and what initiatives we can take to try to increase profitability.
For various reasons (I will tell you more if necessary), I believe that one thing that our team and the organization as a whole will benefit is some form of organized exchange of codes. The same thing happens with different people, and in the end they end (and break) in different ways. I would like to at least create a repository where people can capture the code that performs a specific task and include (or, realistically, copy / paste) this code in their own projects.
What should I offer as a working general source repository for a team of at least 10-12 full-time developers, as well as from 5-50 (very) part-time developers who are temporarily transferred to the contract group for specialized work?
The answer required some cultural information for any occasion with a reasonable answer, so I will provide it here, as well as some of my thoughts on the topic:
- Developers will not be forced to use this repository. The barrier to entry should be as small as possible to encourage participation, or to be ignored. Unfortunately, this means that everything that requires an additional software client to install and run will most likely fail. When deploying ClickOnce, how close we can get is terrible.
- We are not risk averse, Microsoft Store. I can sell open source solutions, but they will be looked at with suspicion. All developers have VSS, the corporate director said that VSTS is not viable in the future. If this is not too complicated, the installation and license are liberal, I can still try to connect the VSTS server to the lab.
- Some of my fellow developers care about writing quality, reliable software, and some do not. . I would like to protect any generic code written by those who care about those who do not. General rules for configuration management (for example, checking code while it is running) are completely ignored by at least one fifth of my colleagues in the contract team.
- We better write processes than follow them. . I really need to have some form of writing process in order to be able to sell this to my manager. I believe that it should be lightweight, flexible and compulsory so that the tools are remotely relevant, because my manager is the only person who has ever read it.
- Do not take best practices. . I would really like to include things like mandatory code checks to force the use of static analysis tools (FxCop, StyleCop) for general code. However, this raises the bar, as such practices are not currently being implemented in a consistent manner.
I will be happy to provide any additional information requested. :)
EDIT: (Answers to questions)
Perhaps contracting is not the right term. We absolutely own our own code assets. A significant part of the business model on paper (although not yet in practice) is that we have the code / projects that we write, and we can resell them to other clients. Our projects, as a rule, take the form of adding some special functions for one of the companies of many existing software products.