Posts

Showing posts with the label SDLC

The short/medium forecast for LLM based coding agents and aids July 2025 edition

Image
Here are three short videos I did after reading a bunch “AI is blah blah to programming” posts on LinkedIn. Maybe not yet to binary Never another general purpos programming language The future is domain specific languages (DSLs) Revision History Created 2025 07

My Windows software development ecosystem is complicated

Image
Modern development is surprisingly complicated.  My personal software development environment is suffering a severe case of urban sprawl.  While working on some Container IAC scripting for ML and the cloud, I had to pop into a Linux environment. This environment map made me realize that I have a crazy set of different specialized sandboxes. Software systems continue to grow and become more complicated. Software Engineering platforms growing right alongside them. YouTube https://youtu.be/67i43rBkk1c Why this page exists This page exists as a link root for the video and to make it easy to refer to this diagram. Revision History Created 2024 08

MicroPython - Iterative development process with an ESP8266

Image
MicroPython lets you create Python-based modules that can be built on top of the frozen base Python image. You can upload python (py) files to the device's file system where they can be run separately and then called as part of the final product. Many teams can just use the existing Python capabilities and the bundled C modules without having to create c code of their own. There is a set of problems that are not real-time constrained and a class of  relatively inexpensive   IoT devices that are just spacious enough to support modular software and incremental updates.   Micropython makes it easy for the average developer to build modular software and incrementally develop and update components.    Developing software for IoT devices can be painful because there is no way to debug, step through or instrument code. The code runs from beginning to end.  It is debugged by looking at external symptoms or serial port output. Software is downloaded to the devi...

Why so many software swim lanes and environments

Image
Software moves through different phases on its way to production. It starts as raw software that becomes more refined as it is tested and then moved to production.  Partner teams often need to test their current code against your new code to make sure there were no breaking changes.  Software versions currently in production must be available to other teams so that they can test their changes against your code that will be in production when their new changes are actually deployed.  Some companies can get by with as few as 3 environments. Others can have over 7 or 8. Click to expand The Video Walkthrough The Development Track This is the normal promotion process from development through test and into production. There can be some orchestration through shared environments or through environments that are integrated with other teams.  The development and ...

Capturing SDLC Swim Lane Configurations

Image
Software systems have gotten more complicated with the introduction of microservices, SaaS/PaaS services, serverless compute, and other patterns. Those components must be managed, created, and integrated across multiple environments that make up the Software Development Life Cycle. This talk describes a method for documenting how the software is configured and how it can be reached across various environments. This is useful for: A common understanding of the environments Communication between teams. YouTube Video See how we can create an environments matrix  based on the simple web application shown below. The table in the video is flipped on its axis from the table below. It shows the properties across the top and the environments down the page.  The table below and above shows the environments across the top and the configuration information down the age.  The former works better when you have  a lot of environments.  The table on this page work...

Create Innovation Zones Outside your Controlled Environments

Image
Organizations implement controls to reduce risk, improve reliability, protect data and meet compliance objectives.  Formalizing processes and implementing controls often reduces the agility of an organization and makes it harder to innovate or experiment.  There is a constant tension between protecting the enterprise and innovation.  Note that we are talking about innovation  and not malice where people cut corners to make dates or make their lives easier. We can reduce the level of control or create special places where people can experiment and innovate.  We need to do it in a way that work done there doesn't bleed into the controlled systems and data. I worked at a place where we wanted to try a cloud service based database. We had no schema and just a Proof of Concept idea of what we wanted. It took 6 weeks of paperwork and several iterations of possible schemas to get onboarded and get access to the database for the PoC.  We knew the approved schema wa...

An Environment for Every Season

Image
Video Presentation This is really talking about different types of software environments and how they are used during the various phases of software development, integration, and support.   Environments are the touchpoints between your system and other teams operating on their cycles and timelines. They configuration tuning points where control is incrementally applied or where access is restricted based on the sensitivity of the data in that environment and its distance from production or development. System Complexity The number of system environments (sandboxes) required depends on your system complexity, your tolerance for defects, your level of Ops and DevOps automation, and the needs of other systems that yours integrates with. This diagram shows a couple application components that integrate with 4 different partner teams and 3 data stores.  Each partner team has its own release cycle and testing needs. We aim for loose testing coupling but that is often imposs...