Episode 6: Low Code at Scale
by Imran Kasam & Steve LedwithPublished on 25 June 2020. This is approximately 50 minutes long. This episode is sponsored by Glow Your Soul and Anchor.fm.
Overview
This is our first in a series about using Low Code at scale in an enterprise environment. We cover a multitude of topics including, what is low code, the versatiliy of the platform, how to know if low code right for your project, and SDLC, people, process for software development.
In the notes below you’ll find definitions of many of the topics we discuss, many with links to more information.
Listen on Anchor.fm
Listen on Spotify
Watch on YouTube
Show Notes & Selected Links
What is Low Code?
- Low code is a visual development approach to application development that enables professional and nonprofessional developers to collaborate and rapidly build and deploy applications.
What is a Monolithic Software application
- It’s a single-tiered software application in which the user interface and data access code are combined into a single program on a single platform. It’s also an application that runs multiple components in the same process, on the same system Heptio
Computer / Software Interaction Levels
- Level 6: User Level
- Level 5: High-Level Language Level
- Level 4: Assembly Language Level
- Level 3: System Software Level
- Level 2: Instruction Set Architecture (ISA), or Machine Level
- Level 1: Control Level
- Level 0: Digital Logic Level
- More details at Geek for Geeks
Platform as as Service (PaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. Wikipedia
Software as a Service (SaaS) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. Wikipedia
“The fourth wall is a conceptual barrier between those presenting some kind of a communication and those receiving it. The term originated in the theater, where it refers to the imaginary wall at the front of the stage separating the audience from the performers.”
6 min: What got you into low code?
- Imran: Learned C++ in high school, and found that programming was way too tedious. Had an opportunity to get into Mendix via a training class at a previous employer. The rest is history!
Everybody is working on an app!
8 min: How do you know if it’s right for low code
- Mendix Platform Evaluation Guide
- An interesting article from Infoworld (possible paywall) about “Where does low code fit?”
- Mendix helps most in projects where the requirements are not completely defined up front and in projects that have a high rate of change.
Executive View:
- Do I need an easy to visualize, easy to use application, which will need several iterations? Low Code makes sense.
- Do I need to do Business Intelligence (BI) and my users want ad-hoc queries, and complex data view? Low Code is not the way to go.
10:30 min: Gartner’s Magic Quadrant for Enterprise Low-Code Application Platforms
- Great list of Low Code vendors
- Magic Quadrant (Paywall)
The new Gartner 2018 Magic Quadrant for #hpaPaaS is out! See Gartner’s evaluation of the top vendors and why #Mendix was named a leader in low-code for the second year in a row with the furthest completeness of vision. https://t.co/KCu7kml3zb pic.twitter.com/qBSAhZbcKj
— Mendix - The Leading Low-Code Platform (@Mendix) May 17, 2018
12 min: Excel is a gateway drug!
- Discussion of how application grow from a simple excel form, to macros, to VBA, and then into an application!
- Low code makes a lot of sense in this framework
What is a Citizen Developer?
- An end user who creates new applications or programs from a corporate or collective code base, system or structure. In a general sense, this developer is not a professional developer who is paid to code applications, but an “amateur” Techopedia
15 min: Advice for getting started in Low Code
- Everyone has created a Proof of Concept (POC) which ended up in production
- Make sure you’re thinking about how the application will be used, and who the users will be.
- Know how the application needs to be managed
- How else will this app, or data, be used when the app is “done”
Shout out to Franklin Covey - Habit 2: Begin with the End in Mind
- Read Habit 2!
Rapid Development
- You can go fast, but you have to make sure you know what you’re trying to do
19 min: What is Technical Debt?
- A concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer. Wikipedia
What is Refactoring?
- The process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring is intended to improve the design, structure, and/or implementation of the software (its non-functional attributes), while preserving its functionality. Wikipedia
What does “best practice” mean?
- A best practice is a method or technique that has been generally accepted as superior to any alternatives because it produces results that are superior to those achieved by other means or because it has become a standard way of doing things, e.g., a standard way of complying with legal or ethical requirements. Wikipedia
- Adhering to best practices will improve your software, regardless of the language, platform, or system you’re working in.
21 min: We’re getting deep now!
What is Database Normalization?
- The process of structuring a relational database in accordance with a series of normal forms in order to reduce data redundancy and improve data integrity. Wikipedia
- Straight forward explanation of normalization from Essential SQL
“The tool is only as smart as the person who is using it!”—Imran Kasam
What is a technology stack?
- A set of software that provides the infrastructure for a computer. The stacks differ whether installed in a client or a server. PC Mag
24 min:
Pro Tip - Internal App Store
Build your own internal app store to simplify development for your teams. Mendix, and many other platforms provide a way to share modules across applications. Instead of having a shared library, share the modules to keep your coupling low.
What is the Software Development Lifecycle (SDLC)?
- A process for planning, creating, testing, and deploying an information system. The systems development life cycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. Wikipedia
What is software delivery?
- Getting new features, tools, and software in the hands of your users, enable them to accomplish their goals.
- Create value for users, improve efficiency.
- Not the same as building software in a developer utopia where there are no deadlines, no artifical dates, and software is only shipped when it’s perfect.
30 min: Managing infrastructure
- Even in a low code environment, you have to keep the infrastructure in mind.
- While the platform makes it easy to use, and easy to configure, you have to watch for issues.
- Keep a keen eye on performance issues, and resource needs
Do I need multiple environments in low code?
- Yes! You still need nodes for integration testing, QA, performance testing, and User Acceptance.
- Managing your development pipeline is equally important in every language, and low code is no different
What is High Availability?
- Systems that are dependable enough to operate continuously without failing. They are well-tested and sometimes equipped with redundant components. Also refers to those systems that offer a high level of operational performance and quality over a relevant time period. AVI Networks
You’re not going to replicate Tableau in low code! - Steve Ledwith
34 min: Additional lessons learned
Version control, branching, merging are still important. You have to create a plan for how you’re going to handle multiple teams working in a shared code branch.
Pro Tip - Branching Strategy
Think about how you want to merge, deploy, and branch early on. You’ll save yourself a lot of headache. You don’t want to reintroduce bugs, or loose functionality due to a poorly managed merge.
What is Source Control?
- A component of software configuration management, version control, also known as revision control, source control, or source code management systems are systems responsible for the management of changes to documents, computer programs, large web sites, and other collections of information. Wikipedia
38 min: Data Modeling and Entity Relationships
- Data modeling in low code is easy, but you have to think about your end goal
- Do you want to know when the entity is updated? Do you have multiple tables realted to the same entity? How will you manage that? Think about it early!
- The rapid process and IDE doesn’t always make this obvious; the modeler is designed to keep you on task
What is an Integrated Development Envrionment (IDE)?
- The software for building applications that combines common developer tools into a single graphical user interface.
40 min: Governance is important!
- You need you think about you’re going to do reviews and create standards
- What’s your plan for architecture?
- Keep your chances of development spaghetti low code to a minimum
- Educate your developers on defensive programming!
A low code developer will likely have a different background than your traditional software developer. You have to keep this in mind when rolling out the SDLC. Not everyone has the same background, and foundational skills.
42 min: Talking about a computer science degree, and the challenges of being a functional software developer on a team in an agile shop.
Imran has presented at the University Texas at Houston, to help students in MIS, Engineering, and Finance learn about low code and software development.
- It’s not only low code, you still have to think about delivery
- Theory of programming only gets you so far!
Side note: Take a moment to read The Developer’s Dystopian Future by Ed Finkler. It’s a thought provoking article about software development which is still relevant today.
45 min: Steve’s thoughts on Developer Utopia
- A place where developers develop software until it’s perfect, and beautiful
- No “artifical” delivery dates
- No management forcing features, or dates
- Another word for this is a passion project, or an open-source project with no hope of success
As a developer, what does it for you? What drives you?
- For Steve, seeing users employ the tools he’s built to accomplish goals is a drug.
- Great feeling to see the things you’ve made used to help people do what they need to do.
48 min: Episode Summary
- What is low code?
- Versatiliy of the platform.
- Is low code right for your project
- SDLC, people, process
Next up, in this series, we’re going to talk about the issues we’ve run into using low code for our enterprise platform.
If you’re looking to learn something new, give low code a chance.
Mendix Task Management App
Fitness tracking app