Last year I experimented with the market as I was feeling rather undervalued and not appreciated at work, more so looking for positions that offered more senior roles that wasn't being made available to me at the time. One of the companies I applied to was the BBC. BBC is considered the grandfather of broadcasting not only in the UK, but quite possibly world-wide. They have quite an intense application process with setting up an online profile, online testing with scenario videos, psychometric tests and the lot. Should you pass all the screening, you will then be offered an interview - I'm happy to say I made it to the last stages, competing with 3 out of an original batch of 30 applicants - however, we all know how that ended :-) Not successful, bottom-line, BBC thought I was carrying too much process baggage and not agile enough; as well as I didn't have prior line management experience which is what they were seeking for the technical team leader role.
Anyway, my interview was a surreal event because I wasn't applying for one role. They laid out the following possibilities to me: Technical Team Leader, Project Manager, Programme Manager, Scrum Master. So I was subjected to a varying degree of questions. In retrospect, I think I came off a bit too confident, strong, and determined to change the world.
I will now share with you my responses to the questions that opened the path for the face-to-face interview:
Q1 - We’re looking for strong technical leaders: excellent at designing & delivering complex solutions while at the same time motivating & inspiring a team. Please give an example of an IPTV/On-Demand/Interactive TV project you lead from concept to deployment (2000 character limit).
[BSkyB Anytime+ HD On-Demand/Interactive TV (1943 characters) 2008-2010]
A highly visible project to secure NDS’s position in the Middleware market for the foreseeable future, involved seamlessly replacing an existing Middleware (OpenTV) on multiple STB platforms (deployed 2 million+ homes), with no noticeable difference to the user, plus the addition “Anytime+ Progressive Download”. A new Middleware & device driver model, consisting of 80 components with a 200-person development team geographically dispersed: 2 UK sites, France, India & Israel; as well as working with suppliers worldwide: Broadcom, Amstrad, Samsung, Thomson, Wipro, Red Embedded & S3Group. The project is often described as “not only changing all four tyres on a car whilst you’re driving, but also giving the engine an overhaul & the body work a re-spray at the same time!”
I had global accountability as Middleware Dev. Owner, overall project management responsibility for delivering feature completeness within the set timescales; managing a team of senior architects (design authority), 200-person development/integration team to deliver a backlog of 200+ work packages.
My engineering background allowed me to build rapport with development teams, gaining project-wide respect, as highlighted:
- Quickly gained architectural design knowledge, allowing me to hold technical discussions with the customer without needing to include senior architects.
- Participated in customer defect review meetings in negotiating issue severities, assigning ownership & allocation to component teams (usually the job of chief architect)
- Conducted impact assessments of change requests, before passing on to architects for review (Software Migration, Download, IPv6)
- Mentored Hit Squad teams consisting of senior engineers, in resolving critical issues (steering performance improvements, providing tools to find memory leaks), sometimes spending late hours with engineers going through code (shared OpenTV knowledge)
- Produced much-valued technical status reports on critical issues
- Proactively drove the setup of the end-to-end system for home field trials allowing people access to latest builds via software download
- Appreciated the technical challenges placed on engineers, often siding with the engineers that “it cannot be fixed any sooner without consequences”
[Speaking EPG – Interactive/Accessible TV (1987 characters) 2007-Present]
This example may not immediately appear to be relevant to the question, however I think it’s worth sharing as I strongly believe that strong technical leaders must possess great vision, determination & an unfailing desire to succeed through persistent perseverance.
For the past 4 years I’ve created a following both inside & outside of NDS for the need for accessible, usable EPGs targeted at the aged for independent living, blind & partially sighted, dyslexic & the illiterate by spearheading the concept of a Talking EPG: a STB with built-in speech synthesis.
This was a project “greenhouse” outside of work hours, purely out of interest & a passionate desire to add value to people’s lives. Despite many obstacles - I had little networks & influencing-power, NDS being a large company – I pushed the idea from a concept, simulator, demo to prototype on real hardware to engagement with customers - in the years to date have now inspired a team of 7 people contributing to my greenhouse project.
I kept abreast of Middleware roadmap (as I was working in the IPTV HeadEnd group at the time & wasn’t involved with STBs) & decided to experiment with the platform. Working closely at the driver level, I ported an open source speech engine, complete with voice dictionaries & databases & got a STB to perform real-time text-to-speech synthesis.
To provide a realistic experience, I partnered with another project that was working on a simple zapper middleware, providing the platform exposing the service information, menus & graphical text representative of an EPG experience.
Having integrated the two projects together, we were successful in demonstrating a simple zapper EPG in 2007, speaking out menus, key presses, channel information, reading a book from a text file, speaking out the time, changing different voices, etc.
I created an open API framework that could be used for integrating commercial speech vendors, & published the API for recommendation into the official middleware product, where it’s currently under review, the original audio stream requirements were approved & included in the current product build. The feature has also been added to the product roadmap, making it a success.
I’ve persistently spreading the message, still seeking external interest, all in the background. I suspect this will remain a passion should I end up with the BBC!
[DirecTV USA – Interactive TV (1974 characters) – 2003-2004]
This project can be summarised as porting of a DVB stack to DirecTV’s DSS APG domain, implementing a new EPG, resulting in excess of 200K lines of code in ~6 months, currently deployed in 30 million homes.
I was part of a core team of 3 people that eventually grew to a team of 12 as the project matured. I was heavily involved in the gap analysis phase, where I had to understand the DSS system, the structure & APG protocol creating a mapping to our existing implementation in the DVB domain. We inherited EPG code from a previous project that was quite mature & exclusive to the DVB domain that included conditional compiles for different projects, for a PVR profile. The code was huge, complicated & new, it meant investing time to understand the code, identify all API dependencies, highlighting APIs that needed changing, defining new APIs, identifying the useful & useless code, removing conditional defines. It also involved understanding & correcting the architecture model of the EPG.
The biggest challenge for the EPG was on developing the complicated new features of DTV, whilst at the same time reusing as much of legacy code as possible. I led, through a team effort, the de-construction of the EPG, fixed the architecture to adopt the model-view-controller pattern allowing us to work in isolation, independent of the user interface screens, the model & controller could be written separately. We identified further services that we could make independent, called “engines” that provided the screens with the functionality desired. We were able to develop the UI, work on the services & controller in parallel, & with a few integration points synchronised could deliver incremental functionality & experience together. I also took the lead in defining the shared services that implemented generic algorithms that served the needs of many similar use cases avoiding the need for repetitive code.
Of particular note, the program grid was the most complicated code of all that I’d written from scratch in two weeks, comprising over 30000 lines of code, which to this day, has remained largely untouched. We maintained a strong preference to maintaining the architecture UML model, the engines, controller & model were updating along with important sequence diagrams so that everyone on the team would have a source of documentation for reference.
Q2 - Using the example that you provided above, tell us how you ensured your project met the original business requirements & was of acceptably high quality. How could you have improved it further? (1000 character limit).
BSkyB Anytime+ HD - On Demand/Interactive TV (1073 characters)
High-level features translated to system requirements, then to product-use-cases, realised through Work Packages (WP), a self-contained unit that can be tested & verified tracing back to original requirements.
Code quality: MISRA standard, Zero Compile/MISRA/Lint warnings, 100% API & Line Coverage, 65% Branch Coverage, 100% test mapping, used static analysis from KlocWork, Blackduck for open-source violation.
Multi-level test approach, unit tests, component-group, Middleware suite of 1000+ regression test cases targeting 98% pass rate, stability & performance tests – build fully automated, testing at all levels driven by continuous integration tools.
I helped resolve key defect process problems: clarified severity criteria (Showstopper, Major, Minor); published a workflow for importing customer defects, defined project-wide defect process. Reported metrics regularly, target zero showstoppers. Managed regular root cause analysis & iteration reviews.
I instigated specialised on-site teams (Hit Squad) fixing critical issues; evangelised Microsoft’s “Eat your own dog food”, enabling home testing catching critical issues early.
What would I change?
Start full stack testing early in lifecycle, better traceability at full stack back to requirements. Do continuous delivery at full stack.
Q3 - Using the example that you provided above, tell us how you went about instilling/ enforcing agile development methods where they did not exist, or reinforcing where it did. (1000)
BSkyB Anytime+ HD - On Demand/Interactive TV (1090 characters)
NDS adopted Agile company-wide in 2006, changing the physical layout of the office-space providing floor-to-ceiling whiteboards, break-out areas, meeting rooms for Scrum & associated software tools; as well as a manifesto for software development.
Mature process: WP backlog, incremental feature development, continuous integration, parallel delivery to customer, releasing early, releasing often, 6 week iteration cycles that evolved naturally to 3 week cycles, later to 1 week deployment cycle. Development teams are self-managing, owning local backlogs, managing team progress independently. Regular meetings, metrics & reporting were already in place to gauge project progress (Velocity, Planned VS Actual, Burndown).
What agile methods did I change/reinforce?
- Identified waste in QC, turning 3 weeks QC cycle to 1 week, synchronised with our release cycle. The problem was that defects raised in QC were 4-5 weeks out-of-date with the current build.
- Recommended customer-support team on-site to collaborate, resolve & fix key issues on the spot, unblocking QC.
- Managed daily Scrums, XP, brainstormed, mentored engineers, getting hands-on with debugging & code reviews.
- Kicked off one-roof-integration teams bringing together geographically dispersed engineers & testers to share the team experience.