Thursday, May 17, 2012

Developing an overall vision before requirements or use cases

The big-picture, or vision of where a program is going is vital if the desire is to build something that is going to have much complexity.

By working on a vision it helps to direct a company to see if they may want to adapt due to a developing vision.

So, for example, I am working on a learning management system framework that I have been mulling over for several years.  One requirement is that it should be accessible over a webpage, and be highly interactive, and accessible from native applications on mobile phones.

Now, these may be common requirements, but this is a basic sketch, and if you stop here and implement it later it will be realized that there is an architectural problem due to a lack of vision.

I am also working on an issues program that would be helpful with agile development, and fit well with the notion of Kanban, so developers can select features to implement based on time allotted and interests.  This will have the same basic requirements as the LMS.

So, I could write each of these, make them available, and they would be competing with many other programs.

But, what if I want to add a feature to the LMS where the program could suggest training or certifications that may be beneficial to the learner.  Now, out of the universe of available courses, how could this program know what to suggest.

A simple solution is to be able to tell it where you want to go to, and advisors or managers could also put in guidance as to where they may be going.  

So, if you are working in Human Resources, it may be that you want to go into recruiting, but management may see that you should be on the management track, so, it may be that both are entered as goals, and the system may show only the path the learner selected, but it would also look at the goal put in by management.

This would be helpful if there was defined milestones to go from one position to another, so it may be necessary to give some functionality where this could be designed.

Now, this extends the LMS, but there is also the issues program, and this could be useful for management to  allow self-organization.

A staffing company decides to provide software development services to, using their connections to independent developers, for the mobile market.

If the companies can describe the project, and put a dollar amount, then developers and designers could look at the wishlists, then pick which one they want to work on, and it could be that people could put their name on the task as being interested, and teams can come together to do this project.  So, it may be that two programmers, a UI expert and a technical writer may form a team, and they will create their own private issues setup where they can list the features so the team members can pick which parts they want to work on.

Now, where would this team come together to collaborate?  Why not use the LMS?

It has discussion boards and whiteboards, as well as a place to store documents, so, this virtual team could inhabit a virtual classroom to do their designs and show mockups.

There are many features available that can be explored, and the strengths of using mobile apps hasn't even been explored, but, by working on a vision it could be seen that this simple LMS may grow to not only be just a part, but a business may either evolve from this development, or, if a company is able to adapt they may spread themselves into new areas.

So, before starting on any project, ask what the vision is first, and see where this program may want to go.

No comments: