Yes? Great! You probably don’t need my help. However, if you’re looking for architectural / design guidance with existing software or a new project then perhaps you would be curious to know how companies such as PayPal, Apple, Amazon, VMware, eBay, Yahoo, NASA, Pacific Gas and Electric, The Gap, 24 Hour Fitness and Williams-Sonoma have approached such. Better yet, to have available an ally that, having been involved in all aspects of the software development lifecycle (SDLC) within such organizations, can distill all that’s been learned and effected, and bring to bear the sum of all that experience to your benefit.
My name is Matthew Phillips and I’ve been involved in I.T. since 1989. I began as a developer on AS/400 systems and became involved in software architecture in 1997. Since then, I’ve either been a direct contributor or have been entirely responsible for the architecture and implementation of projects at the above companies.
Did I say implementation? Yes, I do get my hands dirty. I have four modes of engagement depending on what a client needs.
In the first mode, my responsibilities are primarily for the design only. The deliverables in this kind of engagement typically include scoping, requirements and design documents as well as prototypical / POC code and possibly framework components. After this point internal teams take over (including internal architects who may have had other responsibilities at the beginning of the project). I then roll off the project.
The second mode, again depending on the will of the client, includes all of the deliverables associated with the first mode above but in addition, I will remain on the project until production roll out. During the development phase of the project, my responsibilities typically include the monitoring of progress with regards to its adherence to the architecture (enforcing interface contracts), iterative updates to the design as per the client’s project management processes (eg. Agile, Scrum, RUP). I will also be involved in building out framework components and possibly even directly involved in the development of specific domain code. In addition, I will often find myself mentoring other developers via code walkthroughs, presentations and so forth.
The third mode is the one man show. Basically a turnkey / bespoke service including scoping, requirements, design, development (UI and backend) and post production support with an agreed time frame after which the client takes ownership of the application. Working in this mode and the second mode above allows me to stay current with technologies of implementation which makes for being a better architect.
Finally, the forth mode is where, either as requested by my chain of command, I insert myself within a team outside of that chain of command or, as is more traditional, am hired directly by a team on an ongoing basis. This can be at the start or mid-way through a project for which extra help is sought. My role in such engagements is similar to that described above as regards the development phase of mode 2 engagements. I will be assisting with business / technical (full stack) domain component development as well as making recommendations as to the evolution of the design.
Over the course of my career (I regard myself as a career consultant), I have been involved in many projects and environments. As such, I have seen how various approaches play out (not just mine, but with the happenings on other projects on a given assignment). This has led to an instinctive sense of what is going to work and what isn’t. Of course, this is a rational field of endeavour and as such, where I perceive risk, I don’t just rely on instinct alone, but will attempt to mitigate such risk with its early identification and via prototyping and proof-of-concept work.