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 Bailey <my77elephants@gmail.com> wrote:
From: Hilary Bailey <my77elephants@gmail.com>
Subject: Re: Totally lost in learning Ruby
To: "ruby-talk ML" <ruby-talk@ruby-lang.org>
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 Stephens 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.
--
Posted via http://www.ruby-forum.com/.