Bill Bourne
I have over 35 years experience in the computer industry. I have been a software developer, architect, solutions architect, product manager, project manager, and executive. I have successfully managed large complex programs of over 400 staff as well as small agile projects. Currently I am an instructor and course author; teaching advanced programming techniques for ScalaCourses.com.
I am expert in the areas of:
“The Internet before the Internet” – one and two-way videotext systems and their applications over both telephone and cable TV, similar to today's internet;
Large distributed systems technologies;
Software quality, methodology, and delivery in the areas of process, practices, and architecture.
In the mid-2000s I sat on the Java Community Process Executive Committee (JCP-EC) overseeing the development of Java and JEE standards. I have over 25 years experience in large multi-site development and setting up successful offshore development relationships. I am a Certified Scrum Master and Certified Scrum Product Owner.
LITIGATION SUPPORT EXPERIENCE
July 2014 – Oct 2014: Personalized Media Communications, LLC v. Amazon.com, Inc. and Amazon Web Services, LLC, civil action no. 1:13-cv-1608-RGA in the district of Delaware. Retained by defendants through Knobbe, Martens, Olson & Bear, LLP. Researched prior art to support invalidity of nine US patents related to tele-shopping and web commerce, software downloading, assembly of partially complete documents, and other claims. The case was settled in favor of the defendants before going to trial.
Professional EXPERIENCE
ScalaCourses.com
Co-author – Introduction to Scala and Intermediate Scala courses Present
Develop and review lectures for the Introductory and Intermediate Scala on-line training courses.
SourceForm Consulting Inc.
Principal – Software Development & Agile Effectiveness Present
Provide consulting on software development process and practices improvement, from requirements through verification. While much of the work involves agile projects, we also consult to teams using other methodologies.
Much of our work focuses on the timeless software development practices that transcend particular methodologies: requirements specification & reviews, design reviews, code inspections, continuous integration, static analysis, designer automated testing, including TDD and verification test automation.
Mitel Networks
Development Leader, MiCollab Unified Communications 2013-2015
The MiCollab Clients suite includes a distributed server application, a web client, a PC desktop Client and iOS and Android Mobile Clients. The server application is a distributed system that maintains state with Mitel’s telecommunications call servers and multiple MiCollab Servers. Managed a three-site team, including India outsourcing to deliver releases and product support.
Avaya
In each of the roles I fulfilled at Avaya, I:
Led development of applications including server, web client, desktop client, and mobile client applications, working with multi-national teams, including India.
Established collaborative cross-project teams for development, agile lifecycle management, and code quality. I used a consultative triage process to set priorities.
Specified and implemented project-based metrics, including defectivity, code inspections, static analysis, design test automation, code coverage, and Q/A regression test automation, as well as a code quality scorecard for each project.
Helped each project establish their unique improvement goals, and supported them as they introduced code quality and project management practices.
Kept the focus on the improvement activities, in spite of urgent firefights for product delivery, field issues, and support releases.
Consultant, Practices & Organizational Maturity 2012-2013
Significantly improved delivery time and quality for all 12 UCA scrum-based projects. Received an award from the Avaya System Verification organization for my effectiveness.
Leader, UC Mobility Portfolio R&D 2011-2012
Responsible for product development of Avaya's One-X Mobile and One-X Communicator branded products, a suite of applications for mobile unified communications provided by a large-scale network. Products included server-based, desktop-based, and mobile clients. Services were distributed throughout the network and maintained state with Avaya’s call server elements.
Took over leadership of a demoralized multi-national team with high attrition, poor project management, an overwhelming product backlog, poor product quality, and turned it around and stabilized it.
Agile Lifecycle Management Coach 2010 – 2011
Transitioned the global organization to a single set of tools and practices, and significantly improved development discipline and project oversight. Established a global collaborative team for input and buy-in. Created detailed practice descriptions, including the high-level process, detailed practices, training material, weekly project review meetings, and standard dashboard metrics. Delivered Agile Scrum training to three sites globally.
Leader Advanced Application R&D 2009-2011
Quickly, efficiently, with minimal resources, incubate communications-enabled business applications and test them in the market. Grew and led a multi-national development that could get multiple projects to market in a 6 month timeframe. Provided extensive mentoring and training to build the team’s capability and performance.
Nortel Networks – Enterprise Business Solutions Division
Leader, Advanced Solutions Development 2008-2009
Grew and led a team developing a suite of applications that included integrated communications capabilities to improve business workflows and processes in healthcare, hospitality, and other specific markets. Coached and mentored the team in the disciplined adoption of Scrum and supporting practices and tools.
Nortel NETWORKS - Common Engineering Network Management Division
Had many roles as a senior architect, manager, and product manager related to the assembly, transmission, and management of documents, applications, and data in the management of telecommunications systems on this multi-national R&D program:
Software boot loading, downloading, and upgrades of operating systems to remote computers, including the disassembly and re-assembly of the documents for transmission.
The use of document transfer to collect operational data from remote computers and servers, including protocols for requesting, transmitting, and assembly of documents and information.
Distributed systems communications using the CORBA Common Object Request Broker Architecture to exchange documents and data between systems, as well as J2EE, and HTTP data transfer.
Request for proposals, requirements, and evaluation of 3rd-party distributed applications and components
Nortel: Senior Product Line Manager, Platform Strategy 2005-2008
Drove the strategic re-architecting from in-house development to 3rd-party products of a $37M per year, over 1.5M lines of code, distributed network management system.
Worked with product managers and architects in multiple business units to gather comprehensive requirements and build consensus.
Worked with a team of architects to define the new architecture, incorporating the 3rd-party products.
Project manager for major portions of the project. Identified short list of candidate vendors and managed the development of RFPs, and the evaluation of the responses.
Team leader of a project to define a Unified Software Development Process (USDRP) for the whole corporation. Drove its successful deployment, including CMMI Level 3 compliance.
Co-leader of a 12-person company-wide team responsible for the requirements development and management process.
Process architect on a small team that oversaw the overall end-to-end USDRP process architecture and definition.
Performed a full review against CMMI Level 3 specifications, to ensure the new process was compliant.
Senior Solutions Architect and Leader 2002-2005
Responsible for a team of architects that evolved a large, heterogeneous, distributed network management suite based on JEE and Java, legacy CORBA and C/C++, and HTTP based communications. The team defined the architecture for new components, as well as the evolution of the existing system to new technologies. Work included:
Migrating from legacy CORBA and C++ to Java and JEE, and HTTP-based technologies.
Defining the architecture and design for distributed communications to integrate new network elements, for new features and applications, and to integrate with 3rd-party systems
Supporting pre-sales engineering activities, including RFI and RFP responses.
Championed an initiative to establish a collaborative development approach for cross business unit projects by using a software development toolset and practices from the open-source software community for internal use (“Corporate Source”).
Created a value proposition to pitch the approach to directors and VP’s, obtaining executive sponsorship.
Investigated and selected tools, participated negotiations with the vendor to reach a contract agreement, and helped drive its adoption.
Gave a presentation on the solution corporate-wide to over 1,500 people via web cast.
Nortel Networks Common Preside Service Enabling Solutions Division
Division Director R&D 1998-2001
Responsible for the $50M+ annual investment, 400+ staff, 5 multi-national sites, 20+ project R&D for Nortel’s Network Management business unit, reporting to the division president.
Responsible for a large suite of UNIX-based, network management products based on CORBA, J2EE, and early message bus/message broker-based technologies for large, geographically distributed, heterogeneous telecommunications networks. Responsibilities included:
Initial migration from CORBA technologies to J2EE and HTTP-based distributed communications.
Managing distributed processing through a hierarchy of systems, where information is collected, partly processed, sent to a higher-level system for aggregation, and another system for presentation.
Supporting a geographically distributed application of UNIX systems to allow operations centers to be staffed at geographically separated locations in a coordinated way.
The provisioning of circuits in a telecommunications system, which required an accurate view of the state of a large number of network elements to be maintained, and the ability to make multiple changes to network elements in a set of coordinated steps that could be backed out.
Transformed the R&D which, when I joined, was slow, repeatedly over ran its reforecast delivery dates, and could not react to changing business priorities:
Defined and implemented a set of development processes and practices, that took into account the complex and changing nature of the program.
Implemented a major organization and cultural change from fixed R&D groups organized by product, to a flexible “pool” of resources organized by function, including an ability to quickly re-prioritize and re-plan projects based on changing business requirements.
Successfully addressed a shortage of staff, high costs, and staffing agility by introducing an outsourced development capability in a low cost site which grew to 130 staff.
Key to the success was defining mutually agreed plans for training outsourced resources with expat assignments to Canada, and having outsourced managers gradually take on accountabilities and responsibilities similar to in-house managers.
Nortel NETWORKS – Optical High Capacity Transport Division
Lead software architect, manager, then senior manager for developing large software systems for Nortel's High-Capacity Optical suite of network elements, a complex, distributed, embedded system. In this system, over two-dozen individual highly intelligent "cards" operated as a distributed system. A great deal of early technology in concurrent distributed systems was developed in the 1980s and 1990s for complex intelligent telecommunications systems. This including managing configuration, operating state, performance, supervision, and isolating faults across distributed systems on cards operating as a single entity. The system used C/C++ and automatic code generation of Real-Time Object-Oriented Method (ROOM) based designs.
Senior Management, Common Framework Software 1997-1998
Led a team of 90 staff responsible for the common software components and frameworks used across four product variants and over two-dozen intelligent H/W cards. With the Director and other senior managers, designed a new organization structure to successfully support the growing product line:
Established the unified software platform organization; including the software build architecture and improved processes.
Introduced formal code inspections. Improved S/W quality by over 20% while reducing schedule and costs, on a software base already considered high quality. This allowed support costs be kept down as the product-line’s sales grew past $1 billion per year.
Manager, Software, Harlow UK (Expat Assignment) 1994-1997
The expat assignment was to assist in the integration of the Ottawa and Harlow development teams that were brought together by an executive management directive. Responsible for the team developing the architecture and design of the supervisory and control software.
Led the definition of the program’s top-level software development process. The process was pointed to as a best practice for an effective, simple process. It remained in use for 10 years.
Gathering input from multiple stakeholders wrote the process and drove it through reviews to get acceptance.
Prepared for ISO-9001 audits and achieved certification.
Reviewed the existing quality system, processes, and practices against ISO 9001 requirements. Identified gaps in the group practices and compliance.
Did the work required to address the issues - creating simple documentation for the team, and mentoring them.
Manager and Architect, Software Development 1992-1994
Selected by the vice-president as one of 3 S/W architects/managers to initiate the product development.
Wrote major sections of the product requirements and architecture.
Successfully grew the team and launched S/W design. Drove detailed reviews of the architecture and design to establish the project direction.
When projects in Ottawa, Canada and Harlow, UK were brought together by an executive management directive, was a member of the team set up to integrate the two project’s processes, architecture, and technology. Acted as facilitator and consensus builder to get alignment of teams with entrenched positions and strongly held opposing views on process and technology.
Nortel Networks – FiberWorld Element Management Division
Architect and Manager 1989-1993
Led the development of the Operations Controller, a UNIX and OSI standards-based real-time controller for Nortel's FiberWorld communications networks.
Worked on systems that managed, configured, and supervised a distributed system of highly intelligent communications network elements.
Communications was based on the ISO standard OSI network protocol stack.
Many applications involved distributed state, such as configuration management.
Network software upgrades of two-dozen intelligent network elements were performed using distributed protocols. The complex software upgrade process was stateful, and the previous state of the system was reverted if an upgrade failed.
Nortel Networks – CAD/CAM Software 1985-1989
Systems Architect 1985-1989
Responsible for the overall architecture of a multi-million-line suite of applications for integrated circuit and circuit board design.
Drove the successful migration of the entire system from IBM Mainframes to Unix workstations.
Introduced Lisp as an embedded programming language in the applications that improved agility in meeting customer’s needs and extended the life of the product suite.
Logo Computer Systems (LCSI) – Educational Software
Manager S/W Development – Montreal, 1983-1985
LCSI provided the programming language Logo to all major personal computer vendors in the late 1970s and early 1980s.
Acting as "playing coach", managed the software development group while also doing design and development. Introduced S/W development planning and practices that turned the team from being un-predicable and ad-hoc to delivering on schedule.
Led the Macintosh Logo project, developing Mac software starting in July 1983, 6 months before the Macintosh was introduced, developing the User Interface portions of the product.
Worked directly with members of the original Mac development team in Cupertino, and the Microsoft Word 1.0 Team in Redmond to deal with bugs in the early Mac ROMs, and find solutions to design issues and limitations.
Artech Digital Entertainment – Video Games, OTTAWA
Principal, & leader of S/W Development Environment, S/W Developer 1982 - 1983
Created a successful video games company with a sustainable competitive advantage. With 5 other principals, founded a video games business based on exclusive rights to a major comic strip franchise and a unique knowledge of a major gaming platform.
Reverse engineered a new popular gaming platform, making us the first independent developer with the ability to write games for the platform.
Built the development environment used for all games development.
With the other principals, created the business plan for the start-up, assisted with negotiations with major game vendors and distributors, as well as the sale of the company to a publicly listed company in a share exchange to obtain capital for the enterprise.
A number of our games made the Billboard top 40 video games list. The company was highly sought after by major games developers like Activision for its expertise.
Nabu Manufacturing
Manager Nabu Personal Computer Software Development 1981-1983
Responsible for all firmware, software and delivered software content:
Managed a team of 15 software developers
Personally wrote the BIOS for the Nabu Personal Computer
The Nabu “wheel” was an innovative mechanism for distributing documents, programs and data to personal computers over a 1-way cable system. Worked with the “head end” computer team to design the protocol used on the cable for transmitting data and documents to the Nabu Personal Computer.
Assisted in the development of the initial operating system loader that loaded the Nabu Personal Computer OS from the head end via the cable modem.
Personally developed the common architecture, design patterns, and development environment used to develop software applications for the Nabu Personal Computer.
Assisted in the design of a number of games and information applications for the Nabu Personal Computer.
Represented Nabu on the CSA Working Group on Videotex, which developed the NAPLPS (North American Presentation Level Protocol Standard) used by Telidon and other early interactive TV systems.
Bell Northern Research
Member of Scientific Staff – Special Services Exploratory Group 1978-1981
Principal Developer of Bell Canada’s Vista Videotex System:
Member of a small team which developed Bell Canada’s Vista Videotex System, a text-based videotex interactive TV system for transmitting documents from a server to a client computer.
Key participant in the overall design of the system. This included researching the various videotex architectures and systems at the time, and working with Bell Canada to select an architecture and develop requirements and system specifications.
Solely wrote the content creation system, which used a graphics-based microcomputer to allow non-technical graphics artists and creative writers to quickly create documents by drawing and typing. The system translated the high-level What-You-See-Is-What-You-Get screens into the low-level text protocol to be transmitted within the videotex system. This content creation system was unique globally, and praised by Bell Canada for allowing them to generate significant amounts of content quickly.
Principal Developer of the Nortel DisplayPhone:
DisplayPhone was the world’s first integrated voice and data terminal. It was an exploratory project, envisioned as a “home data terminal” to allow consumers access to interactive, transaction services like home banking and shopping.
Solely wrote all of the software for the DisplayPhone.
Major contributor to the user interface design.
Designed the data communications protocols, including special protocols for transmitting forms documents and returning the filled-out documents using an executable LISP-like language, analogous to PostScript for printing and JavaScript for Web Browsers.
Volunteer Professional and Community Service
-
Member of the CSA Working Group on Videotex, which developed NAPLPS (North American Presentation Level Protocol Standard) used by Telidon and other early interactive TV systems 1981-1983
-
Java Community Process (JCP) JSE/ JEE Executive Committee member 2005/2006 – the governing body for Java standards
-
ACM OOPSLA/ECOOP 90 Conference Treasurer 1989-1990 – OOPSLA was the largest single ACM conference at the time, with a budget of over $1M
-
ACM OOPSLA 89 Conference Tutorials Selection Committee member, 1989
-
Co-Leader of the Ottawa Carleton Research Institute (OCRI) Special Interest Group on Object-Oriented Design and Programming, 1987-1988
-
Gatineau-Ottawa Agile Tour 2013, 2014, 2015 Conference Organizer (present)
-
Agile Ottawa (Scrum Alliance Affiliated) Meet-Up Group Organizer (present)
-
Ottawa Community Immigrant Services Organization (OCISO) Career Mentor (present)
-
Professional Engineers of Ontario Engineer in Residence Program, volunteering in high schools supporting student projects. (2002)
-
Board of Directors, Ottawa Youth Orchestra Academy, 2004-2007
-
Board of Directors, Ottawa Waldorf School, 2001-2003
EDUCATION, Training
-
Bachelor of Engineering (B.Eng.), Electrical Engineering (Systems) – Carleton University Ottawa, 1978
Undergraduate project: Detecting Spinal Evoked Potentials in the Surgical Correction of Scoliosis - Research project conducted through the National Research Council to detect potential spinal nerve damage during surgery and warn the surgeon before the damage occurred. The anterior tibial nerve of the foot was stimulated at the ankle, and the signal was detected at the base of the neck. I successfully wrote the signal-processing software to extract the very weak signal from high background noise, especially dealing with large ECG artifacts.
-
Certified Scrum Master (CSM) with scrumalliance.org
-
Certified Scrum Product Owner (CSPO) with scrumalliance.org
-
Coaching Agile Teams, Agile Coaching Institute, accredited through ICAgile June 2013
-
Enterprise Java Developer Certificate, Algonquin College, 2012
-
Coursera university level courses “Functional Programming in Scala” (University of Lausanne), “Programming Languages” (University of Washington), 2012
-
Senior Management Achieving Business Excellence (4 week micro-MBA) – Ottawa, Montreal, 1997
-
7 Habits of Highly Effective People – Covey Leadership Center, London UK, 1996
-
Government of Canada Enhanced Reliability Security Certificate
Presentations and Publications
Product Management is a Team Sport! – For the Agile Ottawa Meetup group, Ottawa, ON, July 7th 2015
Agile Project Inception - Getting Aligned and Making Commitments, for Gatineau-Ottawa Agile Tour conference, Ottawa, ON, November 24th 2014
Bill’s Scala Open Notebook – An on-line notebook with information on Scala, its libraries and tools (on going) http://www.sourceform.ca/notebooks/
Bill’s Agile Coaching Open Notebook – An on-line compendium of Agile coaching references, tools and techniques (on going) http://www.sourceform.ca/notebooks/
Transforming Network Management – In the Nortel Technical Journal, February, 2005
“If I Were President of ParcPlace” – Presentation given to the Ottawa-Carleton Research Institute (OCRI) Special Interest Group on Object-Oriented Technology, 1987
Anteversion of the Acetabular Cup: Measurement of Angle after Total Hip Replacement, in the Journal of Bone and Joint Surgery, May, 1986
Development Methodologies and Tools
Methodologies:
Waterfall
Agile Scrum
Agile Lean/Kanban
Rational Unified Process
ISO-9001 and TL-9000
SEI CMM
Real-Time Object-Oriented Method (ROOM) and ObjecTime
Shlaer–Mellor method for Object-Oriented Analysis
Unified Modeling Language (UML)
Tools:
Rational DOORS (requirements management)
Version One (Agile requirements & lifecycle management)
Rally (Agile requirements & lifecycle management)
Atlassian Jira/Jira Agile (Agile requirements & lifecycle management)
Collabnet ScrumWorks Pro (Agile requirements)
Rational ClearQuest (defect management)
HP Quality Center (test case management)
Atlassian Confluence (wiki and dashboards)
Atlassian FishEye & Crucible (code reviews, revision control browsing)
SourceForge open source and commercial versions
SonarQube (metrics, dashboards, static analysis)
Coverity, Klocwork, FindBugs, PMD, CheckStyle, (static analysis)
technologies
Java, JEE, JBOSS, IBM WebSphere (application servers)
Java Servlets, Apache Tomcat, Jetty, Apache (web containers)
LAMP (Linux Apache, MySQL, PHP)
Web Services - SOAP, WSDL, REST
CORBA – Common Object Request Broker
Git, Subversion, Rational ClearCase (software source control)
Atlassian Bamboo, Jenkins, Maven (S/W build & continuous integration)
Apple iOS & Objective-C development (mobile applications development)
Apache Cordova/Adobe PhoneGap (mobile applications development)
Eclipse and IntelliJ Integrated Development Environments
Scala, SBT
XML, XML Schema, DTD, XSLT, XSL-FO, SAX
Web 2.0, HTML 4 & 5, CSS, HTTP
SQL & databases: MySQL, PostgreSQL
FORTRAN IV, APL, Pascal, Lisp, PL/I, REXX (Programming languages)
Assemblers: 8080, Z80, 6802, 6502, 68000, PDP-11, and PL/M
SONET/SDH Optical Transport Systems
SNMP. ASN, TL-1, CMIP, eTOM, TMN, GDMO (Network management standards)
Operating Systems Used for development
Apple II DOS
CP/M
DEC VAX VMS
IBM Mainframe OS – VM, CMS, JCL, REXX
Red Hat Enterprise Linux, Sun, HP, Apollo Unix
Wind River VxWorks
Mac OS software development
Apple iOS software development
Software User Experience
Microsoft Project, Office, Visio
OmniFocus Omigraffle
Telestream ScreenFlow Mac, Adobe Photoshop Lightroom
Multiple wiki systems
Markdown and Markdown based document generation – Jekyll, Octopress, Pandoc, etc.
Share with your friends: |