The art and practice of delivering software products
Blog Archive
Lessons Learned From 50 Technical Due Diligence Reviews, Part 1-Previously published on Forbes on 3/18/2022 Over the past couple of years, I've led, in collaboration with other CTOs in my company, about 50 technical due diligence reviews, primarily for the benefit… .
How To Maximize The Value Of Technical Due Diligence-Previously published on Forbes on 11/16/2021 Technical due diligence (TDD) is typically requested by investors prior to closing a growth-stage investment or when acquiring a company. A smart investor should expect a… .
Convincing Your CEO To Rearchitect The Tech Stack-Previously published on Forbes on 4/14/2021 As CTO, you know when the current code base is too old: it takes forever to get new features out, response time for end-users is slow, tools are… .
The CTO’s Yearly Checklist-Previously published on Forbes on 8/19/2020 In a startup, as in any adventure, one needs to raise one's head toward the horizon once in a while to ensure that one… .
How To Make The CEO-CTO Relationship Work, Part Two-Previously published on Forbes on July 5, 2019 The relationship between CEO and CTO is pivotal to the success of technology-driven companies. Yet, the personalities and working styles of these… .
How To Make The CEO-CTO Relationship Work-Previously published on Forbes on June 17, 2019 The success of a venture-backed company usually depends on two main factors: its technical innovation and the velocity with which it introduces… .
The Art Of Technical Due Diligence-Previously published in Forbes on April 11, 2019 Technical due diligence (TDD) takes place once an investor (such as a venture capitalist, private equity manager or another company) has decided… .
For Machine Learning, It’s All About GPUs-Previously published in Forbes on December 1, 2017 Isn’t it curious that two of the top conferences on artificial intelligence are organized by NVIDIA and Intel? What do chip companies have to teach us… .
The Machine Learning Imperative-Previously published in Forbes on June 28, 2017 There’s no longer a debate as to whether companies should invest in machine learning (ML); rather, the question is, “Do you have… .
Everything You Ever Wanted to Know About Technical Debt-Check out the white-paper I recently authored at the Silicon Valley Software Group. Its main objective is to build a bridge between technical and non-technical executives to have rational discussions about… .
Time Tested Engineering Leadership Principles-I put together the first three of these four leadership principles during my first VP of Engineering gig, twenty years ago. Thirteen companies later, and having shared it with hundreds… .
DevOps-Driven Development-It is now time to add the concept of “DevOps-Driven Development” to our repertoire. “Test-driven” development, which originated around the same time as Extreme Programming and Agile Development, encourages us… .
(Boosting) Morale in Engineering-The recent article by Jessica McKellar titled “This Is What Impactful Engineering Leadership Looks Like”, and the question “Any suggestions on how to inspire my team?” published on Everwise, prompted… .
Sprint 0 “vs” Agile-Members of my teams usually look at me funny when I state at the start of a project that we need to plan. The boldest ones may even venture: “We’re… .
Basics of Performance Testing-At the risk of sounding harsh, I cannot remember the last time I interviewed a QA engineer who could clearly explain to me what a Performance Test is. Even more… .
How to Prioritize New Features vs Bug Fixes-The most lively debates that I regularly encounter leading an Engineering team revolves around the allocation of resources between bug fixing and the development of new features: “Why doesn’t Engineering… .
Scalable Software Architecture for a Startup-Say we are the founders of a startup and we just got a big fat check for our A-round funding. The VCs love our idea, and we all know that… .
QA does not stop in QA-Quality Assurance does not stop after the software receives the “thumbs up” from the QA team. QA must continue while the product is Live! … because QA is not perfect,… .
Migrating a Self-hosted Architecture to the Cloud-While it may possible to migrate a self-hosted architecture to the cloud with servers in identical configuration, it almost certainly will lead to a sub-optimal architecture in terms of performance,… .
Want to Predict your Cost in the Cloud? Roll Up Your Sleeves!- The selection of a cloud service provider is a critical decision for any a software service provider. Cost is, naturally, a key driver in this selection. However, predicting the cost… .
Deploying to the Cloud? Hang on to your Trousers!-My team and I have spent the past months investigating a deployment to the Cloud with vendors such as Amazon, Rackspace, GoGrid … to name a few who provide Infrastructure… .
Is Amazon After Oracle and Microsoft?-Amazon is quietly, slowly, but surely becoming a software vendor (in addition to being the largest etailer), with product offerings that compete directly, and in some cases, are broader than… .
Day-by-Day Model of an Iteration-This post presents a practical guide of what happens during a typical Agile iteration - a sort of play-by-play for each role in the team, day by day. .
Software Specification is a Process Not a Document (2 of 2)-Engineering depends on the business team to create actionable specifications early enough before a release, to control the scope to a level commensurate to resources and time available, and to… .
Software Specification is a Process Not a Document (1 of 2)-Software specification needs to be thought of as a process, rather than a document. The three phases of the process are: (1) Release Scoping, (b) Release planning / iteration sequencing… .
Planning – and Executing the Plan – are Part of the Job-Along with writing good code, planning and meeting the plan are part of an engineer's responsibilities, in order for the product to be successful and the business to thrive .
Agile Processes for Formal Releases-2-4 week milestones culminating in a show-and-tell where Engineering and Product Owner(s) engage in a discussion about priorities deliver a lot of the advantages of Agile methodologies, even without official… .
Cloud Computing – The Miracle Tool for Testing-Cloud Computing eliminates restrictions due to the number of servers in the QA lab, and thus allows concurrent testing by developers and QA engineers. By making it easy to test… .
“Dailies” Bolster Creativity-Design reviews do not simply allow me to have my design reviewed, but also give me the opportunity to inspire my team mates with my own ideas, and kickstart brainstorming… .
Design Review Checklist-Design Review Checklist: useful during the design, as well as during the review session .
In Favor of Design Reviews-Think holistically; code-and-test incrementally Design reviews give a chance for your teammates to contribute - and for you to communicate the impact of your proposed implementation .
In Favor of Architecture Design-An upfront architecture design phase can save a lot of time, and pain, prior to entering an Agile code development phase. Particularly, when complex requirements, high performance or new technology… .
Pair Programming – Does Anyone Do It?-Pair programming: not as efficient as individuals working on their own, but provides valuable benefits: code reviews and joint ownership of the code .
MVP – Minimum Viable Product-Defining the Minimum Viable Product requires the selection of a segment of target customers and deliver the smallest critical mass of features - as early as possible - provided that… .
Who Owns Quality? Part 5 and end-By testing early, we improve the predictability of the release, and we shorten the time to release. .
Who Owns Quality? Part 4-We examine how we modulate our testing efforts throughout the various phases of a project, and how the roles of architects, developers and testing engineers evolve accordingly .
Who Owns Quality? Part 3-"Test early, test often" applies to performance testing - which needs to be run continuously starting at the architecture design phase all the way through the end of the project… .
Who Owns Quality? Part 2-Developers must take ownership of testing their code for functionality, integration and performance .
Who Owns Quality? Part 1-Understanding what role in the Engineering team owns quality is critical to determining how we run our projects .
About Software Engineering – from the Trenches-Software Engineering applies a holistic optimization to all the tasks, beyond coding and testing, involved in creating a software product .