I was in an all-day meeting today, and again found myself grateful to work with so many bright folks. Long day though, and closing it out by reading a couple more interesting items. Enjoy!
[article] Do You Manage Too Many People? I’ve definitely made mistakes in this department, and now work to have a more reasonable number of direct reports.
[article] C# Overtaking Java in Popularity Index. There are lots of factors here, including the split JVM attention due to Kotlin, as well as C# being a good language with an open ecosystem.
In between meetings today, I was reading up on how embeddings and vector databases actually work. At some point, I’ll build a demo to see it for myself. Meanwhile, I read other content today as well.
[blog] Switching Build Systems, Seamlessly. The Spotify Engineering team shared their experience upgrading the build system for their iOS client.
[article] What is -1 to 0? A Philosophy of Ideation. You might have heard the term “0 to 1” which refers to the practice of creating something new. This post looks at how you decide where to put your energy in the first place.
[blog] This Will Make You Feel More Positive: 11 Secrets From Research. I’m one of those annoyingly positive people. It doesn’t mean I don’t experience or observe hardship and pain, but I choose to not be focused on it. This post has advice for resetting your frame.
It was a beautiful SoCal weekend, and I snuck in a little time to write up a blog post about gen AI and software architects. Today’s links cover a wide range of topics, and a couple of them have useful reflections about the past.
[article] Oh No, the Software Consultants Are Coming! The dreaded outside consultant. I’ve been that person, and worked with that person. Most of the time it’s great. Sometimes not. But don’t fear the consultants.
[blog] How to Measure Developer Experience. Whether you’re serving internal devs or external ones, a good developer experience matters. Adam gives you 13 things to look for, and offers advice on how to get supporting data.
[article] Developer Onboarding and Ramp-Up Time. Good summary of some recent research at Google. Learn more about what gets in the way of successful onboarding.
[blog] How AI and imagery keep speed limits on Google Maps updated. Admittedly, I’m easily impressed. But still, I think it’s pretty cool when I’m driving and my nav system knows the speed limit of the road I’m on. Here’s insight into how that works.
Much has been written—some by me—about how generative AI and large language models help developers. While that’s true, there are plenty of tech roles that stand to get a boost from AI assistance. I sometimes describe myself as a “recovering architect” when referring back to my six years in enterprise IT as a solutions/functional architect. It’s not easy being an architect. You lead with influence not authority, you’re often part of small architecture teams and working solo on projects, and tech teams can be skeptical of the value you add. When I look at what’s possible with generative AI today, I think about how I would have used it to be better at the architecture function. As an architect, I’d have used it in the following ways:
Help stay up-to-date on technology trends
It’s not hard for architects to get stale on their technical knowledge. Plenty of other responsibilities take architects away from hands-on learning. I once worked with a smart architect who was years removed from coding. He was flabbergasted that our project team was doing client-side JavaScript and was certain that server-side logic was the only way to go. He missed the JavaScript revolution and as a result, the team was skeptical of his future recommendations.
If you have an Internet-connected generative AI experience, you can start with that to explore modern trends in tech. I say “internet-connected” because if you’re using a model trained and frozen at a point in time, it won’t “know” about anything that happened after it’s training period.
For example, I might ask a service like Google Bard for help understanding the current landscape for server-side JavaScript.
I could imagine regularly using generative AI to do research, or engaging in back-and-forth discussion to upgrade my dated knowledge about a topic.
Assess weaknesses in my architectures
Architects are famous (infamous?) for their focus on the non-functional requirements of a system. You know, the “-ilities” like scalability, usability, reliability, extensibility, operability, and dozens of others.
While no substitute for your own experience and knowledge, an LLM can offer a perspective on the quality attributes of your architecture.
For example, I could take one of the architectures from the Google Cloud Jump Start Solutions. These are high-quality reference apps that you deploy to Google Cloud with a single click. Let’s look at the 3-tier web app, for example.
It’s a very solid architecture. I can take this diagram, send it to Google Bard, and ask how it measures up against core quality attributes I care about.
What came back from Bard were sections for each quality attribute, and a handful of recommendations. With better prompting, I could get even more useful data back! Whether you’re a new architect or an experienced one, I’d bet that this offers some fresh perspectives that would validate or challenge your own assumptions.
Validate architectures against corporate specifications
Through fine-tuning, retrieval augmented generation, or simply good prompting, you can give LLMs context about your specific environment. As an architect, I’d want to factor in my architecture standards into any evaluation.
In this example, I give Bard some more context about corporate standards when assessing the above architecture diagram.
In my experience, architecture is local. Each company has different standards, choices of foundational technologies, and strategic goals. Asking LLMs for generic architecture advice is helpful, but not sufficient. Feeding your context into a model is critical.
Build prototypes to hand over to engineers
Good architects regularly escape their ivory tower and stay close to the builders. And ideally, you’re bringing new ideas, and maybe even working code, to the teams you support.
Services like Bard help me create frontend web pages without any work on my part. And I can quickly prototype with cloud services or open source software thanks to AI-assisted coding tools. Instead of handing over whiteboard sketches or UML diagrams, we can hand over rudimentary working apps.
Help me write sections of my architecture or design specs
Don’t outsource any of the serious thinking that goes into your design docs or architecture specs. But that doesn’t mean you can’t get help on boilerplate content. What if I have various sections for “background info” in my docs, and want to include tech assessments?
I used the new “help me write” feature in Google Docs to summarize the current state of Java and call out popular web frameworks. This might be good for bolstering an architecture decision to choose a particular framework.
Quickly generating templates or content blocks may prove a very useful job for generative AI.
Bootstrap new architectural standards
In addition to helping you write design docs, generative AI may help you lay a foundation for new architecture standards. Plenty of architects write SOPs or usage standards, and I would have used LLMs to make my life easier.
Here, I once again asked the “help me write” capability in Google Docs to give me the baseline of a new spec for database selection in the enterprise. I get back a useful foundation to build upon.
Summarize docs or notes to pull out key decisions
Architects can tend to be … verbose. That’s ok. The new Duet AI in Workspace does a good job summarizing long docs or extracting insights. I would have loved to use this on the 30-50 page architecture specs or design docs I used to work with! Readers could have quickly gotten the gist of the doc, or found the handful of decisions that mattered most. Architects will get plenty of value from this.
A good architect is worth their weight in gold right now. Software systems have never been more powerful, complicated, and important. Good architecture can accelerate a company or sink it. But the role of the architect is evolving, and generative AI can give architects new ways. to create, assess, and communicate. Start experimenting now!
I’ve got lots of good items for you to check out below, whether you’re looking for strategic pieces or lower level tech details. Dig in!
[blog] Top 100 product marketing books: Your definitive guide. Don’t let the title fool you. This is a list of books that many types of people would benefit from. If you want to improve how you think strategically and communicate with others, pick a few from this list.
[youtube-video] AlloyDB Omni on Google Compute Engine Quickstart. This is everything I want out of a video demonstration of tech: it’s short, it’s visual, and it includes commentary about WHY the presenter is making certain choices.
On the way home after my quick trip to Silicon Valley. Besides internal meetings, I also did four customer briefings. Those discussions really ground me and help keep me focused on outcomes that matter!
[blog] Quickly Reproducing Production Bug With Event Sourcing. I like the concept of this pattern, but haven’t personally seen it done live before. For those of you who do event sourcing, I’d be curious as to whether this is part of your playbook.
[blog] Announcing Replit AI for All. AI assistance is certainly not a commodity yet, but long-term, I expect it to increasingly be a fundamental part of platforms versus an add-on.
##
Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:
In Sunnyvale today and tomorrow for some customer chats and in-person team hangouts. I like where I live and wouldn’t move to the Bay Area, but I do really enjoy being around lots of colleagues.
[article] 10 Pitfalls That Destroy Organizational Trust. None of us all would do these things, but for those OTHER people we work with, it’s good to be aware of what demotivates our teams.
[repo] wasm-go-playground. Here’s an open source project, and hosted example, of using Web Assembly to let you compile and run any Go code in your browser.
[blog] True Empowerment. John explores the topic of empowerment, and how it’s different from delegation and requires real leadership qualities.
[article] How knowledge graphs improve generative AI. Besides having the DeepMind team as part of Google (which of course, is already a massive advantage), one of the biggest accelerators we had for Duet AI was the existence of a terrific knowledge graph. Consider your own as you think about training personalized models.
[article] Survey Sees Observability Costs Spiraling Out of Control. We’re capturing more logs and metrics than ever, which is great for compliance, troubleshooting, and improving system stability. But, it’s getting expensive.
[blog] Death by a thousand microservices. We’re done defaulting to microservices as our architecture choice, right? It’s a fine choice when it’s needed, but the wrong choice for plenty of scenarios.
I hope you had a good weekend. My heart’s with those in Israel suffering from the weekend’s atrocities. For a distraction from the chaos of the world, read about some of the chaos in technology.
[article] What’s Fueling Burnout in Your Organization? What’s wearing people out at your company? Structural complexity? Painful workflows? Too many teams? Missing purpose? Good analysis here.
[blog] The Thin Line Between Bold and Reckless. I liked this post. Good reminder to think about context and perspective when analyzing “success” and “failure.”
[article] Measuring Developer Productivity: Who’s Winning the Debate? This is an extremely good writeup on the topic. If you want to catch-up on the discussion about measuring dev productivity, and do some of your own research, read this.
[blog] Now is the time for grimoires. If you don’t want this article is based on the title, I’m with you. But it’s a great read on the need for expert prompts into LLMs, and a way to share those with others.
[blog] Developers’ Perspectives on Technical Debt Payment. If you’ve been in this tech field for a while, these practices for paying down tech debt, and the reasons for not doing so, should feel familiar.
[blog] Thumbs up for new emoji reactions in Gmail. Will it be weird the first time I get back a crab emoji reaction to an email I send? Yes. But I think it’s useful to have a quick way to acknowledge an email without a full response.
[article] A metaverse resurgence? I’m still very skeptical that the metaverse turns into something meaningful any time soon, but Brian is now more bullish on it.
##
Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:
My Google Calendar at work has this view that shows how I spend my time each week. Apparently I spent twenty six hours this week in meetings. Feels low, given I had eighteen meetings yesterday alone. Fortunately, I generally only attend meetings that are worth my time, but yah, it’s a lot right now. For relief, I read tech content!
[docs] LangChain integrations for Google Cloud. A peer pointed me to this, and it’s a nice summary of which Google Cloud services—LLMs, retrievers, vector stores, etc—work with the popular LangChain framework.
[article] Python developers won’t let go of Python 2. Here’s some new data showing that many folks are slow to adopt the newer versions of Python. I wonder why that is?