Background: I’m an apprentice and am handling the project of developing a particular IS-System. Currently I’m only managing the requirements analysis and the information-processes design, but as a Software Developer, I would also like to implement the concept as an actual Web-Portal.
When it comes to choice of technology, I personally would like to build my front-end based on JavaScript Frameworks(jQuery, Bootstrap, DataTables.Net, …) which offer high front-end implementation flexibility and nice out-of-box modern design, and wire these to .NET MVC in the code-behind. The people around me, who haven’t written a line of code in what seems like decades, all fret about difficulty to maintain such a system, in comparison to using .NET Controls and sticking to the MS Web-Site development Package. So whenever I try to bring up, that I could build a nice-looking, user-friendly, modern portal, once we’re done with the first concept-phase, I just get concerned looks and a mumble about “maintainability” and “we’d prefer trying to use Sharepoint Analysis Services connected to our DB”.
Question: what aspects of “maintainability” can influence choice of System implementation technology?
Goal: I would like to sit down and “prove” that my approach is just as maintainable as what they are suggesting, and if it isn’t I would like to identify ways to improve it.
Questions I found interesting:
- JavaScript codes complexity and maintainability
- How does one meaningfully measure maintainability?
- How to have a maintainable and manageable Javascript code base
- What characteristics or features make code maintainable? (!)
- What hurts maintainability? (!)
Some abstract aspects of maintainability:
- readability
- coupling
- consistency
- the reasoning behind code is documented
In general, maintainability indicates how quickly a change can be made to the existing code and how easy it can be made without a risk of introducing bugs or breaking existing code. The questions you’ve linked to (here and here) cover these general aspects of maintainability very well.
I’m making some assumptions here, but it sounds like your colleagues aren’t interested in these general aspects of maintainability. They’re interested in the question of “How can we even find someone to make a change to the existing code?” SharePoint can (I think) be customized by someone with no particular programming experience; ASP.NET WebForms starts out with a pretty easy learning curve (since it does its best to abstract away all of the details that web development introduces), and there are lots of people who are at least minimally proficient in it.
ASP.NET MVC and jQuery have more of a learning curve. You need to be familiar with two different programming languages (for example, C# and JavaScript). You need to know HTML and CSS. You’re using a collection of several libraries that you assemble yourself (jQuery and DataTables.Net in your example) instead of having the vendor give you a nice consistent framework.
An MVC + JavaScript web site has a lot of advantages and can be more maintainable for a skilled developer. But for an organization that doesn’t specialize in software development and doesn’t want to have to develop and retain that talent, it starts to look a lot less maintainable, since it becomes much less certain that they’ll even have someone who can make changes.