Skip to the content.

Welcome to Genocs - GitHub pages

This repo is intended to recap the main steps required to convert an idea into a software product.

This process it is not straightforward ever. There are a lot of variables and these variables, often, are not clear at the beginning. Besides that, aims and targets could change during the ‘path’. Often this happens without evaluating the impact of the changes on the entire ecosystem.

To design a product and to implement it correctly, as software project it is necessary to have a clear and deeply knowledge of different areas, technologies, tools, and foremost, the right mindset.

Golden Rules

Before starting to do anything, don’t forget to apply these general purpose golden rules!

Don’t Repeat Yourself (DRY) is a software development principle that states that software developers should avoid repeating the same code or data in multiple places. This principle encourages developers to create abstractions and modularize their code, making it easier to maintain and update. By following the DRY principle, developers can reduce the amount of time spent on debugging and refactoring code, as well as improve the overall quality of their software.

The Keep It Simple Stupid (KISS) pattern is a software development principle that encourages developers to create solutions that are easy to understand and maintain. This pattern emphasizes the importance of writing code that is straightforward, efficient, and free of unnecessary complexity. By following this pattern, developers can create applications that are easier to debug and maintain over time.

and remember:

Setup the Idea

In this stage, the stakeholders should describe the idea behind the product.

The market analysis like competitors evaluation, MVP (Minimum Viable Product) and the KPI (Key Product Indicators) identification should be defined upfront and deeply evaluated.

Terms like what and why are not enough. The how is very important as well.

Miss one of these key points and the solution will fail miserably.

MPV

Defining the MVP target is needed to be fast delivery something to the market. This is important to have feedback as well as to keep in mind what are the core concept that canno be disattended.

KPI

The KPI definition allow to have a monitor, the compass to estimate where the business is, and to apply the right corrections on the original plan.

NOTE

Project Management

There are a lot of different tools out there.

Some of them that I used, and I was comfortable with. A short list below:

Product Architecture

Design the architecture is not a simple task.

Different companies have different constraints.

For most of them be on the cloud is a must. It couldn’t be otherwise. But there are contexts where On-Prem is an unassailable requirement.

An entreprise grade software solution is

DevOps

Source code Versioning

The source code versioning is the repository where different developers store the result of their work. This tool could and should be used even when the development team is composed by few members even only one.

These repositories allow to store projects both in a public and private fashion. The most important one is:

CI/CD (Continuous Integration / Continuous Deploy) (How to build tests and run)

Package manager (How store the artifacts)

The platforms (Where the solution is executed)

The external services (What kind of infrastructure the services are needs)

Software development

Backend services

Programming languages

Backend services

Post