Professional Profile - Michael Charles Gorman BSc PMP
I have been consulting in project environments for most of my career. I started as a software tester and technical writer for CAD/CAM software development projects in the late eighties, and soon after became involved with opto-mechanical and DSP-based electronic engineering projects. I worked within small project teams and managed all my documentation work as projects. I was typically the sole writer for all aspects of development – class library documentation, developer tutorials, user guides, release notes, help systems and online API documentation on these projects. During this period I was mentored in technical communication by Deborah Ritchie, who was an award winning technical writer and author and was the lead writer/editor for the Multimate word processing system. She helped me refine my writing style and adopt it to writing for technical and non technical audiences. I also developed VBA utilities to create documentation from Visual Studio by importing and formatting code extracted from C and CPP files (similar to Javadoc or Doxygen). I worked closely with QA departments and worked with drafting, mathematics, mechanical engineering, and NC machining experts. I cooperated with product managers by participating in trade fairs and even attending parties with their important clients (e.g. Kubota).
By the late nineties, I had begun working with project teams creating multi-tier and distributed systems for financial applications development, banks and a supply chain consortium. This included Java development (JEE) and experience with relational databases. I started developing web pages with Javascript and creating ASP/Access applications. My role expanded from that of a technical writer to a knowledge portal developer, business analyst, publisher and database analyst. Members of these teams formed a new start-up, Ubikuity Corporation, to develop an IDE to auto-generate enterprise Java applications from UML workflow diagrams modeled in our Spring application via XMI. I jumped onboard and became involved as their technology writer, web site developer, and business analyst. We were bankrolled by a consortium that included Walmart, United Paper, and Coca Cola. The idea was for our tools to generate intelligent software agents that would configure, manage and track diverse RFID devices for supply chain management applications. This was exciting work and I was able to author foundation writing for early adopters of this new technology. We also did custom development for other supply chain clients to support our development. I ended up a part owner of this company, with a share in its IP, before economic conditions brought an end to our start-up.
I worked with some great project managers, product managers, and developers during this period who were open to my full participation in all aspects of software design and business development. I contributed to software design from the bottom up and gained a great deal from my association with these fine people.
After the dot com bubble burst, I consulted with GE Industrial Systems as a business analyst and technical consultant, developing an XML/XSLT toolkit for translating autodealer order forms and managed the completion of the process design and software for order sequencing on Land Rover's assembly line. I had frequent contact with the end client and participated in design reviews to guarantee their acceptance of the product. I also documented GE's HMI application CIMPLICITY, which allowed industrial SCADA engineers to graphically 'animate' assembly line processes using Visual Basic, working out of My SQL database, and called C++ code modules which interface with production line PLC controllers through DCOM protocols. I also worked in development of their IHistorian statistical reporting tool.
I then consulted with Charles River Consultants in New York, working with its CEO on business development – writing formal project proposals, managing web development projects, developing telecommunication service offerings, and writing RFTs for outsourcing software development to companies/products that this organisation had acquired. This management involved both service and marketing contact with their clients and potential clients, including interstate travel and attending trade fairs.
I moved to Australia in early 2005 and was engaged as a consultant managing software development projects for the Nurses Board of Victoria (NBV). I was initially engaged as a consultant to provide documentation for IT infrastructure project and manage the change for staff transitioning from a Lotus environment to Active Directory/Exchange system. However, soon after this was accomplished I was asked to provide formal project management to:
Cycle 1:
During the first SDLC I managed an external software vendor who had been contracted to provide the solution. I was not involved with the early planning, initial tender, or vendor selection. I was brought in as trouble-shooter to co-manage the project midway through execution when it became clear to the CEO that UAT would not start on time and business-critical milestones for delivery would not be met. The vendor's business analyst resigned and had not been replaced. Despite the fact that the system was only 50% implemented, the vendor's account manager had instructed the developers to stop new coding except as a “change request” and was re-assigning developers to new projects. The remaining developers were understandably frustrated and without direction, not understanding the requirements and because of language difficulties and contradictions in the incomplete specifications (basically wireframes with little documentation) which their absent business analyst had provided them. Within a month the UAT started as scheduled but was a complete disaster. A nurse application could not be processed to completion, a payment could not be allocated and a banking statement could not be generated. Untapped errors were frequently occuring defects and the database had become corrupted with bad data. Despite all promises, six weeks of daily patches did not produce a more stable product. To turn things around I organised weekly design reviews with the lead developer and their project manager, occasionally including their other developers and testers, to review the specification for the most business critical modules and components. In priority order I revised and completed the functional specifications and completed the process swim lanes to make the meaning clear and unambiguous according to the initial product objectives and business need as stated in the start-up documents. I worked with the vendors testing team so they understood the requirements well and were able to revise their testing routines with the clear functional specifications, process diagrams, and use cases I provided. I tracked issue resolution and managed the contract, working closely with NBV senior management to encourage a successful delivery without budget blowout.
I completed the specifications for the financial management module, functionally integrating this module with other modules where payments were receipted, allocated, banked, and reported. I completed the scheme for mapping legacy Lotus records to the new systems relational database so that legacy payments from the old Lotus system would be represented correctly in the new system, and completed pre-UAT testing in a virtualised staging environment I developed using Vmware. To ensure consistent builds, I checked-out and built and published all deployments from Visual Studio and implemented strict change control. I mentored a new staff DBA/applications officer brought on to releave me of some of these duties and trained him in management of the database and deployment/configuration of the application and another public web site (.Net Umbraco) provided by the vendor which worked out of a MS SQL database and communicated with the primary REX application through a small number of web services.
In March 2007 a second UAT followed, this time successful (accepted) although the implementation was still incomplete according to the contract's requirements. This was accompanied by user training sessions that I provided with my co-project manager. She left the organisation at about the same time, and the vendor-side project manager also left her team just before the next critical milestone – the commencement of the nurse annual renewal period. Another crisis occurred when the Umbraco web site failed to perform once peak loads of renewal form transactions and online payments started. Peak loads made Umbraco's MSDN SQL database fail quickly and vendor was without a solution. At my suggestion we migrated the web site's database to SQL 2005 on a stand-alone server and virtualised the web site's web server, migrating the working test environment (build on on a textbook-clean install of Windows 2003 Server with service pack) to a cloned virtual machine on an VMware GSX server. This action prevented the loss of half the Board's annual income and catastrophic loss of reputation that would have incurred from this failure.
The Board was most gracious and responded by sponsoring me for permanent residency, hiring me as an employee and allowing me to telecommute half time from Perth. I am very effective working remotely and managed project teams by Skype, conference calls, and video-meetings. My former manager at NBV can vouch for my ability to work responsibly from a distance.
Cycle 2:
The second cycle was meant to complete the initial requirements and make enhancements for changes required by new Victorian legislation. After several more months attempting to work with the vendor to complete the initial requirements, executive management decided to release the vendor from their obligations. The second cycle of development was brought in-house where I managed my own team of (2) contracted developers, (1) staff tester, and (1) staff database administrator. These were very capable people who were well motivated with the aim of creating a solution for national registration scheme. I created EDRMS database diagrams using Visio to assist in refactoring the database and implementing more business integrity rules in the database. I used Doxygen to generate code documentation framework and we began the task of properly document the code and database.
We performed extensive refactoring of the application – eliminating unused methods, consolidating code (reducing redundant code and making code re-usable), enhancing and breaking out web services as a separate Visual Studio 'solution' that could be built and deployed independently of the primary application. We replaced the vendor's proprietary method of auto generating the data interface classes by integrating Nhibernate to manage persistence.
We conceptually organised the largely function-oriented code into logical 'business objects' and took the first steps toward refactoring code for these business objects along the lines of object-oriented development. This started with case management components common to all of the application modules.
We released an enhanced version fully supporting the original requirements of the entire organisation in January 2009. In addition we began implementing business process management to externally define the flow of case management in order to flexibly accommodate the rapid changes to business rules an organisation like NBV faces due to continually changing statutory obligations. I created business process flows in Eclipse Workflow Designer and Intalio Process Designer. We generated frameworks for a JBOSS process engine from these and implemented basic case flow management for the Professional Conduct cases at the Board. More enhancements for new Victorian statutory requirements and the COAG's national registration scheme (NRAIP) were planned in detail.
My Role in the Liferay/CMS Project
One of my projects was design, development, implementation, user-acceptance staging, and production deployment of a Liferay CMS portal (Java-based) to replace NBV's old public-facing web site. This project required us to develop compatible, standards-based portlet applications for NBV's online registration renewal, subscriptions and university course accreditation business functions; and also to provided a simple means for our internal users to generate content and to update web content and documents.
As project manager my philosophy is to put on whatever “hat” is expedient in order to be a valuable resource to all of my team members, stakeholders, and product customers/users.
Mostly I wore the project manager hat, developing a formal project plan that included a project charter/mandate, project brief/start-up, scope/time/cost management plan, work-breakdown according to requirements, risk management, and communication management plan. I organised the project activities in phases and coordinated schedule, resource requirements, cost and dependencies in MS Project between this and my other concurrent projects. The project timeline had to observe some critical milestones that were unmovable because of the statutory obligations of the Board (i.e., nurse annual renewal period starts and stops on deadlines determined by the 1993 Nurses Act/ 2005- HRPA). I set up MS Project Server and SharePoint MOSS to integrate the project timelines with MS Outlook for notifications and reporting.
The project team consisted of (2) Java contract developers, (1) contract CSS designer, (1) Adobe artist, (1) staff DBA, 1 staff tester, and one content editor.
I feel this project benefited greatly from the Project-Smart Project Management Professional certification training course I attended during this time. From beginning to end, this project was managed according to PMBOK methodology with all essential plans completed with the necessary sign off. Through this approach the project was delivered on-time and on budget (we released three weeks before the start of the nurse annual renewal period). I closed the project gaining formal acceptance from all stakeholders.
A bit about the historical background of this project:
Historically, NBV had two previous web sites. The first was based on Lotus/Domino technology and worked with their internal NBIS Lotus application's database. When an external developer replaced NBIS with a new web-enabled .Net system (named REX) in May 2007, a new public web site based on the .Net open-source Umbraco content management system (CMS) was deployed. This CMS was selected by the external developers because it is based on the Microsoft .Net technology they use to create web sites for their other customers. However, NBV found this system as delivered was inflexible: this inflexibility even extended the inability to change the colour or spacing of text blocks, changing the wording for an online questionnaire required recompilation of code, new versioning and of necessity a round of regression testing. In addition online services for employers, educators and regulators were never completed. Nurses reported that their sessions were interrupted and others were able to access online renewals but were unable to complete a payment to the external payment gateway. The project suffered from the external software vendor's ineffective project management and constant staff turn-over; they frequently re-assigned developers to newer 'high priority' projects, bringing on inexperienced staff unfamiliar with NBV's software product and business. The only practical alternative was for the NBV to source, contract and directly manage their own dedicated developers, web designers and content writers. We contracted the project team from freelance sources, contract staffing organisations, small consultancies (where temporary expertise was needed) and by re-assigning internal staff. I coordinated this process with the assistance of NBV's HR manager, communications director and the CIO.
Rather than reliance on third party vendors and unsupported or community-supported open source software platforms, only viable tools for which a major vendor offers optional support contracts were to be considered. We selected the Liferay portal because it is a free, standards-based, open-source software package in wide distribution for which optional support contracts can be purchased from Sun Microsystems. For the greatest interoperability, widest application integration potential, and localisation support, this portal is based on Java software development kit. Java is the most mature and capable language for web development and has been used extensively (almost exclusively) by the finance, banking and e-commerce industries. Standards-based development (especially the Struts / MVC (model-view-controller) paradigm and JSR-168 standard for portlet development) means that if there is ever a reason to migrate to a different portal platform (other than Liferay), the custom Java portlet development work can be easily transferred to any other standards-compliant platform.
The Liferay approach supported the development of diverse “communities,” which allow web content to be targeted to customers of different types, or in different locations, through a centrally administrated portal; supporting multiple time zones, languages and currencies. Customers may enjoy a personalised web experience tailored to their log-in profile and its assigned customisable “roles.”
Our approach used Struts to separate the presentation and content aspects of the web site from the technical implementation. Web designers and content developers were provided an administrative-design view requiring typical web-design skills (HTML, CSS, XML, Graphic Design, Form Design, Scripting, and Flash Animation). This view included workflow (revision and approval control) for web content and allow the designer/editor to fully preview all aspects of changes before approving them for public view.
The result was a portal web site that provided the ease and usability for the benefit of the public and nurses who are not skilled Internet users. Practices in use by other major public portals (Yahoo, Google, etc.) for sign in, profile management, etc. were followed to make it easier for those unskilled to learn and benefit from the experience of others. Better error checking and more meaningful error messages helped eliminate the stress for nurses in the process of completing their online renewals, making address changes and submitting payments online. Full text search of all web page content helped users quickly find the information they were after. Gradually the content developers made use of the free open-source portal components (e.g., Blog, Forum, RSS News, Wiki, etc.) that Liferay provides out-of-the-box.
Altogether we coded four JR-168 compliant custom portlets:
My Role in the EDRMS Project
This is actually the first project I began managing at NBV. When I started at NBV, document management had been a topic for discussion at NBV for some time, but nothing came of it. Along with the department managers, I attended demonstration of various systems including a demonstration of SharePoint at Microsoft's HQ in Melbourne. NBV was very concerned about their ability to properly manage obligations for document disposal mandated under the Public Records Act. But despite the talk nothing came of it. Because of my documentation expertise and software development experience I was asked by senior management to develop a formal approach to initiating a document management project for both electronic and hard-copy documentation.
Because of its governance approach, common application to IT projects and association with ITIL standards, I selected the Prince 2 project management methodology. I developed a complete set of formal Project start-up documentation (Mandate, Brief, and Initiation), gained sign off from the CEO who ran NBV at that time. These documents incorporated my recommendations based on research into the organisation's internal policies and procedures; legal obligations under the Public Records Act and Privacy Act, Public Records Office Victoria standards and guidelines; and interviews with the key stakeholders across the organisation and my analysis of their processes and workflows. The plan called for a gap analysis and feasibility study to determine the business need for features of EDMS or EDRMS systems, such as document workflow management, metadata tagging, privacy/security features, distributed architecture features, document search, document encapsulation for archiving, and meeting statutory obligations. Because of the statutory component, I engaged a consultant who was a member of the Victorian Public Records Advisory Council and a specialist in EDRMS implementation to assist in the feasibility study. Together we interviewed stakeholders extensively thoughout the organisation, created document workflow diagrams based on my interviews and reviewed the document disposal authority that NBV had received from the Public Records Office of Victoria. The gap analysis justified the need for an EDRMS on statutory grounds alone. The potential for integration with the primary REX application, enhanced workflow management features, and integration with intelligent document scanning software more than justified over the cost as permanently storing and regularly retrieving the paperwork of over 80,000 practicing nurses and as many inactive accounts in a physical approved public record archiving facility. In addition the EDRMS substantially supported other concurrent projects such as supporting disaster recovery operations and providing management for the electronic and paper documents associated with nurse registration and case management records in the primary REX application database.
Working from a template the consultant had provided, I developed a detailed functional requirements document specification based on my stakeholder and document workflow analysis. From this I drafted a formal request for tender document.
Reviewing the various systems, we reduced the field to a short list of commercial off the shelf EDRMS solutions sourced in Australia that could be customised and configured for NBV's business. Because of the delay in completion of the REX project and the intensive stakeholder involvement in that mission critical project, senior management determined not to go forward with the EDRMS tender immediately.
However the primary vendor for one of products on the shortlist, Trim Context, was already a preferred vendor of our other IT network server and VOIP systems. With the support of the IT manager, we made contact and discussed some of the potential integration aspects (the primary application REX). The vendor provided us with a 'test installation' for our lab. We began prototyping how we would call the Context's API from our application code and updating our workflow diagrams to include scanning facilities. My plan was to have our internal development team perform the integration between the primary business application (REX) and the selected EDRMS. I planned on managing as follows
Based on the test software and API documentation we had a fairly complete plan for integrating with Trim. We arranged a further demonstration of the Kofax scanning system for our stakeholders with Alphawest, where stakeholders evaluate the automatic and manual modes of its optical character recognition and metadata tagging system with samples of our nurse application and renewal forms.
Sadly the EDRMS project was the first project to be closed down, followed by the other software development projects at NBV. Our former CEO, who had been most supportive of these initiatives, had left the organisation. A new CEO was eventually nominated, however the Board itself felt that there was no justification for it to continue systems development and implementation because COAG had succeeded in getting approval from the states and territories for the national NRAIP scheme, and as a result NBV would soon be subsumed by the Commonwealth's health practitioners board.
Because all of my projects were completed or closed down I resigned from the Nurses Board of Victoria in March 2009, parting with this organisation on good terms. I immediately took advantage of my down time studying up and taking the test to gain my certification as a Project Management Professional from the Project Management Institute. I have since relocated to Perth and established my business, Project Studio Condulting, in Western Australia.