Tech/Basics/Stacks

From lathama
< Tech‎ | Basics
Jump to navigation Jump to search

Introduction

In the technology of business and organizations there are collections of software, hardware, and services that form "Stacks" of technology. A large impact on the technology "stack" of any organization is that of resources and budget.

Very Basic Example

A small business may need a variety of technology to run their business and sell to customers.

  • Website
    • E-commerce
  • Email
  • POS
  • ticketing
  • HR
  • Accounting
  • ERP (CRM, MRP)
  • Systems Administration
    • Computer management
    • Authentication
    • VPN
  • Monitoring
  • Security

So a basic example would be:

  • Tech/OSS/Odoo
    • POS, HR, Accounting, ERP, Website, E-commerce, ticketing
  • Tech/OSS/Zentyal
    • Computer management, vpn, authentication, email, security

Integration

As business grow, the various systems need to interact and there is a need for integration, databases, and various tools. This is where an architect would be designing for the short, medium, and long term needs.

Defining Needs

It can feel overwhelming to build a "stack" from scratch for a startup or new business. The truth is that it is a lot of small interconnected services/systems that simply need to be documented. One must simply start with an outline like they are writing a novel and slowly fill in the details. There is no magic.

Employees (Users)

  • Human Resources
    • Authentication/Authorization/Auditing
    • Legal requirements
    • Payment
    • Reviews

Customers

Customers can be in a retail or business to business scenario and have similar needs.

  • E-commerce
    • Catalog or Directory of products/services
    • Shopping Cart
    • Payment Processor
  • Customer Support
    • Documentation, Knowledge Base
    • Ticketing
    • Support Phone/Email interaction

Regulatory

In some areas there are regulatory requirements like reporting taxes in a timely manner. These needs/requirements feel difficult but are often easy to comply with.

Administration

  • Accounting
    • Accounts Payable, Receivable
  • Purchasing
  • Planning
  • Product development/management
  • Reporting

Systems Administration

While very meta, the systems that run the "stack" need to be managed.

  • Configuration management
  • Provisioning
  • User computers/laptops/phones/printers
  • Overhead services like Tech/Protocols/DNS
  • Physical security (CCTV and building access)

Bootstrapping

Lifting an idea off the ground and developing a business or organization involves a bit of bootstrapping. A common pattern of bootstrapping involves using a commercial paid service to get running and then migrate to an internally hosted/managed service later.

OSS Solutions

Research is important in building and maintaining a "stack". Here I will provide some examples without going down a rabbit hole of pro/con.

Email

Webhosting

  • Web Hosting Provider
  • Cloud (Google/Microsoft/Amazon)
  • Zentyal

Administration

Systems Administration

Launching a Stack

How does one get all of this off the ground. How does an organization get all the bits and bobs moving from scratch. For giggles I will call this launching as bootstrapping can scare people.

  1. Paper, Pencil, Crayon, Pen, Ruler, Markerboard, Chalkboard.
    • Don't over-complicate the process and start with an idea and get it on physical media fast.
    • Research and Read
    • Keep aligned to the goal (https://www.thesprintbook.com/)
  2. Playbooks and Plans
    • Develop a playbook for how things will be built. High level only
  3. Authentication / Authorization / Auditing
    • Think employee handbook and how you will authenticate and authorize your employees.
    • Have account provisioning and deletion defined for users/employees before you have a plan to pay them.
  4. Accounts/Contracts/Credentials
    • Plan a process for managing critical data and how to organize it.
    • Plan for enabling access to information instead of hiding it. (support people need to have access to the SLA for a service)
  5. Buy a domain name for the business. Bonus: A domain for customers and another for users. (this will make sense later)
    • thewidgetfactory.com for customers
    • thewidgetfactory.net for users
  6. Create and account and start up a hosted Odoo instance.
  7. User/Employee Computer/Laptop/Phones
    • In the beginning it will be a mess, just start by documenting
  8. Setup email https://www.odoo.com/documentation/17.0/applications/general/email_communication/email_servers.html
  9. https://www.odoo.com/app/knowledge
    • Stop and bring your physical documentation, ideas and everything into Odoo Knowledge.
  10. Practice a backup / Restore of the system now.
  11. Setup accounting
  12. Setup HR
  13. Setup CRM
  14. Setup Website
  15. Setup MRP
  16. Setup payment processing
  17. Setup POS
  18. Practice a backup / Restore of the system now. (This will build trust)
  19. In theory you can start selling to customers now in low volume as you ramp up
  20. Develop Employee handbook/manuals/training/processes
  21. Hire!
  22. Win!

Internalizing a Stack

After some time as the business becomes larger it may be ideal to internalize Odoo by self hosting. A database server and a webserver can be built to host Odoo on a cloud or other solution internally.