The two-sentence summary
Welcome to AnchorLoop! AnchorLoop is a new technology blog, focused on my interests in software development and the industry at large.
Who am I exactly?
I am Kirk MacPhee, a British software developer based in the university city of Cambridge in the UK. I specialize in automation technologies and their application to the software development process.
I currently work as a Senior Software Engineer for Citrix Systems in the Automation Services team. We’re focused on building the tools, frameworks and platforms that automate the continuous delivery of the entire Citrix technology stack: XenApp/XenDesktop, XenServer, NetScaler, Citrix Cloud, ShareFile and XenMobile. Our technologies automate a large part of the development process for many teams at Citrix and cover everything from the automated deployment of builds into full Citrix stacks (either in a VM cloud or onto bare-metal), to frameworks aiding developers writing automated tests against their component.
So that’s what my wider team does, you might be wondering what my specific role in all that is. I lead the development of one of the orchestration frameworks involved in that whole process, it typically picks up where the VM platform of choice (usually a hypervisor deployed onto bare-metal or public/private cloud) leaves off and coordinates code execution on the individual machines involved in the automation from that point on. Once the environment automation is complete users can write test automation with the same orchestration framework or hand over to some other tool more specific to their component’s needs.
Before that, I worked for Siemens on their flagship CAD product, NX. There’s a reasonable chance I’ve written code that contributed to the design of the car you drive. Before that still, I worked in a Fujitsu server/workstation factory, in Germany, on their automated QA system that they use on the production line.
What am I planning to write about?
It’s probably obvious by this point, but a lot of my interests in software development revolve around automation technologies and how they are applied to deliver products/features in the most optimal way, so there is bound to be a heavy focus on that. I have worked on both sides of the divide, my current role is one of a producer of automation tools for others, but I have also spent significant time as a consumer of them (with the probably now-unfashionable job title of “Software Developer in Test”) in product/feature teams also.
Test automation is the most obvious application of my interests to software development and I’m bound to end up commenting on it. It’s probably the area that you are most familiar with already and the area that generally gets the most coverage, but it isn’t the only one. There aren’t many stages of the life-cycle that cannot be aided by automation in some way, so I hope to contribute to raising some awareness of how to apply automation to the other stages. I’ll make a conscious effort to do so anyway.
Automation goes hand-in-hand with Continuous Integration/Delivery and Operations. Lots of teams are choosing to unify Development and Operations in their organizations to harness the benefits described by the DevOps movement. The application of automation is central to best-practice in all of these disciplines and I’m likely to comment on them frequently.
I am the leader of a development team practicing Agile methodologies at Citrix, have worked in Scrum/Kanban teams at most places I have worked and for the most part, have been involved in their transition to them. So I’m likely to weigh in on technical leadership and some of the successes and missteps I have experienced during my career.
This is a good time to point out that opinions on this blog are my own, not those of my employer or former employers.
So why the name? Software done well is developed in rapid iterations with small units of change, integrated regularly and validated with automation just as regularly. This promotes fast flow from idea to value-add, frequent feedback and continuous learning, these are the Three Ways of DevOps and also concisely describe the key tenants of the Agile Manifesto. The “Loop” in AnchorLoop represents this iterative process and the three colored phases of the loop in the logo represent the three ways.
You might be wondering which of the principles is the anchor, and given most prominence? For me, it’s continuous learning that creates great development teams. How a team or organization achieves flow and uses feedback is a personal journey that requires periodic reflection, neither are prescriptive. But a culture of continuous learning is central to all long-term success. It is my hope that the process of writing the blog will have a mutually beneficial effect on my understanding of the landscape and yours.
That, and the domain name didn’t cost £1,000,000 – so that helps!