Having been in and around software design for far longer than I care to
admit, here is some of what I have “learned” over the years about
software design projects. Almost all of the successful marketable
software design projects I have been involved in and observed over the
years seem to have a few traits in common that tend to lead to their
success.
I also apologize in advance to the board that the main points in this
post aren’t really ruby related at all and should probably be moved to a
different board more centered around the business aspects of software
design.
First off, at the very beginning of the project there are at least three
key roles that should be filled before the software design should
seriously begin. However don’t let me or anyone else discourage you from
trying. Be sure and read the last paragraph about what I think you
should be focusing on in these early stages. In any case, it will be a
great learning experience for you! The three key roles before the
software design project really begins are the marketing role, the legal
role, and the finance role.
The marketing role needs to decide if there will be demand for the
software that you are going to produce, when will you produce it and
identifying which customers appear willing to pay good money for it. Who
are the competitors? Is your product a clone+ of something else? How
will you productize it, package it, promote it, etc. If there is a real
demand for your product there should be a company that will help sponsor
its development or at least help you alpha and beta test.
The legal role involves walking the mine field of software design
legalities regarding reuse of other’s ideas/codes/tools, etc. so that
you don’t get close to market only to find out that others, perhaps even
one of your competitors, has deeper legal pockets than you and may even
try to tie you up on legalities that may have escaped your attention
while you burn off your cash in court.
The last role is the finance role. In order to quickly move an idea and
a viable product to market generally will require some capital. All of
your own time spent on this project is time that isn’t available for
other endeavors. And as others on this board have already suggested, it
will be incredibly challenging for one person to fill all of the key
roles involved in a project of this nature.
In the good old days 10-15 years ago, here in the States anyway, before
the dotcom bubble burst practically anyone with a good idea could put
together a team and venture capitalists/angel investors would fall all
over themselves to fund it. Such is not the case anymore!
The last paragraph: Whenever I find myself going in circles, I generally
take a long hard look at my project’s scope. I would suggest that you
should simplify your current plan’s scope to not include any of the
business aspects yet regarding a new proposed software solution or any
proposed enhancements to their current system but should totally focus
first on developing a software prototype using currently available tools
to accurately model those aspects of the current environment of an
educational system that are of interest to you. Only after you have
successfully modeled the current environment as you now know it should
you begin to look at ways to enhance it. In many software systems that
have been in the field for a while, things tend to work the way they
do(trade-offs) because of an evolution to meet some customer marketing
need.
With this down-sized scope, this will still be a great technical
learning endeavor for you to experience developing a real-life software
prototype. This will also be very useful for you to evaluate the
software model’s complexity, to test your own understanding of the
environment, to evaluate the software tools available today and their
capabilities, etc. etc…
Generally, in my opinion anyway, successfully writing fundable, fully
maintainable secure marketable legal software generally will typically
require the expertise of some marketing, legal, finance, and software
design professionals that have already been there and done that.
— On Mon, 2/7/11, Hilary B. [email protected] wrote:
From: Hilary B. [email protected]
Subject: Re: Totally lost in learning Ruby
To: “ruby-talk ML” [email protected]
Date: Monday, February 7, 2011, 6:16 PM
Hi everybody,
Based on the responses I have been receiving, I will greatly appreciate
any comment on how to move forward from this point. Thanks in advance to
all respondents whom have been soooooo kind and patient.
What I want to create is a database that can measure the performance of
all entities in a school district. The closest software that exhibits
some semblance is that of Microsoft Access. Where, as I understand it,
the input entry of a single data can be housed and then derived, through
a set of queries, then further analyzed through/by Microsoft Solver
software.
The difference with my proposal would be that based on selected
indicators [which will be dynamically influenced by changed event(s) and
policy(ies], which would be able to measure success. I have been exposed
to a statistical software named SPSS and having worked as an economist,
has influenced my outlook on creating an approach/database/software
which would indicate in real time, measured results.
As you can tell, there is an element of nervousness regarding saying
too much. But on the other hand, if not much is said, not much help can
be given. So it’s a “catch 24”, where since the last 20 years I have
been improving on a systems that would be able to measure defined
academic output, vis-a-vis, financial constraints etc…
Mike S. recommended Mendix as a possible solution to my woes. Do
you know of such arena?
Therefore, I figured that, doing it all by myself may be the best
solution. However, some of my concerns are: "Why reinvent the wheel?',
How can I create a sustainable system that does not compromise quality?,
What curriculum structure should I follow that will meet my needs
without, straying from my goals?
Therefore, this is my dilemma, which seems to be going in circles. Any
suggestions.