Tag Archives: business

Management Systems and Software Engineering Similarities

I spend my time between software development and management system development, and the similarities have never been clearer.

Business is about getting things done in a sustainable way. Improvement is almost always the name of the game. Computer science is all about solving problems with the fewest resources. Software engineering is the process by which software eventually achieves that goal. These things could not fit together much better.

Even the terminology matches. Operating systems procedures and processes match their management system counterparts definition. This was almost certainly adopted by the original operating systems developers as it was certainly their goal to apply software to business problems. The major distinction is that one executes via teams of people whereas the other on machines.

Formal Management Systems focus on establishing documented activities, defining how to change them, and determining how to evaluate them.

There are so many analogues to software engineering. The documentation system is the source control system (like git). The training system is the compilation and deployment processes (note: “training” computer systems is much more predictable). Complaint handling and CAPA are your bug tracking system, software internal audit is basically the regression test suites. The Top Management functions, choosing software process direction and evaluating the effectiveness, are handled by the Product Owner.

Formal Management System procedures could be treated as software, with some level of unit and regression testing. All of the lessons from the move to micro-services could be very quickly applied to management system processes including: error management, fault tolerance, and monitoring.

All of this is not to overlook the extra complexities of management systems where people are the primary executors. I just happen to be less familiar with those.

Financing the Independent Information Project

Before you read any further, I’m not an expert in any of this. If I were, I’d probably be publishing in a much larger outlet. I’m just trying to figure it out.

First of all, if you’ve got a project to work on, but otherwise no funding, you’re still going to have to put food on the table. The following list is a good way to keep yourself maintained. Note that it’s a good idea to keep your interests aligned — find work that supplements your other interest(s). Just make sure to thoroughly understand any legal agreements that you sign regarding intellectual property and outside work. This is worth talking with a lawyer about, and it may be worth dropping an employer over.

Making Ends Meet

Salary/Hourly – Stable work, but usually requires a significant time commitment. Make sure it’s developing some useful skills.

Freelance/Contract – This is similar to a salary/hourly when you have work, but you may spend a large amount of time looking for the next job. I like this idea because it puts you in a business mindset. However, the minutia can be a distraction from your project. Another advantage to this method is that you could slowly convert to contracts in support of your project.

Online Pay-Per-Code – I like the idea of sites like guru.com and RentACoder, but I understand it’s not an easy thing to trust a coder off the street nor trust a spec written by an unfamiliar hand. These tend not to pay well because the competitor pool is global.

Significant Other – If you’re fortunate enough to have someone willing to support you in your ventures, use it wisely and good luck.

Angel or Venture Capital – You’re beyond my experience.

Trust Fund – You’re probably set. You can stop here because you’ve almost certainly got much better resources available than the blog of an amateur.

Now that you’re presumably fed well enough to get up each day, we can consider how to finance the project that you want to work on.

Methods I Like

App Stores – There’s an advantage to creating small, useful versions of an idea and putting them up for sale: you can quickly find out if there’s interest. Of course, there are quicker ways to find interest, but this way might have some dollars attached.

Freemium/Patreon – This has been a boon for YouTube and other creative content generation. There’s no reason that it couldn’t be applied to software. Creators that tend to do well here have already established a rapport with their user base or audience.

Sponsored – To my knowledge, most major open source projects go this route, and it seems a solid plan. I haven’t much insight into how to get started with this. I assume it requires a project with a certain level of interest to get significant sponsorship dollars.

Kickstarter/IndieGoGo – These are some incredibly powerful ways to get projects going. However, they (Kickstarter at least) have been associated with some fraud. As a result, the campaigns usually either need a good amount of marketing, a team behind them that has already proved they can deliver, or a demonstrable product that just needs cleanup and/or production.

Business-to-Business – These are some of the most lucrative deals, but they’re heavyweight and time-consuming. As far as I can tell, this model usually involves a dedicated sales person or team.

Methods I Don’t Like

Advertising – My opinion of this revenue source has soured over the last few years. It didn’t seem so bad online — until it was: popup ads, interstitials, and copious inline ads have ruined the model for me. The appearance of ads within mobile and desktop apps led me to the conclusion that I would never want my work associated with this model. Ultimately, advertising networks are about tracking people and trying to figure out exactly who they are and what they like. It’s creepy.

A light advertising touch might be acceptable in some online cases, and I would want strict control over the kind of advertising presented to my audience. Otherwise it’s a line I would prefer not to cross.

Pay-Per-Use – This is a model that’s growing rapidly because the Internet makes it easy. It keeps your software relatively safe from theft and undesired manipulation. It also makes it relatively quick to deliver new changes, optimize, and identify and fix user problems.

With all of these great benefits, why don’t I like it? It seems to me to be the antithesis of open source — a model I am quite fond of. Open source maximizes availability of software and the corresponding learning from it. Pay-per-use is a service where the service provider could have little interest in sharing how things are done and near endless ability to scale.

Despite my reservations, it’s a powerful model that deserves consideration. I would just avoid making it the only path.

Other Thoughts

Mixes of the above are probably prudent. The more ways that you can accept funds, the more resilient you are to unexpected swings.