« Books | Main | Methodology »
Friday, May 21, 2010
Thoughts on business and life
Well, I need to get a few thoughts down 'on paper,' so I guess this is where I'll start.
Seeing a business as a fixed entity, like a rock, is obviously incorrect. A business is alive. But is it alive like a tree? Is it like a person, with its own personality and dreams? I am thinking about a river or stream metaphor. There may be water on the brain, as it is really raining outside today.
What is a stream?
The stream bed - a static (over the short term) arrangement of dirt, rocks, and plant life, around which the stream arranges itself.
The water - a constantly renewed, but fairly consistent in terms of composition, amount of H20 and other dissolved material, travelling through a location on the way to wherever the stream goes.
The current - a set of forces combining gravity with the mass and characteristics of water, interacting with the stream bed.
A snapshot of a stream shows the water interacting with the stream bed according to the forces of the current, leading to a pattern of waves, ripples, waterfalls, eddies, areas of strong and weak flow, that together make up what we think of as a 'stream.' But as the proverb says, 'you never step into the same river twice,' even though the stream bed is recognizable (changing over a long time scale) and the water is following a similar pattern as it did the day before.
So is business like a stream? There are multiple time scales at work, and lots of different forces interacting, leading to an 'entity' that is only similar to itself over time. Customers, the marketplace, the competition, ownership, and staff can all change, but generally all of those things change over a longer time scale than hours or days, leading to the ability to approximate a business as a static entity, even though it is changing.
I was trying to understand time scales in chemistry class in university, and the professor made a good point. Monkeys swinging from tree to tree do not take into account the fact that the tree is growing. The difference in time scales allow the monkey to ignore the growth in the tree.
So a business is a changing collection of materials, forces, and people, that only maintains its identity because most of the factors that influence it are changing on a timescale much longer than the human scale of tasks, projects, hours and days. So a business as an entity is an artificial construct, but it is a useful approximation, since we can act in relation to that construct and it will react somewhat predictably. Understanding the business at any time will allow one to interact with the business (as an employee, an owner, a customer or client, a competitor) until the slow changes occuring within the business make ones understanding obsolete.
I am in the business of business process management, which is akin to redirecting a stream bed so that the water flows in some useful way. My son was just outside in the rain, digging channels so that the puddles developing in our gravel and mud driveway would drain into the surrounding trees. Businesses need to be aware of the forces within themselves. Rearranging some forces or environmental factors may lead to increased productivity, or may lead to a whole new identity for the business.
This post may need some editing, but it is good to at least get these ideas down so that I can develop them based on something concrete.
Thursday, March 19, 2009
Registered with Elance
Wednesday, February 18, 2009
Coding Options
Edited on: Wednesday, February 18, 2009 1:52 PM
Categories: Business, Methodology, Software
Monday, February 09, 2009
A little progress
Well, a bit of an update.
I'm coaching a basketball team (my son's Grade 7 team), which takes up some brain space on Mondays (practice) and Wednesday or Thursday (games). They are just beginners, but that's fine, so am I :-)
So today I just got started on a database schema, and then had to plan my offense. The practice went okay, but the kids need way more repetition before they do the offense naturally. So hopefully they at least have fun.
mysql> show tables;
+----------------------+
| Tables_in_northcreek |
+----------------------+
| event |
| participant |
| party |
| time |
| type |
+----------------------+
These tables will be the start of a generic framework that allows me to create business applications using metadata rather than code. At least that's the plan. I need a template system for the UI (View), a workflow system for the Controller, and an extensible, Universal data model for the Model. My goal is 1 day turnaround from requirements to prototype. So Monday requirements meeting with a client, Wednesday demo of those requirements in a production app.
If I can get this to work, then I should be able to undercut commercial business accounting software and still make money on support contracts. But we're a ways from having a Quickbooks feature set. That's the target, though.
I may use Qt as the development framework - cross-platform development including smart phones and Java. It depends on if I can figure out how to template a dynamic UI that runs off of metadata. I know I can do that using web technologies, but that introduces servers and browsers, etc., which is not all bad, but might be overkill for a small office.
I've also downloaded Scala to play around with - the alpha geeks have given it a thumbs up, and it runs in the JVM, so I can integrate it with everything else out there (including Spring). I'll keep this blog posted - I just completed a Hello World app that actually ran in Eclipse :-)
Bedtime for the kids. Out.
Thursday, February 05, 2009
Introduction
Welcome to the North Creek Blog. This will be a record of the creation of a new software development company in northern Alberta.
My name is David Block. I am starting the company I would like to work for (Thanks for the idea, Joel). It will use agile, Test-Driven Development, and it will assemble Open-Source tools and libraries to create custom applications for small businesses that have the capabilities of much larger, more expensive commercial software. I plan to stand on the shoulders of many other giants, and see what comes of the process.
I have a few ideas of my own. I like working off of a real database engine, so I will start with a general database schema that will store most of the nouns in the program. Then, I will build a workflow solution on top of that schema that thinks in terms of verbs. The verbs will lead to the dynamic generation of the interface needed.
I have a library of database interaction code that I have developed over several previous projects, for different employers. The latest name for it is DBDB. I will use it as the ORM for my application. It is very lightweight, and requires very little maintenance to adapt to dynamic database schemas. I don't like maintaining a big xml file - flashbacks to J2EE.
I will also use a lot of Spring for setting up the project.
I will try to post reviews of useful books, projects, and libraries as I try them out.
Currently, I'm trying to read some of the books that have been sitting on my shelf for a while: JUnit Recipes, The Pragmatic Programmer, and Uncle Bob's Agile Software Development. Now I have to try to apply those principles as a small business owner, working on my own.
Hopefully I'll see you around.