De Bono’s lateral thinking
The famous heureka! or aha moment in Mathematics
Application’s Architecture
Three Universal methods of reducing complexity
renaat/ca2/ca214/ca214vii.html
Development Methodology
Planning
Siteanalytics
Frederick P. Brooks, Jr.
What does KISS stand for?
fhanik/kiss.html
Feature-Driven Development
Tracking Projects
 
Roadmap: Project VOLTAIRE Guru
Social Network Post Broadcaster - BulkArticleSubmitter by JOHN JAN POPOVIC


Roadmap: Project VOLTAIRE Guru
Roadmap: Project VOLTAIRE
read before: The Project Requirements > Mass article submitter
We are in business that has no physical presence e.g. no retail shop, we only exist online. We have two products at the moment and more coming over the next few months that each have there own domain/website. We are looking for someone to optimise our presence through social networks and to spread the names of our products as quickly as possible through the social networks i.e. we want our product names to be well known and linked to the websites.
We plan on this being an ongoing process as once one product is well known, we will have another that will need the same work.

The Project VOLTAIRE Roadmap -- The Milestones of Incremental Development Design Process
.
The word project comes from the Latin pro-jectum and means "throw forward", ie pre-view, "to forsee an ordered sequence of related of actions" rationally represented. Unlike the other common use of the word adopted in the scholastic and other contests, the ORIGINAL meaning of the word "PROJECT" was "something that comes before anything else happens, ie an ITER to FOLLOW".
.
Breaking big objective into multiple small tasks helps you estimate them more accurately, reveals work activities you might not have thought of otherwise, and permits more accurate, MILESTONE status tracking.
.
This roadmap is an answer to REQUIREMENTS (where is specified WHAT must be done), while here we deal with the issues such as DESIGN-SPECIFICATION (HOW to do it) and PLANNING (WHEN to do it).
.
The Milestones and Incremental Development process is not only a great way to map out complex functionality, it's also IMPORTANT to test out critical features before they're launched. As part of the our INCREMENTAL DEVELOPMENT process we have made some changes in the application structure in an effort to better organise bug-tracking, development and feature releases.
.
Personally I have never believed that it is possible to be a good coder without being a good programmer nor a good programmer without being a good designer, communicator, and thinker.
.
Our approach is adaptable, allowing us to engage and provide testable solutions at any stage in the software development life-cycle. From planning and pre-definition strategy to post-release usability, we blend a variety of methods and best practices. This allows us to create valuable solutions in every stage of the development.
.
CYCLUS ONE
.

.
********************* W E H A V E B E E N T H E R E A N D D O N E T H A T ********************************
.
MILESTONE I // Create, Edit and Search... POSTINGs // delivered on October 11th, 2010
- Poster version 0.1a
- In this versionPOSTINGS repository was implemented
- POSTING record :: title, content
- In this versiona rudimentary content editor for TEXT ONLY POSTINGS was implemented
- Create, Delete and Edit feature of the articles was implemented
.
.
MILESTONE II // Create, Edit and Search.. PROFILEs // delivered on October 11th, 2010
- Profiles version 0.1b
- In this milestone was implemented PROFILE repository/database
- PROFILE record :: display_name, user_name, password, email, customer_tag
- Create, Delete and Edit feature of the PROFILEs was implemented
- there are 5 profiles in the system, but it can be easily extended to more
.
.
.
MILESTONE III // Create, Edit and Search.. SITEs // delivered on October 11th, 2010
- Sites version 0.1c
- In this version was implemented ELGG SOCIAL NETWORKS repository
- SITE record :: site_name, site_url, social_network_type, comment
- the customer can Create, Delete and Edit the SITE record
- there are 200 ELGG sites in the system, but it can be easily extended to more
.
.
.
.
MILESTONE IV // the SITEs repository will be initialised from the CSV file // delivered on October 12th, 2010
version 0.2
- the "CSV file upload" feature was implemented
- once the SITEs repository is initialised, populated xor updated, the SITE-records were easily editable and searchable
.
.
.
MILESTONE V // Automatized POSTING feature for ELGG // delivered on October 12th, 2010
version 0.2a
- There are the profile credentials valid for a SOCIAL NETWORK based on ELGG software
- We have tested Automatized LOGIN with valid profile credentials *(User, Password)*, valid for a SOCIAL NETWORK based on ELGG software
- We have developed Automatized POST *(URL, Title, Body)* valid for ELGG NETWORK only
- The article submitter concept was tested on small number of manually generated ELGG accounts only, and on a small number of ELGG networks
.
.
.
.
MILESTONE V.a // monitoring of the Error/Success status after automatized POSTING
########### post_elgg_blog ERROR SYSTEM ######################
- In this milestone was implemented the ErrorSystem for post_elgg_blog
########### Post Elgg blog procedure #####################
# Robot will try to post new article via post_elgg_blog procedure
- there are five input parametres >
########### post_elgg_blog INPUT ######################
- $elgg_url - a link to a SOCIAL NETWORK
- $elgg_user - valid profile credentials account
- $elgg_password - valid profile credentials account
- $blog_title - Article Title
- $blog_body - Article Content
########### OUTPUT post_elgg_blog RESPONSE ######################
As result will be generated an Error_status report
- the creation of the Success_or_Error status_report will be generated as reply after tryng to perform Login & Post
- Error_status output codes >
- a - Error_status: 0 - Description> Post was successfully published
- b - Error_status: 401 - Description> Server not found at $elgg_url
- c - Error_status: 404 - Description> Page not found, 404 Not Found error was encountered, non-existent or temporary unavailable page at $elgg_url
- d - Error_status: 502 - Description> Invalid account credentials, i.e. wrong $elgg_user and/or $elgg_password for Login
- e - Error_status: 503 - Description> Post failed, i.e. the article could not be published
########### end of OUTPUT RESPONSE error codes ######################
.
.
.
.
********************* N O W, W E A R E H E R E *****************************************************
.
.
MILESTONE VI // BULK PUBLISH feature for ELGG
version 0.3a
- Here the user will be able to BROADCAST the selected POST at the list of ELGG SOCIAL NETWORKS only
- One of the 5 profiles in the system may be selected to perform BROADCASTING of the selected article
- user MUST insert the CUSTOMER_TAG, which used as social network Broadcasting SELECTOR, i.e. the Post will be Broadcasted only to the sites with the that TAG description
- Broadcastig concept will be tested on a small number of manually generated profiles/accounts only
.
.
MILESTONE VII // BROADCAST the selected POST to the list of ELGG SOCIAL NETWORKS with a RANDOM profile
version 0.3b
- Here the customer will be able to test the concept of RANDOM profile posting (random selection of five)
. there are 5 profiles in the system, but it can be easily extended to more
.
.
MILESTONE VIII // YUI3 content editor (WYSIWYG and plain html mode)
version 0.4
- In this milestone will be implemented a YUI3 content editor (WYSIWYG and plain html mode)
.
.
MILESTONE IX // SPINTAX feature
version 0.5
- In this version will be implemented a SPINTAX feature to generate various article permutations
- SPINTAX enables you to write a single article, then re-word certain areas of it to read differently, but have the same SEMANTIC meaning.
.
.
MILESTONE X // FLICKR MASHUP TAG feature
version 0.6
- In this version will be implemented a flickr hook in order to auto insert a flickr MASHUP based on TAG in the content page
.
.
MILESTONE XI // ELGG accounts auto-registration
version 0.7
- In this milestone will be implemented ELGG accounts auto-registration
- The virtual user accounts must be created automatically (using proxies - user agent customization) for ELGG
DATABASE METRICS:
- we have from 200 to 1000 ELGG social networks
- we need multiple profiles for one network: 5 to 10 profiles per network
- typically 5profiles * 200 networks = 1000 captcha crackings
- In total we do not need more than 10 HUMAN REALISTIC, but fake profiles in our System, they should look respectable and like REAL PERSONS FROM THE REAL WORLD
.
MILESTONE XII // decaptcher and proxy support
version 0.8
- In this version will be implemented the features such as decaptcher and proxy support
- Cracking captcha via http://www.decaptcher.com will be implemented
- DeCaptcher CAPTCHA solving will be processed by humans, if automated captcha solver failes
.
.
MILESTONE XIII // accounts maintenance
version 0.9
- In this milestone will be implemented CHRON JOB for the monitoring of the each account PROFILE status on each network (typically 5profiles*200communities status records)
- It will periodically check if accounts are still live and perform re-registration process for deactivated ones, if necessary
.
.
.
MILESTONE XIV // VOLTAIRE BROADCAST application
version 1.0
In this milestone we will deliver the crown jewel of our mass article publishing system.
- The user will be able to create a BROADCAST JOB to be processed in BATCH
- In this conclusive milestone will be implemented BROADCAST repository/database
- BROADCAST record ::$site_url, $site_user, $site_password, $blog_title, $blog_body, $posting_status, $posting_timestamp
- Create, Delete and Edit feature of the BROADCAST records will be implemented
- In this version will be implemented monitoring of the Error/Success status report for entire batch job posting transaction in LOG posting report file
- Batch jobs are set up via WIZARD so they can be run to completion without manual intervention
- Batch jobs can be stored up during working hours and then executed during the evening hours or whenever the computer is idle, or when there is low internet traffic
- BROADCAST WIZARD features >
============================================
- BROADCAST JOB may be defined in this 3 step sequence dialogue >
*1of3* Article Page: here user can create, edit or select the ARTICLE to be broadcasted
*2of3* Profiles Page: here user can select the CUSTOMER_TAG for picking the profiles who will result as authors of the POSTED BLOG articles
*3of3* Sites Page: here user can select the SITES on which articles will be POSTED
============================================
As result will be generated a Broadcast_JOB file, and it is just a sequence of BROADCAST_TASK records, which can be saved for later deployment or immediately processed.
Each BROADCAST_TASK invokes "post_elgg_blog" subroutine and updates Error_or_success_status and Time_stamp fields in the record
============================================
.
.
.
MILESTONE XV // further improvements and implementation of optional features inside our main BROADCAST module
version 1.1
In this milestone we will deliver further improvements and implement new features inside the crown jewel of our mass article publishing system.
- In the first Edit Article page of our BROADCAST WIZARD will be implemented new optional features
============================================
Article Page improvements >
- a - - YUI3 WYSIWYG content editor
- b - - SPINTAX feature
- c - - FLICKR MASHUP TAG feature
============================================
.
.
.
Software strategic planning is the process by which the customers and developers envision the future together and set the necessary procedures and operations to achieve the desired software solution.
.
We think that tracking development milestones is a great way to monitor development progress and see which parts of the software are being developed, improved or fixed.
.
We can also see which parts of the software have not been planned, designed, coded and tested yet. The hardest single part of building a software system is deciding what to build, and how to approach to difficult problem, decomposing its complexity, by maintaining high development standards.
.

.
In the next MILESTONE CYCLUS will be implemented VOLTAIRE BulkArticleSubmitter for the other social-networks such as:
mediawiki,
openwiki,
tikiwiki,
macosx server - MediaWiki,
jisko,
hiku,
revou,
mahara
statusnet( laconica),
bloghoster,
lifetype
.
PLEASE NOTE: The planning process can be viewed as a somewhat spiral flow of topics and action steps, where the results from one step initiate study and action in the next step.
.
However, the development process does not necessarily always flow in one direction. Issues that arise in a particular solution may cause the planning team to go back to an earlier step to do additional work, implement new features and insert new milestones in the roadmap or refine the application functionality.
.
If desired, the order of the MILESTONES can even be altered to suit the particular needs of the planning team. The implementation step also does not end the planning process. Analysis of results could easily result in additional analysis or a change in strategic direction. Also, it is recommended that the plan be reviewed periodically, sometimes even on a daily basis in order to verify that all the base assumptions are still valid and that the implementation plan is progressing according to expectations.
.
.
BIG PICTURE ORIENTATION: Where you’re going?
“Programming without an overall architecture or design in mind is like exploring a cave with only a flashlight: You don’t know where you’ve been, you don’t know where you’re going, and you don’t know quite where you are.”
– Danny Thorpe
.
BIG PICTURE Vs. details: or "Can not see the forest for the trees" phenomena
Meaning you're focusing on details too much and can't see the "big picture."
Proverbial meaning: Cannot perceive the overview or important things because of concentrating too much on details. The information presented in this textbook is so disorganized that I can't see the wood for the trees. The politician's opponents claimed that she couldn't see the forest for the trees, because she spent so much time trying to solve minor problems.
.
Compartmentalisation of knowledge phenomena
My objection to the compartmentalisation of knowledge goes beyond its artificiality. I believe that it is actually dangerous, and detrimental to learning. It is dangerous because every domain of human knowledge has a moral dimension. We do not have the right to impose our own moral and ethical viewpoints on our clients, but we have a responsibility to remind them that actions and decisions have consequences. As professional solution providers, we are supposedly helping our clients develop skills and characteristics that will serve them.
Compartmentalisation is detrimental to learning in that it robs customers of the opportunity to immediately anchor new knowledge in the context of what they know and value. It is widely recognised that such anchoring is a valuable learning tool. Adding context to our SOFTWARE SOLUTIONS increases CUSTOMER interest, and may even inspire to explore new serendipitous inventions on their own.