North Creek Flow analysis process:
1. Identify business process to analyze. Create a clear boundary
(process starts at this point, is finished at this point).
2. Identify all the human characters involved (like a movie script cast
list for this 'scene').
3. Place characters around outside of page (stick figures). Draw
numbered arrows between characters for each step. If multiple characters
are involved in a single step, try to break step down into smaller
steps. If not possible, flag for step (8).
4. If there are decision steps and branches, your process is too big!
Divide into at least 3 processes:
-
before decision
-
choice 1
-
choice 2
and so on for each choice. Track decision points in a separate document.
5. For each numbered arrow, identify the information that is flowing in
each direction.
6. Now list all computer systems that are used for each numbered arrow.
Hopefully there is only one system per arrow.
7. For each step, within each computer system, record:
-
How the data is stored (web form, spreadsheet, database, text file).
-
Human/Computer Interaction steps (login, form data entry, compose
email, save file).
-
Frustrations, extra steps, mismapped data, manual steps required.
8. If there are steps with more than 2 characters involved,
-
identify 2 'main' characters that give/receive value in this
interaction
-
note the computer systems involved
-
find ways to automate 3rd party involvement in this step.
9. Note when data is first entered into the system. Pick a data point
(customer name, cost, price) and follow it through the process. Note
when data is changed.
10. Note all systems that need access to that data point, and whether
they need read or read/write access.
11. Create a dictionary of data types, and for each data type, note in
which business processes they appear, and in which systems they are
stored.
Outputs:
1. Drawing per business process
2. Larger drawing of how business processes fit together
3. Human character cast list
-
including which processes each is involved in
-
the other humans with which they interact
-
the data they need to perform their role
-
the systems they must have interactions with
4. Decision points throughout business process
-
Inputs to that decision, and resulting business processes
5. Computer system list (software)
6. Data Dictionary:
-
Data type name, description
-
System of Record for that data type
-
Systems that need to read that data type
-
Systems that create that data type
-
Systems that change that data type
-
Processes that interact with that data.
The North Creek Flow Analysis system can be used as an input for
Security/Authorization analysis (determining who needs access to what
parts of the business). It can help in understanding hardware
acquisition. The resulting data can be segregated into relatively
constant cost business processes vs. costs that scale as the business
grows.
For Data Integration, Flow Analysis makes it obvious where one piece of
data is being handed from system to system, and which persons in the
process need access to which systems.
An analysis performed at the Departmental level will identify
optimization opportunities. Expanding the analysis to multiple
departments could expose missed strategic opportunities.
As you go through the process, please note your frustrations with the
Flow process itself, but attempt to carry on to completion for an
individual process before experimenting with changes to the Flow
process. If you find a useful alteration, please send me an updated
process description at dave@northcreek.ca.
The discussion around the analysis will be more valuable than the
analysis itself.
In preparing for battle I have always found that plans are useless, but
planning is indispensable.
Dwight
D. Eisenhower
Categories:
Business
,
Methodology
North Creek FLOW Analysis Process
The Coffee Break MBA message:
* get ambitious employees reading and learning
* harvest the good ideas through intentional meetings
* identify the ambitious, capable and under-utilized employees through
incentives
makes a lot of sense from the employee side. Opportunity to shine, to
get noticed, and to contribute.
But what about from the C-suite?
It may be that the CEO knows the weaknesses that the company needs to
improve on. Wary of splitting the company's focus, he or she is
continually over-communicating the one big idea that the company needs
to get right (h/t to Verne Harnish and "The Rockefeller Habits").
Reading Jim Collins, Michael Gerber, Lencioni, Christensen - sounds like
a bunch of distractions. Let's say the Harnish model is front and centre
in the executive's mind. Wouldn't it make sense to give everyone in the
company a copy of "Scaling Up" (Harnish's updated book) and get some
synchronization?
No, and I'll tell you why.
1) Monoculture. Get a field full of genetically identical plants, and
one virus can wipe out a crop. In a natural ecosystem, the field will
contain the virus and continue to flourish because of diversity. Don't
be afraid of competing viewpoints - but be able to evaluate them and
discard weaker viewpoints.
2) Simplicity. If you need a whole book to teach the primary concept to
the team, you haven't understood the concept. Narrow down your focus
and teach the Big Idea through everything you do. Frame employee
learning in the context of the Big Idea.
3) Practicality. Using the Big Idea/Great Idea framework (organizing
principle vs. situational pattern), as an executive, you need to focus
on the Big Idea. Your staff need to implement the Big Idea in multiple
situations, so having access to multiple patterns that can be used will
be a positive.
There is nothing stopping you as a manager from over-weighting your
#nextbook selection with books that are in your philosophical camp.
Of course, that means you need to have some familiarity with the
business literature. Feel free to check out #nextbook
for yourself, join
my mailing
list (1 book, 1 tool, 1 idea per week), or just start blocking out
time in your day to read. In the long term, that may be the most
strategic thing you do.
And if it makes sense for the boss, wouldn't it also make
sense for the employee?
Let's turn your company into a Learning Organization. Go ahead, set up
an appointment
for a free consultation.
Categories:
Books
,
Business
,
Methodology
Two-way communication
Why is it so hard to become a Learning Organization?
1) The company Vision is unclear. If you don't know what you're aiming
for, you'll never hit it.
2) The company has no Processes. If there is no understanding of "How we
do things around here", local fiefdoms and competing departments will
waste your energy in friction and unnecessary complexity.
3) The company has no way of improving its Processes. If "How we do
things around here" never changes, or only changes randomly with no
clear rationale, the company will lose all of its creative people and
become a group of gray salary-drawing bureaucrats.
4) There is no acceptance of new information. If a better idea exists,
the company should be looking for it.
North Creek's Coffee Break MBA is aimed at problems 3 and 4. More than a
Book Club, Coffee Break MBA aims to open up the circulatory system of
your company, invigorating all of your employees and moving management
focus beyond fighting fires to concrete improvements to the bottom line.
Contact me to
set up an initial free consultation.
I would love to talk to you about your Vision, and about SOPs and making
your processes explicit. But there are some great
books and awesome
authors that will help you with that. Let's start with a book club
and see how far we can get.
Categories:
Business
,
Methodology
Why is it so hard?
We're a microwave society, and we have been for most of our lives. Why
wait? Use Uber or AirBnB. There's an app that will get it delivered. Put
it in the cloud, don't buy your own infrastructure.
But there are things that take time. Personal growth takes time. Wisdom.
Perspective.
You can speed it up - to a point. Learn to be present. Learn to be
congruent. Learn to be intentional in everything you do.
But some things you just have to work at, practice, do over and over
again. Mastery comes after the apprenticeship.
If you are looking to grow, or looking to help people grow, you need to
set a couple of expectations.
1) It will take a lot of time, where not much seems to be changing.
2) At some point, something will change internally, and the person will
be able to access an entirely new level of achievement, mastery, or
influence. There may be few signs that the change is coming, but when
the prerequisites are there, and the opportunity presents itself, BAM.
There are lots of precedents for this kind of growth. Complexity
research. Supercriticality of liquids. Economic crashes. Sandpiles.
In the pre-Cambrian period, there were very few types of animals
(according to the fossil record). In a geological instant, every major
phyla and body type that we see now, along with many that haven't
survived, suddenly appeared, in what is known as the Cambrian Explosion.
If someone was managing biological diversity, they would have been fired
during the Pre-Cambrian period. But if the growth and development would
have stopped at that point, we wouldn't be here.
If your company is measuring growth linearly, you may be settling for
visible things that can be gamed, but which do not produce real growth.
If you are managing for real growth, you have to have some patience.
You as an individual need to be growing all of the time. It might not be
visible. Don't quit.
You never know when the explosion will occur, and you don't know what
internal things need to change to unleash it.
Never stop growing, even if nobody else sees it.
Your day will come.
Categories:
Business
,
Methodology
Fast Growth vs. Slow Growth
Let's start by assuming that your company has at least one problem.
Let's also assume that somewhere, someone has written a business book
describing a solution to your problem.
(Now, it might be a video series, or a seminar, or a podcast, but most
good ideas eventually get turned into books, and Big Ideas that are also
Good tend to become successful because capitalism).
Let's assume that you are the manager, owner, CEO, P&L responsible. If
not, let's pretend you are and you can play along.
How many Big Ideas can you find? Understand? Evaluate?
How many staff do you have that you trust to be able to do the Finding
and Understanding?
How many staff do you have that would love to earn that trust? (See, if
you're playing along, you would love that opportunity, right?)
So cast a wide net in the business learning sphere. Get a bunch of
people to evaluate a bunch of ideas in parallel, then collect the
results, rank them, and then get to implementing the right one, not the
latest one that you have been sold.
Maybe it's out of left field. Maybe it's something that's never been
done in your industry. (Probably that would be a good thing!)
What if you could ask for help, and have your staff volunteer to help
you solve problems? Do the incentives match up? Think about it - you get
innovative ideas investigated and understood by someone within the
company. Your staff get to prove their chops at solving real business
problems.
What if all of this came out of your training budget, and nobody saw
that as misappropriation?
That's North Creek's value proposition. Breadth-first search of the
business literature, by employees and staff, for the benefit of their
career and the company's bottom line.
Calendly
to set up an appointment to talk this over. Follow @northcreeksoft
on Twitter, like NorthCreekSoftware
on Facebook.
Let's turn your company into a Learning Organization.
Cheers,
Dave
Categories:
Business
,
Methodology
Depth-first vs. Breadth-first
Seth Godin, in the Startup
School podcast, said something like that all business non-fiction books
can be read in 5 minutes. I wish that were literally true, as I work
through the stack of books I need to read to stay current with the North
Creek Mailing list (1 Book, 1 Tool, 1 Idea, every Thursday).
But the kernel of the idea is that a good business book is built around
a single Big Idea. Two Big Ideas mean the reader might miss both of
them. So the author, the editor and the publisher make sure the stories,
the data, the frameworks - the whole book supports one Big Idea.
As a businessperson, finding the Big Idea in the book shouldn't be hard.
The reason the book is 250 pages instead of 250 words is that the Bid
Idea needs to be (a) sold to the reader, and (b) translated for the
reader.
You can save a lot of time and skip the sales section if you grant the
thesis, the Big Idea of the book. Let's figure out how to apply the book
to me! But if you are unfamiliar with the Big Idea, you may need to go
through the process of being sold, so that you can answer the objections
others will put in front of you when you start to sell them on the Big
Idea.
If you are not in a senior management role, the Big Idea may not be that
much use to you. Without the authority to make changes, implementing the
Big Idea might be out of your reach. Is it a waste of time to read the
book?
No!
Once you understand the Big Idea, the sales process, and the translation
process, you can filter that out and look for the Great Ideas the author
has included in the book. Great Ideas are practical techniques or
approaches that are used by the author to support his or her Big Idea.
They are not Big enough to support a whole book, or broad enough to
build a whole company around, but they can bring huge advantages to
situations where they are relevant.
A Great Idea is not universal. It may not be helpful at all in your
circumstances. But having that Idea in your mental toolbox may come in
handy when a new situation arises.
Great Ideas are often illustrated in stories or case studies. Since they
are situationally relevant, they are easier to communicate within a
sample situation. Whenever the author tells a story, look for the Great
Idea that is being explained or supported.
Sometimes Great Ideas are frameworks, visual tools, or ways of thinking
about a problem. Whenever there is an illustration in a book, it's a
clue that there is a Great Idea there. Many analysts love to combine two
adjectives, make a grid, and create 4 quadrants. It is immediately
apparent that you want to go up and to the right. That grid may be
describing a Great Idea.
Great Ideas don't require a lot of authority to implement. You can start
trying out a new way of analyzing a problem immediately. You can go to
work, watch a process, and start placing it on a grid within a day.
Companies are usually managed according to a small set of these Great
Ideas, communicated explicitly or implicitly throughout the organization.
As you read a book, keep a notebook handy. Make a page just for the Big
Idea of the book. Note the sales process the author uses to sell you on
the idea. Note the target audience the Big Idea is translated for. After
you've finished the book, see if you can write a paragraph describing
how the Big Idea could be translated for your company.
Then make a whole section of your notebook for the Great Ideas in that
book. Every time you encounter a technique or approach that the author
uses to solve a problem, write it down on a new page. Note the kind of
problem the Idea solves. Draw the picture if there is one, or summarize
the story or case study. Then spend a few minutes translating the Great
Idea to your situation. Don't worry about the whole company (unless you
are the CEO). Instead, apply the Great Idea to your work life, right
now. If there is no immediate application, leave it blank, but make a
note of the problem type. When you encounter that problem type in the
future, your notebook will contain an approach that has worked for other
people in the past.
If you are a manager, imagine if your people were creating and sharing
notebooks full of Big Ideas and Great Ideas. Imagine if there was the
opportunity for people to filter those ideas up to their leaders, so
that the whole company could learn. Great companies coalesce around a
few Big Ideas, but no company can ever have enough Great Ideas in its
toolbox. North Creek Consulting will partner with you to install this
approach into your company. Starting with the classic
business books, your people will be exposed to Big Ideas that will
expand their understanding of the market. They will also start to pick
up Great Ideas that can give your company marginal improvement in lots
of areas at the same time. You're only one person - get more people
reading, learning and growing. Partner with me and let's turn your
company into a Learning Organization.
Excited to keep learning,
Dave
Professional Learner
North
Creek Consulting
Categories:
Books
,
Methodology
Big Ideas and Great Ideas
Coffee Break MBA- it's a bit of a fanciful name, but it expresses the
idea pretty well.
But while it is a long slog for a worker bee, climbing out of the
cubicle 15 minutes at a time, there is a different perspective for
business owners.
Imagine each of your people as an idea vacuum, constantly learning and
adapting to the inputs that come into his or her mind. Imagine adding a
diverse set of Big Ideas and Great Ideas (2 different kinds of awesome!)
to their mental menu. Every person who signs on to learn will grow in
their perspective, in their skill set, and in their productivity.
But what if you intentionally sponsored that growth - and in tens or
hundreds of different directions at once?
For some companies, the CEO goes to a conference, hears a keynote, and
buys a case of books written by that speaker for her 'team'. That one
Great Idea gets transmitted through the organization, and within a few
months, the useful parts are integrated into how the business functions.
Imagine if there were fifty readers, scattered throughout the company.
Imagine if they were paired up, 2 to a book, so that there was some
accountability and encouragement around finishing the book. Within a
month, the company would have 25 Great Ideas or Big Ideas that could
find some application in the company. With some competent management,
those new ideas could be vetted and integrated from the bottom up.
One person can impose a vision on a company. But are you willing to bet
your company on your vision not having any blind spots? Spreading the
search around will expose the company to so many more ideas.
North Creek Consulting is developing a framework for you to turn your
company into a learning organization. http://northcreek.ca/nextbook
is the public face of this framework - a simple site that recommends
books and pairs readers across the internet.
North Creek will spend some time connecting with your management team,
identifying your vision, your goals, what drives your company, and what
your challenges are. I will customize a booklist for you that spans
perspectives, prescriptions, and approaches. I will work with you to
develop a process for learning from your employees. Your staff will be
empowered to change your processes, your priorities, your strategy, and
your bottom line - by learning from the smartest minds in business and
life.
Contact me, Dave Block (dave@northcreek.ca, 780-604-2602) to set up a
free initial consultation. Prepare to build a corporate library, prepare
to invest some time in your employees, prepare to learn.
Turn your company into a learning organization, one coffee break at a
time.
Cheers,
Dave
P.S. Go ahead and call me (780-604-2602), I'll work with you personally
to set this up so it works for your company. If you have a training
budget, buying a whole library costs about the same as sending one
person to one conference!
Categories:
Books
,
Business
,
Methodology
Really, who needs Coffee Break MBA?
Data Flows and Simple Tools
Professional programmers look at your business as something like a
chemical refinery. There are inputs (prospective customers, investment,
[lots of] labour) and transformations, like chemical reactions, leading
to products (physical products, or happy customers, or both) as well as
waste products. It is in your best interest that the flow has as little
turbulence as possible. Lean manufacturing is focused on reducing waste.
North Creek's first marketing tagline was "Let your business flow." I
wanted to help you understand where data was being wasted in your
business, where errors were creeping in, and how we could automate
things to make your work easier.
Now I'm focused on creating a couple of products that will help you do
that, without having to fly me in to walk you through the process.
(You're probably a ways from Onoway,
Alberta). We'll start small. If you, like most small businesses, use
spreadsheets to track numbers or projects, CXL will help you by adding a
layer of "adult supervision" over your spreadsheets. You'll have a
history of what is changing. You'll have the ability to go back in time,
or to branch a useful spreadsheet into another area.
But what could happen is that you'll start to see the data flow through
your company. Spreadsheets filled with numbers change like crazy. If
those numbers are the real description of what's happening in your
company, then it's the flow of those numbers that we want to understand
and manage.
I want to help you create tools that don't change, that help you get a
consistent look at the data that does change. Good spreadsheet
design gives you a place in the spreadsheet where data comes in, a
place where calculations are performed, and a place where you look for
the result. If those are all mixed together, it will be hard to manage
the flow.
But the internet is full of people smarter than me when it comes to
spreadsheets. Point me in the right direction - let's help each other!
Meanwhile, CXL will open it's beta in January. Sign up by emailing
me, follow @NorthCreekSoft
on twitter, like North
Creek Software on Facebook.
"Let your business flow!" :-)
Categories:
Business
,
Methodology
Data Flows and Simple Tools
In many ways, businesses use Excel as an edge node in the graph of
integration pathways. Data comes in to your spreadsheet, is folded,
mutilated and spindled, and turned into a table or chart you can put
into your slide deck.
We all know Excel and its competitors can do more than that, but for all
the reasons I've described previously, few businesses choose to go that
way. It's too easy to change a spreadsheet - it's one big sandbox for
playing with data! So businesses lock things down with custom software
or integration tools.
If we had a repository that tracked and provided "adult supervision" for
spreadsheets, could we use spreadsheets closer to the middle of the
integration graph? Could we trust some spreadsheets as tools to provide
some visibility into the guts of your data as it moves through your
business? Instead of being stuck in a database that only a DBA "Wizard"
can peer into, would it be helpful to be able to see data as it is being
transformed?
Excel and others are pretty good at subscribing to data feeds (using
ODBC or other connectivity, or through CSV file imports). Part of North
Creek's technology stack is Apache POI,
which is a library that takes apart a spreadsheet like a chicken,
allowing me to see its guts and play with each individual cell. CXL was
envisioned as a repository with intelligence, allowing businesses to
trust that their spreadsheets were not being changed and distributed
without the document owner's knowledge. What if there was the ability to
put data feeds into CXL, not just spreadsheets?
I am not planning on re-inventing any wheels. I would embed Mule
as a front end and require some configuration on your part to set up the
data feeds. But any data source can be expressed as an html page (I am
using jmesa for now) or
as a spreadsheet table. This could be interesting.
If you want to help steer North Creek's product vision, sign up for the
beta by emailing me at dave@northcreek.ca.
You can also like my Facebook
page or follow me on Twitter.
If you are interested in receiving these blog posts via email, tell me
in an email!
Categories:
Business
,
Methodology
,
Software
Integration via Spreadsheet?
Spreadsheet "Design"
Spreadsheets are usually "grown", not designed. If you are responsible
for a spreadsheet that is vital to a business process, relied upon by
others - you may not be able to describe the parts of the spreadsheet.
It just is. There are the places you go to update the data. There are
the changes you make to the dates. There are the parts that always break
and the parts that never change.
So what makes a good spreadsheet?
Let me know in the comments or on social media what you think. I have an
opinion, but there are experts out there!
Spreadsheets are a container for data and programming code. So my
experience as a database administrator and designer, and as a programmer
across multiple languages (and eras) suggests that there may be some
patterns that would be useful.
1) Separation of Concerns.
Many programmers use the shorthand SoC for this, and it is one of the
pillars of good design in most coding schools of thought. Make every
component of your [thing] do one thing, and that one thing well. For
spreadsheets, that probably means looking at the structure of your
worksheets. If you have everything on one worksheet, it might make
things easier to move some of the content onto another sheet and use
relative links to bring the data back for calculation purposes.
A rule of thumb - separate the spreadsheets into sections based on how
fast things change. If you have parts that never change, put them in a
worksheet and don't touch that worksheet. If it changes, you should know
why. If you have stuff that changes all the time, isolate that from the
rest of the document so that the volatility doesn't lead to accidentally
overwriting some of the longer-lived stuff. If you have stuff that
changes on a schedule, work on a naming scheme and put all of the
date-sensitive stuff on one worksheet. Then you can turn that into a
template and change only that stuff on a schedule.
2) Don't Repeat Yourself
This comes from "The Pragmatic Programmer" by Hunt and Thomas (right up
there on my bookshelf). If you enter data twice, one of the times will
be wrong - not every time, but often enough that there will be a problem
at some time in the future. So try to avoid the cut and paste, and
especially the re-typing. If you can automate the export and import of
data from your other tools, do it! The fewer the steps involved, the
better.
There are plenty more - let me know your best ideas, or the source of
your best Spreadsheet tips!
...Follow me on Twitter @NorthCreekSoft
- Like North Creek
Software on Facebook - email me at dave@northcreek.ca...
Categories:
Methodology
,
Software
Good Spreadsheets vs. Bad Spreadsheets
When I was a corporate programmer, spreadsheets were evil.
There were too many of them, they contained important and valuable data,
and we (the IT people) couldn't keep them under control.
People would have them on USB sticks, on Dropbox, on their kid's laptop.
And the calculations were stuck in an obfuscated binary format, hard to
get at and hard to reuse.
So why are spreadsheets still around?
1) They are easy. Nothing to a good model or a good project breakdown in
20 minutes. No other tool gives you that much flexibility.
2) They are flexible. Add a column. Add a row. Change the formula on the
third linked worksheet and look at the graph change.
3) They are personal. You can do things on your desktop (or laptop) (or
tablet) that others don't have to see or laugh at you about. You can
spitball a scenario. You can what-if. You can write one version of the
project summary that is not for publication, then actually erase it and
write a not-so-candid version.
So where do spreadsheets live?
Wherever change is happening.
A new company doesn't have the budget or the insight to commit to a
database schema that won't change. It can't know whether this tool or
that tool will match its process. So spreadsheets work during growth.
During disruption, trying to fit the new reality into an ERP package
built for the last decade (and designed during the decade before that)
leads to frustration and error. A spreadsheet tracks the data as things
change around you.
CXL will use a gentle touch. Keep your spreadsheet. Keep your formulas.
We'll find the data in the spreadsheet. We'll track changes as they
happen, whether they are within a cell, a new row, a new column. The
history will be there. And you will be able to manage change.
CXL will do branching. Spreadsheets are personal, and the other person's
template may be a good starting point for them, but not for you. Or
maybe you want to take a model in an entirely different direction.
Branch the document, don't lose the history, and continue on your own
path.
CXL will be easy. Just a file upload, and you have a document in a
secure repository. There will be a public URL if you want to share with
the world. There will be private access tokens that you can hand out.
There will be the option to share only with a certain group of people,
that have to log in using their email address. And for each level, you
can restrict to preview only, download privileges, the right to propose
changes, or document ownership. You can make things complicated if they
need to be. But simple if that's all that you need as well.
Suggestions? Comments? Let me know. Email me at dave@northcreek.ca
to join the Beta in January, or to subscribe to the North Creek mailing
list.
Categories:
Methodology
,
Software
Spreadsheets and the failure of IT
I have discovered that I have been away
from coding for a while! My last coding assignment was with EDS(
www.eds.com,
now a unit of HP), working on an existing codebase that dealt with a
mixed Oracle/mainframe backend, with a Java servlet/JSP front end (
http://travis.gov.ab.ca).
This was a familiar environment, since I worked on similar systems at
Novartis (
www.gnf.org) and the
University of Alberta Human Metabolome Database Project (
metabolomics.ca).
However, my work at EDS transitioned into Business Analysis, including a
lengthy stint as a facilitator for a large-scale Smart Card
implementation. While I was gone, the world changed!
The world has experimented with web user
interfaces (UIs), and has found them wanting. In their place, the Rich
Web has gained prominence. This primarily has meant AJAX, and in
practice, the Google Web Toolkit along with other offerings. Adobe has
introduced Adobe AIR, which allows cross-platform desktop development
based on Flash. And the rise of the Mac platform to relevance has
re-invigorated cross-platform library solutions, such as Qt, a unit of
Nokia, which provides Java and C++ development environments that can be
targeted at almost any platform, including Linux, Mac, Windows, and many
smart phones.
So I want to develop custom, easily
modified business software. So do millions (?) of other developers. I
hope that my choice of technology gives me a business advantage. Of
course, my primary business advantage is that I will start by creating a
relationship with my clients, and then will meet their perceived and
actual needs. This means that my choice of platform must allow me to
fulfill those needs within a cost and time structure that allows me to
be profitable.
So, what do I do? Here are some major
factors in my decision-making process (which has not finished yet!):
1) Run on desktop vs. remote server: Do I set up a server and
allow my clients to log in to the server? Or do I send a complete
solution to the client desktop, including a persistence solution and all
business logic?
My experience and my instincts suggest that if I can control the server,
I can improve the experience for the client without the pain of an
upgrade process. This should allow me to iterate rapidly towards a
really good product.
2) Web client vs. Rich client: Should the user interface be
compiled to run on the local machine, or should it be mediated by one of
several possible browsers, over an uncertain network connection? This
seems to be somewhat of a false dichotomy, as long as the client has
decent bandwidth. With my choice of a server backend in #1, the
bandwidth seems to be required. Can a solution such as GWT support
enough functionality to make the browser "disappear?" Or would a Java
client offer enough speed and interactivity to make the browser
interface seem clunky? Perhaps I should let Qt provide the UI framework,
and write once, test everywhere?
3) Client hosting of data: Will the clients be comfortable with
their private business data in the "cloud," or should I sell them on
local appliances that host their solution on their local intranet (which
means in many cases, setting up an intranet)?
The low cost of desktop hardware leads me towards this second option,
where I build and configure a server that hosts the persistent data and
the application, which is served to the client desktop (through
something like Java Web Start, or through GWT, or Adobe AIR). This
allows me to set up backup schemes and encryption to reassure the client
of the security of their data, and gives me a single upgrade point per
client.
Given the explosion of virtual server
environments available, I believe this progression of questions and
answers will lead me to develop a standard appliance that can be easily
loaded into a commodity PC. This appliance will host the applications
required by the client, while the data will be stored on the PC outside
of the appliance, allowing for quick swapping of images when I wish to
push out an upgrade or bugfix, without touching the client data.
I have a lot of experience with MySQL, and
combined with its price point (free!), I plan to stick with it for now
(while watching PostGres et al). Combining MySQL with a JVM and a
servlet container (Tomcat? Jetty? Jboss? I'll decide later... the joy of
standards) gives me a comfortable backend. Now, developing on the front
end for the JVM has gotten interesting, and that's where I'm still
experimenting. GWT? AIR? I will probably pass on AIR for now, as its
advantages are pretty small compared to the other options, and there is
a small upfront cost involved. I'm still happiest with free tools.
I am taking a good long look at Qt, and its
Java implementation, Qt Jambi. That combination gives me a near-native
front end (from C++ compiled into native code) combined with Java (which
I actually have worked in before). If it's not dynamic enough (more on
that in a later post), I will probably invest some time in GWT, and then
fall back to HTML+javascript as a last resort (but the one I actually
know how to do now).
Suggestions?
Categories:
Business
,
Methodology
,
Software
Coding Options
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.
Categories:
Books
,
Business
,
Methodology
,
Software
Introduction