Skip to content

Software Development at Program Tom LTD

Place for coding, programming, development and software in general.

Menu
  • Blog
  • PDF Booklets
  • Dev Utils & Content
  • Java Spring Boot Or Web Apps
  • English
    • български
    • English
    • Español
    • Português
    • हिन्दी
    • Русский
    • Deutsch
    • Français
    • Italiano
    • العربية
  • About Us
Menu
First Principles thinking in Software

First Principles thinking in Software

Posted on January 10, 2022April 7, 2023 by Toma Velev

There are several perspective you could approach with First Principles thinking – when you dig into Software Development.

What Software – the client needs or requires?

If the client is simple and it’s not willing to pay a lot, one should not over engineer and put a lot of complicated architectures or new frameworks and libraries that you don’t have experience with. The shortest path is the path you’ve already walked on. This will help you in terms of speed of development. Less time will be wasted fighting with the technology.

Another point in business analysis is to realize what the client actually needs. Sometimes – the client does not need an app, because all features are implemented on any modern Web Browser. Requirements that will tilt to an application are – low level sensors, GPS, NFC, Bluetooth, Camera, higher security and performance or bigger offline resource needs.

Software Development Perspective

Take into account and handle all the edge cases. Everything happens all the time and a software should be prepared for every case. In low level – code detail – this is:

  • Write appropriate code in the else clauses.
  • Always handle the exceptions – as safe and user friendly – as you could.

One of the things that Test Driven Development reassures that once fixed, a problem could be rechecked every time when the software is build.

There is somehow similar decision making process when picking the right software tool – framework and libraries. There are a lot of tools that accomplish the same task on all the layers:

  • Multiple Cloud Providers
  • Multiple Back-end General Purpose Languages
  • There are – more than one could ever learn -> front-end libraries and frameworks.

On each of these sub-layers – there are even more options to choose from. Again, in my personal opinion, the best choice is the most well known – that matches the requirements. One must also be open to the idea that – the knowledge that he has – does not accomplish the new incoming task.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Jenkins SCP File Upload to Remote Server
  • Essential Programming Books – Principles & Flutter
  • Social Media Platforms 🌍
  • Strategies to prevent review regressions
  • How to set Google Map Theme in a Flutter App

Categories

  • Apps (22)
  • ChatGPT (23)
  • Choosing a Framework (38)
  • Flutter (269)
  • Graphical User Interface (14)
  • Marketing (117)
  • Software Development (286)
  • Spring (45)
  • StartUp (22)
  • Uncategorized (14)
  • Uncategorized (4)
  • Vaadin (15)

Tags

Algorithms (9) crypto (29) flutterdev (39) General (86) Java (7) QR & Bar Codes (3) Software Dev Choices (33) Spring Boot (1) standards (1) Theme (3) User Authentication & Authorization (9) User Experience (10) Utilities (19) WordPress (11)

Product categories

  • All Technologies (84)
    • Flutter Apps (24)
    • GPT (4)
    • Java (38)
    • Native Android (3)
    • PHP (9)
    • Spring (Boot) / Quarkus (35)
    • Utils (15)
    • Vaadin 24+ (27)
    • Vaadin 8 (1)
  • Apps (18)
    • Employees DB (1)
    • Notes (6)
    • Personal Budget (1)
    • Recipes Book (1)
    • Stuff Organizer (1)
    • To-Do (2)
  • PDF Books (3)
  • Source Code Generators (8)

Recent Posts

  • Jenkins SCP File Upload to Remote Server
  • Essential Programming Books – Principles & Flutter
  • Social Media Platforms 🌍
  • Strategies to prevent review regressions
  • How to set Google Map Theme in a Flutter App

Post Categories

  • Apps (22)
  • ChatGPT (23)
  • Choosing a Framework (38)
  • Flutter (269)
  • Graphical User Interface (14)
  • Marketing (117)
  • Software Development (286)
  • Spring (45)
  • StartUp (22)
  • Uncategorized (14)
  • Uncategorized (4)
  • Vaadin (15)