Bare with me. This should probably be in DayOne instead of on my blog because:
- No one cares.
- It’s probably too vague for all but a narrow slice of people dealing with these problems and getting more specific will reveal what I consider to be trade secrets.
Excel and custom solutions are always hard to unseat because the world is inherently difficult to model like we want to in formal software. I have spent weeks thinking about the difference between what is spent at a school and what collection of plans we consider that school’s budget. What about resources that a department budgets on behalf of a school that needs to be seen by that school’s leader and comes out of their allocate resources?
There are many non-overlapping circles of abstractions and scopes and responsibilities. We have a really solid compromise in our current model, but as we construct and even more powerful school budgeting system, I’m trying to do an even better job.
There are so many things that are casually referred to as a “budget” with no other phrasing– not even overly technical jargon– associated with it. The entire field of planning and accounting really falls down with distributed decision making. The only options out there are hierarchical organization/business unit structures with full control of whatever is in that scope or requests for marginal changes.
The result is carefully crafted Excel files that separate out the planning process in ways that are very difficult to express in rules, with lots of overriding, and lots of pain stitching it back together and pulling it apart again for different audiences.
What’s most frustrating is Allovue has solved this problem, well, multiple times. But each time we expand what we do, I come back to it and try and think of yet another set of edge cases we can pull in and handle more elegantly while hiding even more of the complexity from our users. The work that goes into making something that feels completely natural and like the only possible way to do things while covering so many possible conditions is frighteningly complex. Sometimes I spend weeks or even months writing and rewriting the same set of conditions and examples and toying with them until I can see how things must work. And then I spend weeks, sometimes months, and sometimes years helping my team make that happen and helping them see just precisely why each part is necessary and the whole is beautiful.
Is this work product management? Is it software architecture? Is it design? I don’t know, but it’s at once the hardest and most rewarding thing I get to do. I’m just fully in the “hardest” part of that curve right now.