design – Practical advice for designing long-term and low-maintenance software

I’m a software engineer with around 2-3 years of actual work experience, which I consider to be fairly inexperienced. I am tasked with building some software for a physical machine which, due to the kind of work my company does, needs to be stable to use for a long time ahead (think like 10 years at least – more likely to become 30-40 years). The system also need to be very low-maintenance as there is currently only one person available for doing maintenance work (me), and I will not have much time to spare for this.

So, my question is basically this: how should one think when designing software that needs to be stable and low-maintenance over a long time? Some practical aspects:

  • What do I need to focus on when coding? What should I value in “good” long-term code?
  • What programming languages are likely to be commonly used many years from now?
  • How do I deal with using libraries or packages?
  • What software development tools are safe to use in these cases (IDE/integration tools for instance)? Can old tools cause problems later on?
  • What precautions can I take to maximize the chance that my code will run even if I change hardware?
  • Is it reasonable to only make this code to run on a specific set of operating systems (to lower maintenance work)?

I have found very little on this subject by researching on my own. I have come across some blogs that have helped a little. However, they most often speak philosophically about the need for stable software development, and offers little guidance on the practical choices that one needs to make when designing long-lasting software:

My own reflections so far:

  • Try to write code “sustainably” (easy to read, easy to change, small functions, single responsibility principle, yada yada…).
  • Rely a lot on automatic testing in order to reduce the amount of maintenance work.
  • Try to follow the most widely used domain-specific tools/standards, for instance language standards or standards for communication protocols etc.
  • Try to prefer newer technology over old technology, even if the old technology may be de facto standard today.
  • Use “reliable” hardware manufacturers for physical parts. That is, companies which are stable and are likely to still be in the game in 10 years time.

I am very thankful for any advice from more experienced developers, especially if you have experience working on a similar project!

Side note: If this is the wrong forum to ask such a broad question, please redirect me to a more proper site!

What is the best web designing apps or plugins/APIs I can use for my platform? Is there something allready built for my purpose?

I want my platform to gather professionals and amateurs to build Artistically Techy 3D printed Interiors and Buildings.

What’s the best Designing App?

Is it Sketch, Zeplin or InVision? Is there some other laid out website for all my purposes?

I need to Design a platform website for PC first to gather:

  1. Clients – to input the specifics of the house plan
  2. 3D modelers Worldstars – that are going to apply for Real-life
    building contests with Magic Guidelines.
  3. Spacial VR Testers- can vote for contest winners (along everybody)
    and can test them in VR (?)
  4. Building professionals and Electrotecnic professionals – with a link
    for Discord and slack to actually build something from the 3D models
    and apply all sorts of Tech to it.
  5. Investors and passive and active partners- To state what they can
    offer and their demands and to keep in touch.
  6. Curators- to gather inspirational 2d and 3D images and to gather
    images about finishing textures and techniques. They can collaborate
    on a pinterest folder.
  7. Ideators – to submit crazy ideas on a mind map ,it can be MindMeister.

It would be very cool to make an automatized and personalized Karma level for curators and ideators and the professionals that would extract the information that they uploaded trough the other platforms together with upvotes.

What’s the simplest and most effective way to Design this website, ready for investors to see it and for programmers to pick it up?

PS:Also If you know of good APIs, other platforms or plugins that I could use for the project, it will be great!

Designing a financial date filter page for reports

I’m currently trying to make a user friendly date filter, where users can enter a custom date or select a date, e.g. Last Year or Last Fiscal Year etc.

I’ve tried looking for a design for similar requirements online, but haven’t found anything so far.

See attached images of my 2 attempts at designing this date filter page (on the second design, I will use custom icons for each date section). Will this suffice or, how can I improve?

First Design
Second Design

graphs – Designing an algorithm that finds two nodes of a distance and proving claims

I have to give an algorithm that finds two nodes whose distance is at least half of the diameter of a graph (Given an undirected connected graph G), knowing that the diameter of a graph is the largest distance between any two nodes. The nodes are unweighted.
The general idea is to run BFS from any arbitrary node, and find two nodes that fulfill the requirement but the difficulty for me lies in formally proving any claim used.

Is a possible solution to have an algorithm that runs BFS from a node to calculate the diameter, and then in the stored list to find two nodes that are at least half that diameter? Or is there a more optimal solution?
I am a first year CS student, so any guidance or help would be appreciated!

I will do Social Media Banner Design Facebook, Instagram, Twitter, Youtube, etc for $1

I will do Social Media Banner Design Facebook, Instagram, Twitter, Youtube, etc

I will design a High-Quality banner for you Social Media.

Do you need a Header or Banner for your Website, Blog, Social Media, or Advertisement? If yes then you are at the right place. It will be useful for Facebook, Instagram, Youtube, Twitter, etc.

My Services Include:

  • Facebook Timeline Cover
  • Instagram Post and Story image
  • Twitter Header
  • Google Plus Cover
  • YouTube Header
  • Profile Picture
  • Website Headers and Banners
  • Web Advertisements

REQUIREMENT

Let us know what kind of designing you want us to be created if possible attach a sample and also tell us, for what it will be.

Note: I don’t do cartoons/characters drawing.

Why Choose Me:

  • Highly Experienced Designer
  • Unlimited Revisions
  • Quick Delivery
  • Reliable and Quick communication
  • Printable and HQ File size
  • 100% Money Back Guaranteed
  • 100% Satisfaction Guaranteed

Facebook | Instagram | Twitter | YouTube | LinkedIn | Pinterest | Website | Twitch | Header | Banner | Cover, etc

Always a pleasure to work with you! Place Your Order Now!

.

gui design – Help on designing for e-ink displays

I would be grateful and I would like to ask for help – “Is there some kind of online course or materials that covers all about designing for e-ink displays? I do not need a tool cover. I need materials that cover fundamentals and laws about designing for e-ink displays in one place, for example, all those topics such as ghosting, interaction, battery life, etc. Technology and theoretical stuff. Here is a slideshow that I found on the internet and covers topics that I would like to know and get used to it: https://www.slideshare.net/myExpDesigned/designing-for-eink-devices

PLEASE DO NOT OFFER ME 1-on-1 sessions! I am not interested in it.

tables – Designing a rather challenging search/filter/query for loads of possible parameters and values

I am designing a solution for product stock management, in which the users will be able to, for example, allocate a specific volume of a specific product (or type of product) to a specific store (actually a list of stores with different priorities on which ones get the available products first).

This solution will need a component that allows the user to (those are some examples, and, for the sake of brevity, please imagine that all items are preceded by the words “Search, filter and select multiple entries from a list of…”)

  • Stores/products by name (partial and/or full match);
  • Products that belong to a specific category;
  • Products that belong to a specific category OR another specific category;
  • Categories and subcategories (not products from those, but the categories themselves can be selected);
  • Stores/products with a specific attribute (like size or color);
  • Stores/products with a specific attribute OR/AND other specific attributes;
  • Stores/products whose specific attribute IS/ISN’T EQUAL/GREATER/LESSER than a specific value;
  • Stores products whose specific attribute value FITS/DOESN’T FIT a specific range

Well, I think you get the idea. These parameters can be added to each other and, in a certain part of the solution, correlated to each other in a “Rule Editor” manner (configuration of AND/OR conditions and actions).

As the user filters the lists, he/she should be able to pick and choose from the results and build a “selection shopping cart”; meaning that the selection of items made from a specific set of filters isn’t reset if this set (and therefore it’s results) get changed. The user can change the filters, add some of the results to the selection, change the filters, add (or remove) some more, etc. In some cases, the user will then be able to start different actions regarding this selection at any time (like “delete selection” and/or “add attribute to selection”, etc).

I believe that the component used at Mixpanel.com is a great reference of what we’re going for:

mixpanel filter reference

It solves a lot of problems by using suggestive search and multiple steps when selecting concatenated parameters (ex: “Browser is chrome with version greater than 1.0”); as well as specifying different types of data (numeric, text, and so on).

Our solution would need to interact more directly (at least visually) with the lists (probably tables of some sort), have the “selection shopping cart” functionality, and, ideally, also be able to perform the “Rule Editor” functionality (maybe with a bit of differentiation in the design).

So, if any of you know of more references other than the Mixpanel one, I’d be very happy to hear about them, and also if you have any questions or have been presented with a similar problem.

I’ll update this thread whenever I have something rough drawn up.

Thanks!

design – Designing a filtering function

This question is not so much about how to implement a solution as I’ve already implemented a working solution, but more about how to improve how I implemented it. The implementation process of the requirements was haphazard. That was partly due to unclear requirements and partly due to an unclear preexisting partial solution by another developer.

Recently, I completed a small web app for a client that was used to filter through a list of objects. The interface allowed a user to select what to filter for in the list of objects. There was a base filter and a sub-filter that used the criteria in the base filter as well as their own.

This is what was available to filter in the base filter:

  1. Max number of objects to show
  2. Criteria 1 + Max number of objects to show with Criteria 1
  3. Criteria 2 + Max number of objects to show with Criteria 2
  4. Criteria 3

1 worked with 2,3,4 while 2 and 3 worked as OR logic and 4 worked with AND logic with 2 and 3.

The sub filter had a set number of criteria all of which worked with AND logic with 2,3,4.

The process of building it was a bit convoluted and unclear so I’m wondering if there’s a better way.

The general structure of it was:

  1. Check if an object can be added based on whether the 1 or Max objects of 2 or 3 has been reached.
  2. Check if the subfilter is in use and check the criteria match for it
  3. Check the base filter criteria and if any of it matches
  4. Add the object to the filtered list if 2 or 3 are true
  5. Add to the appropriate Max object for 2 or 3 and then if the Max object for number of objects to be shown
  6. Then add it to the filtered list

QUESTIONS

I’m not sure if that’s enough detail but I’m wondering what’s a way to approach filtering a list of objects, broadly speaking or relating specifically to the aforementioned criteria?

I notice that the filtering logic I developed to get it working as per the requirements was a bit haphazard and it seemed I had to work it out as I wrote the code and tested if it was filtering as expected. What would be a better way of designing this beforehand instead of haphazardly creating the solution as I go?