Most small website projects are just simply not large enough to necessitate a software architectâs involvement. But, there are a good number of projects (mobile apps, websites with complex functionality, SaaS, webservices, etc), that would be greatly enhanced by a brief consultation with a legitimate seasoned software architect. Sure, itâs more money, but youâre not thinking about the big picture here. You donât just build a custom house with the construction workers alone. You consult with the âexperienceâ, the âtalentâ, and the creative/technical experts who know how to put a house together. These guys are called âArchitectsâ. This is true for the creation of your dream home, and itâs also true for your software/web/mobile project. The software-flavor of the architect is a little more nerdy, but no less creative, and no less strategic. Give a [good] software architect 30 minutes of your time, and watch him blow your mind. He will pick apart your current approach and offer a better one. He will turn a decent idea into a stellar one, without spending any more money and often times, without losing any time on your google calendar. We here in the founding team @ziptask have consulted as software architects prior to this roller-coaster startup, and have personally seen and experienced various situations where the software architectâs involvement (in the cubicle-ridden world of corporate Information Technology department), turned an 8 month, $4 million project into a 12 week, $400k project, just by changing the approach, reusing existing technologies, or leveraging the maximum value of existing codebases/assets/resources.
As a more âsmall-businessâ example, a customer wants to build a website that exposes an API, and chooses to do the heavy lifting and create everything from scratch. A software architect, with enough clear minded common sense, would first evaluate the landscape and do the proverbial âmathâ. Does it really make sense to create it all from scratch? Is there a tool, service, or implementation pattern that can be leveraged against the problem domain? What strategic advantage does custom development offer in this scenario? A cost-benefit analysis is in order here, and thatâs not all. The architect must present the information well, but also explain it in terms that can be consumed by the stakeholders (you, the customer). Communication is half the battle in a practical scenario.
...âI have a developer that does that too.â <-- A valid retort. The answer is in the form of a question: where is the line between developer and architect? Is it just an elevated sense of âdeveloper-nessâ that makes someone an ultimate geek / architect? A form of enlightenment in the tech community? More of the same, or is it a different skill altogether? Developers are horrible salesmen, but architects can âsell the visionâ. Developers are infamous for lacking social skills, while architects consider themselves well-traveled and somewhat superior socially (whether it's just in their heads is still up for debate). They definitely have these aforementioned "soft-skills" that sometimes lean their loyal followers to the left or right, and make things happen. This role canât be understated. While there are overlapping skills between a developer and an architect, the core competencies are distinct. Below shows the layered approach to architect and developer on Ziptask.
So we wanted to dive into the brain of a software architect, explore the nuances of technical creativity, and hopefully shed light on what real tangible benefits are when opting to include a software architectâs involvement on your project.Â
Parnell Springmeyer, a seasoned entrepreneur and software architect on the Ziptask platform, took time to be interviewed for this weekâs PM Spotlight. His background is deep in tech startups, and has performed amazingly well on Ziptaskâs Product Studio offering.
Â
Q: Parnell, how do you describe the category of âSoftware Architectureâ and how did you get into it?
A: Software Architecture is multi-faceted, particularly so in small projects and companies. Software Architecture for a project that is the product for a startup or mature business involves the difficult act of marrying the business to the technology. Principally, I'm responsible for translating higher strata vision and desires [for the product] into an execution path because it's impossible to âhave it allâ at the same time! You don't even want that anyway because most products evolve rapidly as customers begin to use it and your implementation must evolve with the new data and requests flowing in. Further down the road of a product's life I also have to interleave maintenance of technical debt and bug resolution into the roadmap; this decision making can only be informed by a clear understanding of the business, its customers, and the direction the ship is sailing in.
Early in a company's life, it's about finding the balance between what the business needs and what the technology can do in as short a time as possible with as little future debt as is possible. The architect does that.
I became one out of necessity â I started as a simple code wrangler but by building my own technology startup I learned, slowly, that a clearer understanding of the business and how it evolved was essential, even critical. Without that understanding, the product cannot evolve, you don't have a business if your product can't adapt to the constantly changing stimulus the market and your customers are providing.
Â
Q: What do you love the most about being a software architect and what do you hate?
A: It's a very creative act, on the level of orchestration because we're programmers too but we are also business people. So really it's a âliftingâ of the programmer's craft into a realm beyond mere artistic satiation, it has form and also function that impacts people's lives by making something easier, better, or fun.
Hate is too strong â I wouldn't be doing this if I hated it. I prefer to say that the burden of responsibility can be tough sometimes, without a fun project it can grind you down. There's also the very difficult process of making your non-technical collaborators hear you, many people see the facade of technology (you're not supposed to notice that it works!) but don't understand the extent of the iceberg supporting it.
Â
Q: What sort of critical thinking and strategic capabilities does a software architect bring to the table?
A: There are many. A software architect spans the gap between the strategic consultant and the developer team, and tries to create value in savings in the most strategic of forms. Thereâs much to explain but I can focus on a couple of nuances of this role. The engagement of a software architect on a project is primarily targeted at ways to drive costs down, and increase the reuse and strategic use of existing/in progress development. In a startup environment, (which may differ in many ways from corporate enterprises), things move incredibly fast. Calculations are made while in motion, as the team is running 100 miles an hour towards an initial minimum viable product. As such, the âpath of least resistanceâ is often the choice of winning teams. This is both a blessing and a curse. The architectâs job becomes slightly more complex, in having to embrace the realities of the time limitations and wrestled with the goals of long-term reusability and extensibility of the software technology platform itself. Driving cost down would equate to the fastest possible deliverable for the least amount of effort. Maximizing the reuse and strategic use of assets, would materialize itself as laser focused effort with full extensibility built in. Example thoughts that run through my mind:
âHow can I build this in such a way so as to not paint myself in a corner?â
âWhat would be the right way to do this without taking too much time?â
âI know it canât be perfect, the approach I want to take will require too much time ⌠but how can I at least make it clean and legible?â
âIs there a component party built for this small piece of the functionality?â
Â
Q: Whatâs the difference between a software architect and a good developer? Do you really need both?
A: Thatâs a great question. Application development has inherently a focus that is limited to the scope of the application that the developer is working on. There are clear boundary lines and focal points that require an immense amount of energy and attention. Developers are focused on user interaction, responsiveness, behaviors, data baggage, latencies, user controls, and all sorts of other typical application development areas like error handling, quality of code, physical real estate on the user interface, etc. A good software architect, however, will have his head in the clouds half the time, whilst manhandling some area of code, and white-boarding incessantly. An architect is essentially the pragmatic thinker and âseerâ of vision. He/she has to foresee the entire technological asset-base before it exists, even if that means conjuring up inventive placeholders for systems are entities that have yet to be even scratched out on paper. The holistic view is ever-present, ever-aware, and long term goals of the stakeholders are brought to light at various opportunities, especially to the benefit of the developer audience.
Q: How does a software architect interact with a project manager on Ziptask?
A: Because Ziptask is âFully Managed Outsourcingâ, the Ziptask project managers are engaged in every aspect of your project, and will pull in the use of a software architect as they feel it is needed. (It should be noted that some Ziptask project managers have been software architects in different roles within their career, another great selling point of Ziptask.) If you feel it seems to be applicable and within the scope of your effort to have architectural guidance, simply mention it to your project manager (hopefully in the beginning of the project, so as to be included as a part of the estimate), and he or she will be sure to incorporate the use of a software architect seamlessly into one or more milestones. This becomes especially valuable in the beginning of the project because a great amount of savings of time and money can be accomplished with a good architecture in place.Â
Q: What would you say has been your greatest value add to projects that you have been a part of in the software architect role?
A: Because Iâve been a part of several startups, (one of which was recently acquired), I have a unique perspective. There are various different shortcuts and components that can be leveraged to take a massive amount of work and shrink it into a box that can be easily manipulated and time boxed for even the smallest of teams. This is a skill that you donât learn in college. And you can simply put a job posting on monster.com to recruit for it. Itâs something that comes within the start of community and is held closely to the chest. Great architects in the startup world can do amazing things, with very little money, very little time, and very little resources to support them.
Â
___
Summing it all upâŚ
Taking a step back, and looking at things from an enterprise perspective, the software architect has been the modern-day equivalent of a Thomas Jefferson, crafting language and nuance to literary masterpieces. As a formal role in the corporate information technology departments across all boundaries, (not just limited to the United States course), the software architect is worth his weight in gold, saving corporate America literally billions of dollars in unnecessary information technology expenditure. This is a best case scenario. The worst/opposite situation would be that software architects, when left to their own devices, may over-architect their solutions, create unnecessary complexity, and drive costs up where only a simple solution was needed. While those pitfalls remain, with a good project manager in place, and limited scope, a software architect can multiply the effectiveness of any developers involved in the project and are a critical component to a successful engagement in the information technology arena. Â