Tackling Technology Strategy with Portfolio Management

Application Portfolio Management (APM) draws inspiration from financial portfolio management, which has been around since at least the 1970s. By looking at all applications and services in the organization and analyzing their costs and benefits, you can determine the most effective way to manage them as part of a larger overall strategy. This allows the architect or engineering leader to take a more strategic approach to managing their application portfolio backed by data. Portfolio management is crucial for creating a holistic view of your team’s technology landscape and making sure that it aligns with business goals. ...

April 27, 2023 · 6 min · Kevin Sookocheff

Project Management for Software Engineers

At some point in your career you will be asked to manage a project. This can be intimidating, it can be scary, but it doesn’t have to be. We can leverage some time-honoured techniques, and adapt them to the unique approach required for software projects to deliver on time, on budget, and with success. This article is a collection of techniques I’ve learned for managing projects over time, that attempts to combine agile best practices with project management best practices. If you study project management to any level of depth, it is inevitable that you will come across the Project Management Institute, or PMI. The PMI is a global professional body that provides training and certification in project management topics. PMI provides different certification options, including some for Agile processes and Scrum. ...

March 8, 2023 · 16 min · Kevin Sookocheff

Connecting Technology to the Needs of the Business

All healthy technology discussions should begin with business goals and use those goals as a reasonable set of guidelines to focus technology investment decisions. These business goals are best articulated from a deep understanding of what the company, the product team, or the marketing team want to accomplish. In a business-first model, technology is forced to balance the desires for technical effectiveness and efficiency with the operational needs of the business. This balance can be difficult to achieve if you’ve ended up in a leadership position from a technology background — you are used to solving problems by writing code and it becomes difficult to think of other ways to solve them! ...

June 21, 2021 · 11 min · Kevin Sookocheff

Building Learning Communities

Leading software companies have discovered that developing capable technology is not enough to guarantee long-term success. To stay relevant, software leaders need to develop and support the repeatable systems necessary to develop and sustain knowledge and expertise. Many organizations have taken inspiration from Spotify’s culture and adopted the concept of a guild or community of practice to connect engineers throughout the organization and steer them towards common goals. As organizations adopt this model, what is often missing is a clear understanding of the purpose of communities of practice and a repeatable process for developing the communities to their fullest potential. This post provides some guidance based on our experience developing a community of practice at Workiva, it also includes some best practices from the book Cultivating Communities of Practice. ...

March 24, 2020 · 7 min · Kevin Sookocheff

A Principled Approach to Architecture

A principle is a concept or value that is a guide for behaviour or evaluation. — Wikipedia This post presents a principled approach to architecture. These principles specify what I believe is important about architecture, without diving into any details about how an architect should work. No matter how an architect works day-to-day, by following principles, you can be sure you are providing value in the right areas. As usual, this post is personal opinion, and I’m interested in hearing any differing or similar opinions in the comments. ...

March 23, 2018 · 5 min · Kevin Sookocheff
Bridge

Software Architecture as Business Analysis

Architecture is the bridge between (often abstract) business goals and the final (concrete) resulting system. – Software Architecture in Practice A software architect should act as a bridge between business stakeholders and technical stakeholders. To be this bridge requires understanding the business problem being solved, and being able to distill that problem into a technical solution that a software team can implement. In essence, the architect acts as a technical business analyst that helps to define the needs of an organization and recommend solutions that deliver value to stakeholders. It just so happens that an architect’s stakeholders include project managers, software developers, management, and other software architects. This article describes how a software architect can apply methods from business analysis to make their job easier and to satisfy these different stakeholders. ...

March 20, 2017 · 6 min · Kevin Sookocheff

Creating a Service Oriented Organization

The decision to build products using a service-oriented (or microservice) architecture has enormous technical and organizational impact that is reflected in everything from how teams write code, to how they communicate, to how the organization itself is structured. Given the breadth and depth of impact this decision has, it pays to reflect on why an organization chooses a service oriented architecture, how an organization can support such an architecture, and how teams and individuals can support the organization in successfully adopting a service oriented platform. ...

October 30, 2016 · 6 min · Kevin Sookocheff