Maestro Progress Update

There are two perspectives to keep in mind when managing a project. The first is a crisp motivating vision of the goal, the second is the path to goal. The challenge is finding the path that best balances cost, time and quality, taking into account technical and operational risks and constraints. Oh, and did I also say the path needs to changes as new information becomes known, risks become better understood, new skills are learned, team members come and go…

Also, periodically review the individual steps on the path. Are the risks acceptable? Should a step be simplified or re-factored? Are there appropriate contingencies available? Backcasting can also be a useful technique, working backwards from the goal to the current position (Harry Tucker has a great backcasting visual).

Getting back to the Maestro project…

Maestro Platform Iterations

Maestro is now in its fourth platform iteration:

  • Platform 1 – Loosely coupled web apps (WebERP, MantisBT, OpenDocMan)
  • Platform 2 – Full-custom monolithic web app (Yii Framework)
  • Platform 3 – ERP framework (Tryton) with Integrated web apps apps (MantisBT, OpenDocMan)
  • Platform 4 – Single ERP web app (ERPNext)

Platform 1

Platform 1 was a loose integration of three separate web applications. Each application had integration points to the others as appropriate, such as from an Item in WebERP to the control documents for it in OpenDocMan, or from an Issue in Mantis to the Item in WebERP, or related documents in OpenDocMan.

|-- WebERP
|-- OpenDocMan (document control)
|-- Mantis (issue management)
\-- Launch portal (simple HTML page)

Development moved to Platform 2 after the initial prototype showed the effort to understand the underlying architectures, data structures, and different coding styles of each application, and to create an overall cohesiveness, would be greater than the effort saved by using separate applications in the first place.

Platform 2

Platform 2 was a full custom web application based on the Yii Framework. A prototype was completed with a rudimentary Parts module (including CSV and PDF export) and Order module, but development moved to Platfrom 3 in March 2014 after departure of a key team member. 

Platform 3

Platform 3 was a throwback to Platform 1 (a collection of loosely coupled applications), but with the Tryton framework (including native desktop client) replacing webERP, and WordPress replacing OpenDocMan. OpenLDAP provided a single point of user management and authentication, a self-contained messaging system was provided with Postfix, Dovecote and SquirrelMail, and WordPress provided a launch portal and document control system.

Maestro development moved away from Tryton in September 2014 after the completed prototype showed the need for both core development as well as a simplified domain-specific web-based user interface, and doing both was  beyond the ability of the project team.

|-- Tryton
|-- Desktop Portal (WordPress)
|   |-- Notices (posts)
|   |-- User Manual (pages)
|   \-- Documents (WP Document Revisions)
|-- Issues (Mantis)
|-- Messages (SquirrelMail)
\-- Users (phpLDAPadmin)

Platform 4

In the same way as Platform 3 was a throw-back to Platform 1, Platform 4 is a throw-back to Platform 2 – a single integrated web application. However, instead of a green-field development, Platform 4 is based on ERPNext.

After development moved away from Platform 2, but before starting Platform 3, two web-based ERP systems were evaluated – ERPNext and OpenERP/Odoo. Although both showed promise, Odoo had a significant learning curve for core development that would be needed, and ERPNext was still relatively young and immature. However, over the course of Platform 3 development, ERPNext made such significant progress that it became feasible to use for Platform 4.

2 Replies to “Maestro Progress Update”

  1. hi

    I’m on the same way but… step 0! please help me? :

    I intend to build a web site, as an apps market place for family needs: shared info from emails to tasks, budgets, photos, calendar, and open to any new external modules from users (so I’ve selected Python, as it’s the easiest and cleanest language, vs java, JS, and other CaML…)
    I’ve been reading a lot about various frameworks (Django for instance), ERPs (Odoo, Tryton, ERPNext, but also OFBiz, ERP5, Compiere, …).
    Odoo looks like not enough solid for being a mass market web site (designed for 1-200 employees, and core team forked to Tryton for making a more robust core). I don’t know ERPNext but it looks more modern, based on web apps instead of in premisses…
    But I’m not techy enough.

    Any comment, suggestions, other opensource to check, item to check, advises…?

    Thanks a lot!

    1. Hi nicolas, if web app development is completely new to you, I suggest you look at WordPress and the selection of community plugins to create your family web goto site. If it’s not completely obvious, is a vanilla out-of-the-box WordPress site (running on an old Pentium box in my basement). The only plugins installed are:

      • * Akismet
      • * Contact Form 7
      • * Enable Media Replace
      • * Google Analyticator
      • * Maintenance Mode
      • * NextGEN Gallery by Photocrati
      • * Page Links To

      However, there are many, many plugin’s available, and chances are good you can build the feature set you want from what is available in the plugin library.

      Of course though, building your web app this way it will never be *exactly* what you want. For that, and since you have already selected Python, I’d recommend building the site with Django. Get a good intro book on Django, build the tutorial in the book, and then customize it to your liking.

      Stay away from ERPs (Odoo, Tryton, ERPNext…) for what you have described. ERPs are created to deal primarily with financials, including sales, purchases, stock, assets, etc., and although many also offer features you are interested in, their inherent complexity means doing what you want will be far more complicated than if you started with a simpler platform (e.g. WordPress) or framework (e.g. Django) instead. Good luck!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.