Part 8: Testing & Debugging Python Code

Testing & Debugging: Building Reliable Financial Tools When working with financial data and calculations, accuracy is essential. A small bug in your code could mean reporting incorrect figures, making flawed investment decisions, or even compliance issues. This post will guide you through testing and debugging techniques that ensure your financial Python code works correctly and reliably. Why Testing Matters in Finance Imagine you’ve created a Python script that calculates loan amortisation schedules. Your company uses this tool to price thousands of loans. If there’s an error in your interest calculation logic, even a small one, the financial impact could be enormous. ...

Building a High-Performance Finance Team

Part 6: Building a High-Performance Finance Team This post continues my “learning in public” journey as a finance manager. All concepts and frameworks are attributed to their original creators, primarily David Parmenter and other thought leaders in the field. The Finance Team Evolution As finance functions transition from traditional accounting and reporting roles to strategic business partnership, the capabilities and culture of the finance team must evolve accordingly. David Parmenter, in “The Financial Controller and CFO’s Toolkit,” emphasises that “winning finance teams” are distinguished not just by technical competence but by their ability to influence business outcomes. ...

Part 7: Code Quality & Collaboration in Python

Code Quality & Collaboration: Building Finance Tools That Last As a finance professional learning Python, you’ll soon want to move beyond writing scripts just for yourself. Whether you’re building financial models, automating reporting, or creating data analysis tools, there comes a point when your code needs to be shared with colleagues or even the wider finance community. This post will guide you through best practices for creating high-quality, shareable code. ...

Month-End Close Transformation

Part 5: Month-End Close Transformation This post continues my “learning in public” journey as a finance manager. All concepts and frameworks are attributed to their original creators, primarily David Parmenter and other thought leaders in the field. The Month-End Burden The month-end close process is often one of the most stressful and resource-intensive activities for finance teams. As David Parmenter states in “The Financial Controller and CFO’s Toolkit,” many organisations are trapped in a “month-end reporting death spiral” where teams spend weeks preparing reports that arrive too late to influence decision-making. ...

Part 6: Virtual Environments & Packaging in Python

Virtual Environments & Packaging in Python As your Python journey progresses and you start building more sophisticated financial tools, you’ll inevitably need to use external libraries. This is where virtual environments and package management become crucial skills. In this post, I’ll cover how to create isolated environments for your projects and manage dependencies effectively. Why Virtual Environments Matter Imagine this scenario: You’re working on two different financial applications. One requires pandas version 1.3 for compatibility with other tools, while the other needs the latest pandas 2.0 for new features. Without virtual environments, you’d be forced to choose one version for your entire system, potentially breaking one of your applications. ...

SQL for Finance Professionals

SQL for Finance Professionals: A Practical Guide As a finance manager, learning SQL can be one of the most valuable skills that you can add to your professional toolkit. This post is the start of my journey as I get to grips with the language. This guide will focus on SQL from a finance perspective, focusing on practical applications that will make your finance job easier. Most finance roles don’t require detailed knowledge of SQL (at the level of a software engineer). Understanding basic commands, and what your code is doing, can be useful; both when it comes to code issues and process improvements you’re implementing. ...

Beyond Traditional Budgeting

Part 4: Beyond Traditional Budgeting This post is part of my “learning in public” journey as I transition into my role as a finance manager. All concepts and frameworks are attributed to their original creators, primarily David Parmenter and other thought leaders in the field. The Problem with Traditional Annual Budgets Most organisations still cling to the annual budgeting process despite mounting evidence of its ineffectiveness. As David Parmenter points out in his book “The Financial Controller and CFO’s Toolkit,” traditional budgets often become outdated shortly after completion due to rapidly changing business conditions. ...

Part 5: Functions, Modules & File I/O in Python

Functions, Modules & File I/O in Python These next concepts incredibly useful for organising code and working with external data. Let’s explore how Python handles functions, modules, and file operations - all essential skills for financial analysis and reporting. Defining and Calling Functions Functions are reusable blocks of code that perform specific tasks. They help keep your code DRY (Don’t Repeat Yourself) and make it more maintainable. Basic Function Syntax def function_name(parameters): """Docstring explaining what the function does.""" # Function body return result # Optional Here’s a simple function that calculates compound interest: ...

Lean Financial Reporting That Executives Actually Read

The Reporting Paradox Finance teams often find themselves caught in a frustrating paradox: they invest enormous effort into producing detailed reports that executives barely read. A survey by Financial Executives International found that finance departments spend up to 30% of their time on report preparation, yet 65% of executives admit to reading only summaries or conclusions (FEI, 2023). As David Parmenter observes in “Winning CFOs: Implementing and Applying Better Practices” (2012), “Most finance teams are producing a monthly financial pack that is more like a doorstop than a decision support tool.” This disconnect wastes valuable resources and misses the critical opportunity for finance to influence decision-making. ...

Part 4: Core Data Structures in Python

Post 4: Core Data Structures Welcome to the fourth post in my Python learning journey. So far, we’ve installed Python, set up a development environment, and explored the basic syntax. Now it’s time to dive deeper into Python’s core data structures; the building blocks you’ll use to organise and manipulate data in your programs. In this post, we’ll cover: Lists: Python’s versatile sequence type Tuples: Immutable collections Dictionaries: Key-value mapping Sets: Unique value collections Choosing the right data structure I’ve found these data structures similar to concepts we use every day; lists are like columns in spreadsheets, dictionaries resemble lookup tables, and sets are perfect for tracking unique items like account codes. ...