You fought in the Code Wars?
Dev: "You fought in the Code Wars?"
Me: "Yes, I was once a Microsoftee. Same as the architect."
Dev: "I wish I'd known him."
Me: "He was the best VB developer in the shop and a cunning NT, IIS, and SQL Server admin. I understand you've become quite a good full-stack developer yourself."
A long time ago, in a consultancy far, far away...
Opening credits
I remember my first software development job with fondness. Although a marine engineer by trade and a serious hobbyist programmer of 15 years, Dunstan Thomas (DT) gave me my first break.
Under the steady hand of Chris Read 's leadership, DT created and maintained desktop and web applications for financial services clients. The offices in the heart of Portsmouth comprised of high ceilings and oak-clad walls arranged into several development shops, meeting and training rooms, and offices for the directors and sales.
In my interview, I met Chris in the boardroom. I showered him with code print-outs and enthusiasm, walking him through my architectural designs, illustrations, and anything I thought would be vaguely relevant until he relented. He did, and so, at the ripe old age of 31, I was to be the most junior developer in the building and would love it.
The Code Wars
It was the late 90s, and DT's dev shop was a mix of Microsoft Visual Basic and Borland Delphi developers, with DT being a partner to both software houses. Developers being developers, we love to solve problems, and friendly rivalry was commonplace, especially when DT was pitching for work. Developers would debate which technology stack to use, and the DT mantra was that 'strong opinions, loosely held' was often severely tested.
Back when Computer Weekly was in a print format, they often promoted such passion as The Code Wars between the Microsoftees and Borland-ites. All harmless fun as all media tries to get a rise out of its audience in chasing its own goal of engagement. The truth was that DT was a great learning environment with incredible talent. I was blessed to be in the thick of it.
I recall chatting to DT director Robert Kelly in the lift one day, and he asked me how I was finding my first week. I laughed and said, "I can believe we get paid for doing this!" He enjoyed my enthusiasm, smiled wryly and said, "Sometimes we don't."
Quality is a team sport
Chris recruited me to join a small team maintaining a pension system for one of DT's clients. The system had been produced using an obscure 4GL called OpenInsight by Revelation Software . Finding developers for it was easier if someone with a passion for software and learning walked through your door. And there, I began learning to write production-ready, maintainable code.
Our director of quality, Graham Stone , did me one of the biggest favours by lending me a copy of Steve Mcconnell's "Code Complete - A practical handbook of software construction ". Between them, Steve and Graham taught me that it wasn't enough to write great code, I'd need to document my thinking too. It didn't matter how clever or succinct my implementation was if someone else needed help to maintain it. Or equally bad, if even I couldn't remember the thinking behind my own brilliance several months later.
Since each developer typically worked on code for a single client, we'd each have a physical project folder (a white A4 binder) full of our documentation. Graham would regularly audit the quality of the folder contents to ensure our compliance with the DT's ISO accreditations, and we'd welcome the client's compliance officers to come and do the same. We'd also regularly peer review each other's folders to ensure we could understand the projects and cover annual leave and sickness absence.
It was through trying to balance a need to document our design thinking, whilst not losing delivery momentum, that we experimented with Rational Rose and the technique of round-trip engineering , modelling our work using the Rational Unified Modelling Language (RUP). Round-tripping enabled the Rose tool to create class structures in a standardised notation diagrammatically, before publishing to code for editing in Visual Studio. And any edits made in the code could be published back to Rose to update the diagrams. Working out loud in this way allowed us to share architectural thinking in real-time, collaborate in code design and meet our compliance and documentation needs. This was the state-of-the-art self-documenting practice of the late '90s.
Strength in diversity
The OpenInsight team of three sat in an open space with our rectangle of four desks being surrounded on the outer walls by more desks supporting the DT's server PCs. The consultancy ran on Microsoft Windows NT 4.0 for domain and file servers, hosting web servers (Microsoft IIS) and database servers (Microsoft SQL 7.0). This meant that any time a developer needed to administer them, they'd come and sit with us. I became familiar with the admin tasks as my colleagues were only too happy to walk me through activities like NT domain configuration, database and website deployment, service pack maintenance and backup tape rotation, remember that? Very soon I knew enough to build and administer my own Windows server domain at home!
One afternoon, senior developer Ken Cowley grabbed the spare desk next to me and started cranking out a strange looking MS Word document. Ken was designing some algorithms for a financial system and its corresponding tests, and shared with me the concept of writing this as pseudo code . I learned how to write effective tests for my design thinking, along with a standard notation for a rough sketches of software architecture. I realised much later that these techniques were evolving into the Extreme Programming (XP) practices, forming test driven development (TDD) which years later gave rise to the Gherkin syntax .
领英推荐
Wanting to put my new skills to use I was asked the management team if I could take on other work and was told I could, if I could become competent (saleable) in the main business lines. It was Duncan Green that shared his skills in Delphi with me, enabling me to build on my rudimentary knowledge of Turbo Pascal as I start hacking away at desktop applications. Duncan showed me how to convert my software idea into reusable modules, which saved time when maintaining or updating the code. Instead of the same code being written in multiple places, it was now contained in a cohesive module. Genius!
At the time we all knew that the Internet was going to be a big thing and as Bill Gates' prophecies in "The Road Ahead " started to become a reality, it was director Matt Hopkins that gave me my first taste of what was in store for us. Matt tasked me with looking after our growing portfolio of websites with a view to optimising their search engine performance. Each week using the Webtrends tool, I'd manually create a report for each site and document its keyword performance on the various search engines (there were many in the late '90s). And it was through active experimentation and page wrangling that I learned the dark arts of search engine optimisation for each provider. With a keen eye for the business impact this form of technology was having, Matt would go on to become founder of evidence-led search marketing company, Vertical Leap .
Having been exposed to building desktop operating systems and servers, desktop applications and shared databases, I was starting to see how the Internet technologies might revolutionise client-server interactions. I just didn't know how, yet.
When the student is ready, the teacher appears
As the new web technologies were beginning to emerge, it was developer Steve Hatchard who shared his knowledge of MS Office VBA and VBScript that enabled me to get a foothold in the Microsoft camp. Whilst my MS Access efforts enabled me to produce some professional looking application results, it was VBScript in Active Server Pages (ASP) that proved tortuous. Despite what the training materials said, the only mechanism that 'reliably' allowed me to debug a page was the destructive Response.Write syntax plus a memory dump.
<H3 align=center>I just want to say <% Response.Write "Hello World.</H3><BR>" %>
Your name is: <% Response.Write Request.QueryString("name") %> <BR>
I knew I wanted the web server (IIS) to do more processing server-side, lessening the load (browser rendering time) in the page, which meant me creating my own DLLs. I had to get deeper into Visual Basic programming to achieve this, and it was senior developer Kevin Bailey that took pity on me. Kevin would steer me in the right direction with my coding efforts, which included connecting me with Graham Parker , who had recently acquired the Visual Basic Users Group (VBUG).
I can still remember my first conversation with Graham. I was excited to learn of VBUG and the possibility of attending events to learn more about the craft from experienced professionals in the field. Naively I asked Graham if there was a community in the Portsmouth area, to which he replied, "Yes, if you want to run it." And that's how I became the local VBUG coordinator for a few years.
Events were hosted in the DT offices after work, the community grew with members travelling to meet from all over the south coast, and beyond. And through our connections we were able to draw in high quality speakers from the Visual Basic world. Like data guru Rob Macdonald who had recently published "Serious ADO: Universal Data Access with Visual Basic " who gave an inside track to his decoupled data management tricks and techniques. And we'd strut our stuff too, with DT's own senior developer and solution architect Matt Nunn sharing insights into Microsoft's maturing web technologies at several events.
The DT family
More than being a cool place to do work that we really enjoyed, DT created a sense of belonging. Lunchtime huddles in a cramped kitchen area that somehow contained us, where conversations were often heated but always interesting. And if things went flat, lead developer and astrophysicist Mark Kemish could be relied on to bring something special (often sub-atomic) into the mix.
We had weekend LAN parties playing Quake and eating pizza, and I became a gamer converted from a joystick loser to keyboard and mouse contender. DT had its own softball team that competed in a Portsmouth league. And then there were company BBQs. It was at one such event that Mark was giving riding experiences on the back of his new Triumph motorcycle, and after an exhilarating blast as pillion I decided I wanted to pass my bike test, too.
Not long after this Matt Nunn announced that he was heading over the to US to pursue his dream of working for Microsoft, and I ended up buying his KTM Sting. Matt did eventually realise his dream, and I did pass my bike test - twice, but that's another story.
As with all families, the members grow up, apart and go their separate ways. But we all remain connected through our memories and our time together. I often reflect on my career, and when I do I think back on my time at DT with fondness. I've wanted to write something like this piece for some time now. To thank everyone named here (and some I couldn't track down), for your kindness and generosity, for your part in helping shape my software career. Without that I wouldn't be where I am now.
Working for and with Dunstan Thomas gave me sense of belonging, purpose and encouragement. I believe everyone is looking for these qualities through their work.
One more thing...
I've left on person to the end. Pete Bergin. Pete was my mentor and helped me weave all of the above craziness into a single piece of craziness. Kind and irreverent and many things to many people, Pete knew how to live. Sadly taken from us too young.
Pete's the reason I've been a IT-career coach to so many folks who, like me, had a first career in something other than IT. They were daring enough to get involved, they just didn't quite know how to realise their ambition.
Pete, this is for you. I know you'd approve.
Consultant at Computer 2000 Inc.
1 年Yes I did
Director at Empatia
1 年Those were the days buddy ;-) hope you’re well
Business Owner at K A Consultancy Ltd.
1 年I would say thank you too Andrew, and thank you for this post, you have brighten my day. I have fond memories of those days.
I enable clients to see, measure and transform effectively.
1 年Chris Read, ? Robert Kelly, Graham Stone, Ken Cowley, Duncan Green, Matt Hopkins, Steve Hatchard, Kevin B. Graham P., Rob Macdonald, Matt Nunn, Mark Kemish ... Thank you ... ??