It's hard work keeping up with the nearly daily changes in technology. We are not too different from medical doctors. We must keep up with industry trends and best practices if we want to give you the best solution for you. The moment that we fall behind, we are using outdated technologies and substandard patterns for architecting solutions, which lead to security risks and data integrity issues. That's why C/D/H is serious about its core values, including "Continuous Improvement." We constantly learn, so that we can be the best at what we do.
At your enterprise, determine whether your developers are up to snuff, or whether you need external professionals to tune them up. Ask whether they know:
- That TFS is only one of many tools that can help manage application life cycle.
- That TFS has a free cloud offering for up to five developers.
- What shelving, branching, and merging source code is.
- What object relational mapping (ORM) is, and that Entity Framework is an example of it.
- That you can code a native mobile application for IOS, Android, and Windows mobile phones with a single code base with C# and a tool called Xamarin.
- How to debug client-side code in a web page, with Fiddler and browser developer tools.
- How to load test a web application with virtual machines and Azure.
- That the IDisposable interface must be explicitly disposed, and it can be done with the C# command.
- What continuous integration means.
- That tools can automate the checking of source code and intermediate language for standards and formatting with StyleCop or FxCop?
- How to effectively include a specific version of JQuery and its plugins into a SharePoint web part solution, without clobbering other JQuery solutions.
- How to create a SharePoint 2013 App solution with PHP or another web application solution language.
That you can go from database schema to a primitive web application with data entry pages in less than an hour, with ASP.NET MVC and its scaffolding feature.
And those are just a few issues. I can, and have, boosted productivity and process for clients, just by teaching developers about a new method or tool.
You might wonder why you should bother with this kind of review. After all, you don't replace a toaster if it still toasts. But you might, if it's old and you're afraid that two more slices could burn your house down, or you want four slices at a time, not just two.
By the same reasoning, your processes could probably be better, and you can probably reduce your risks. But if you don't know what you don't know, you should consider the potential return on your investment of a review.
I recently worked with a two-person development team that produces a product sold in an app store.
The team stored its source code on an on-premise file share. The team had been successful with major and minor versions of the product, but members constantly butted heads when they modified source code in parallel, with no history of the application life cycle. And the team's versioning strategy and quality assurance standards and process were not documented.
The team was headed for overwritten code changes, lost code, introduction of issues for a new release due to lack of regression testing, intellectual property loss, and other scenarios.
I suggested source code provider, Team Foundation Server (TFS), to provide change history, parallel development, branching and merging, issue management, and potentially off-site storage and redundancy. This tool could also assist with a versioning strategy with a date/time stamp for easy and immediate retrieval of historical versions. And that's just the tip of the iceberg.
C/D/H has a team of master developers. We can:
- Customize training sessions, shadow and advise, demonstrate best practices and patterns.
- Create a quality assurance methodology for issues lists, workflow, regression testing, etc.
- Identify product version strategies for new releases, hotfixes, and parallel development.
- Code reviews.
- Data schema normalcy and integrity evaluations.
- And more.
Contact C/D/H, if even just a day of access to a master developer could improve your processes and software production.