...

/

Client Requirement Change

Client Requirement Change

Convert your CLI “Budget Tracker” into a simple GUI, reusing the same core logic and validations, now with buttons, fields, dialogs, and live totals.

You built a resilient command-line budget tracker that does more than follow the ideal path. It parses inputs safely with try/except, rejects invalid entries, normalizes categories, prevents accidental deletions, and generates a clear report that includes income, total expenses, remaining balance, and per-category totals. Behind the scenes, you kept the data model small, with income as a float, expenses as a list [dict] and the logic is organized, efficient, and easy to test.

In short, you built a solid core that behaves under pressure.

The curveball

A week later, your client pings you after a demo with the operations team:

The command line is great for you folks, but our front desk and new hires aren’t comfortable with terminals. Can we get a simple desktop app? Buttons, fields, a report popup something friendly.

You’ve just met one of the most common realities in software: requirements evolve. New stakeholders arrive, workflows get clearer, training time matters, and the polished prototype becomes a broader product. This isn’t failure’s progress. Because you separated logic from interface, you are ...