Skip to main content

Cracking the Code of IT Project Delivery: Lessons from 20 Years in the Field


In August 2003, I started my professional career as an IT consultant at Accenture. This month marks my 20th work anniversary, a milestone that I celebrate with pride :-). Over these two decades, I have traversed the spectrum of IT project delivery, wearing various hats—developer, tester, business analyst, functional and technical analyst, all the way up to project management, test management, and solution architecture.

Yet, despite this experience, I remain consistently amazed at the challenges inherent in delivering IT projects on time, within budget, and meeting the expected quality. While software development is very rational, IT projects are very human and often irrational endeavors. While many managers stare blindly at objective metrics like development mandays or number of lines of code produced, it is essential to recognize that the development effort forms only a fraction of the entire project endeavor. Typically, the stumbling blocks in IT projects do not stem from development but rather from other facets.

How often have we not encountered projects for which the preparation phase takes months if not years, only to have the IT team being asked to implement the solution within a few months?

Once we realize and accept that IT projects cannot be nicely planned in a perfect Microsoft Project planning, because of their complexity, but even more because of all the human-factors involved in a project, we can better cope with it. Enter the philosophy of the Agile movement, i.e. advocating the continuous embracing of changes in vision, requirements and scope. Unfortunately, Agile consultants have taken over the movement by introducing all kinds of ceremonies and methodologies, which all aim to increase predictability. These slightly contradict the initial philosophy of the Agile movement. While some level of planning and forecasting remains necessary for budgeting resources, these should serve as guiding principles and not rigid as constraints.

Drawing from the successful IT project I have witnessed, several key practices stand out for effective IT project delivery:

  • Optimal Project Size: Strive for projects that are neither too small nor too large. Projects in the range of 300 to 600 man-days are in my opinion optimal, allowing for a dedicated team without overwhelming overhead.

  • Dedicated Team: A focused, dedicated team of a few individuals outperforms a larger team with fragmented commitments. This arrangement fosters accountability (everyone is accountable for the full delivery), teamwork, and focus (concentration).

  • Hands-On Pragmatism: Team members should embrace well-defined roles while remaining open to assisting with other tasks when needed. Clear alignment points (like e.g. daily stand-ups) and communication channels are important, but excessive ceremonies can be counterproductive (instead favor asynchronous alignment where possible).

  • Iterative Approach: Begin with a high-level vision, blueprint, and architecture and take sufficient time to define this well, then progressively refine the details through iterative cycles.

  • Short Feedback Loops: Maintain frequent communication between the product owner and developers throughout ticket design and testing phases. Too often, a ticket is put to "Blocked" and moved to the next sprint, because something is missing for a developer. Obviously, this should be avoided, as a good product owner should be able to rapidly complete anything missing in the ticket. Additionally it is highly productive if a developer asks an immediate quick validation from the product owner when he finished the story. This way most issues can immediately be identified and resolved, while everything is still fresh in the developer’s mind. Too often testing is only done at the end of the sprint, which means there is a delay of multiple days between the development and the validation of stories.

By adhering to these principles, you automatically end up with

  • Small, dedicated teams of 4-6 individuals encompassing roles such as a product owner, a lead developer, and additional developers.

  • Projects that are well-contained and independent (autonomous), lasting 4-6 months from initiation to delivery. This timeline includes 1-2 months for preparation and alignment on blueprints, followed by 3-5 months of execution. This means they should not be part of complex transformation programs, which bring too much overhead. Note that the fact that projects should not be part of larger programs does not mean the senior management should not have a clear medium to long term roadmap with several projects to execute in order to achieve a well-defined goal. The point I am making is that once a project is launched, it should work as autonomously as possible and only report on a 6-8 week basis to the Project Sponsor (e.g. in a Sponsor meeting or Steering Group).

  • A focus on tangible deliverables deployed in production. Once delivered the team should support during maximum 1-2 months (after-care). If they continue on a next iteration of the same product, they can continue the support. If not, there should be a clear hand-over to a support organization, so that the product team is liberated to focus on the next project.

  • A less strict application of Scrum methodology, as all the Scrum ceremonies create much overhead and reduce initiative, pragmatism and accountability. I am therefore a huge fan of working in Kanban style, with a prioritized back-log where everyone takes the story on top of the backlog. This approach does not mean you should not do a demo every 2 weeks, but it avoids this artificial pressure of fixing a number of stories in a sprint (while in reality there are always stories added or removed for particularly good reasons).

Balance these best practices with awareness of potential pitfalls, like

  • Foresee sufficient contingency: work is always underestimated and certain tasks are always missed. It is important to be aware of it and foresee sufficient contingency budget at any phase of the project. This budget should however only be used for unknown, missed and underestimated work and not for changes or for extra refactoring. In other words, stick to the scope, even if you still have contingency budget left. Most likely you will still use it later in the project. Usually (and unfortunately) the biggest surprises come near the end of the project when all the bits and pieces need to fit together.

  • Strive for simplicity over complexity and be aware of over-engineering, i.e.

    • Product managers love to create a lot of features and complex business rules to manage all the exceptions. Continuous challenging is therefore needed to ensure that all logic and all features are really needed and create sufficient value;

    • Developers like to re-engineer code (the code of another developer is almost always poorly written) and build technical frameworks from scratch (often reinventing the wheel). It is important the technical lead or solution architect challenges continuously the team to see if existing internal assets cannot be reused or open-source tooling or libraries are not available. It is also important to make code as modular as possible, so that re-engineering can be done gradually (i.e. when adapting a module as part of a change, do a refactoring of just that module). This gives as additional advantage, that code does not need to be perfect. If the underlying assumption is that the module will likely be rewritten in the foreseeable future, you can focus on the actual functionality of the module and on non-functional requirements, like performance, stability and security.

  • Remember the 80-20 rule: often the happy flow can be implemented quite quickly giving the feeling to the whole team that the finish is near. However implementing all the unhappy and exception scenarios is typically more work and always underestimated.

  • Automate as much as possible and never underestimate maintenance. A task that is supposed to be done only once, will likely have to be redone a few weeks later, so try to automate it as much as possible from the first time you do the task.
    This also applies to testing. I am a major fan of testing automation, as it can save an enormous amount of time, not having to redo the same tests manually each time and avoiding time-consuming fixes in production due to regressions. However, it is important to be pragmatic. I have seen many projects where enormous efforts are spent on writing unit tests for all code, while the code can be much easier tested (and easier automated), when testing on a higher functional level. These types of higher level automated functional tests are also easier to understand for the product owner and are less prone to continuous maintenance (when minor changes to the code are made).

Obviously as software projects are irrational, almost every member of a project team will have a different vision of what should be done or not done to deliver the project in the best conceivable way. The above guidelines are therefore just my personal vision. In a project, each team member will have unique insights into achieving optimal project delivery. It is therefore crucial to find a way of working in which everyone feels well in the project team and improve continuously. This will give the biggest buy-in and the highest motivation to work on the project. Ultimately, motivated and skilled teams will always find a way to get the job done.

Comments

Popular posts from this blog

Transforming the insurance sector to an Open API Ecosystem

1. Introduction "Open" has recently become a new buzzword in the financial services industry, i.e.   open data, open APIs, Open Banking, Open Insurance …​, but what does this new buzzword really mean? "Open" refers to the capability of companies to expose their services to the outside world, so that   external partners or even competitors   can use these services to bring added value to their customers. This trend is made possible by the technological evolution of   open APIs (Application Programming Interfaces), which are the   digital ports making this communication possible. Together companies, interconnected through open APIs, form a true   API ecosystem , offering best-of-breed customer experience, by combining the digital services offered by multiple companies. In the   technology sector   this evolution has been ongoing for multiple years (think about the travelling sector, allowing you to book any hotel online). An excellent example of this

Are product silos in a bank inevitable?

Silo thinking   is often frowned upon in the industry. It is often a synonym for bureaucratic processes and politics and in almost every article describing the threats of new innovative Fintech players on the banking industry, the strong bank product silos are put forward as one of the main blockages why incumbent banks are not able to (quickly) react to the changing customer expectations. Customers want solutions to their problems   and do not want to be bothered about the internal organisation of their bank. Most banks are however organized by product domain (daily banking, investments and lending) and by customer segmentation (retail banking, private banking, SMEs and corporates). This division is reflected both at business and IT side and almost automatically leads to the creation of silos. It is however difficult to reorganize a bank without creating new silos or introducing other types of issues and inefficiencies. An organization is never ideal and needs to take a number of cons

RPA - The miracle solution for incumbent banks to bridge the automation gap with neo-banks?

Hypes and marketing buzz words are strongly present in the IT landscape. Often these are existing concepts, which have evolved technologically and are then renamed to a new term, as if it were a brand new technology or concept. If you want to understand and assess these new trends, it is important to   reduce the concepts to their essence and compare them with existing technologies , e.g. Integration (middleware) software   ensures that 2 separate applications or components can be integrated in an easy way. Of course, there is a huge evolution in the protocols, volumes of exchanged data, scalability, performance…​, but in essence the problem remains the same. Nonetheless, there have been multiple terms for integration software such as ETL, ESB, EAI, SOA, Service Mesh…​ Data storage software   ensures that data is stored in such a way that data is not lost and that there is some kind guaranteed consistency, maximum availability and scalability, easy retrieval and searching

IoT - Revolution or Evolution in the Financial Services Industry

1. The IoT hype We have all heard about the   "Internet of Things" (IoT)   as this revolutionary new technology, which will radically change our lives. But is it really such a revolution and will it really have an impact on the Financial Services Industry? To refresh our memory, the Internet of Things (IoT) refers to any   object , which is able to   collect data and communicate and share this information (like condition, geolocation…​)   over the internet . This communication will often occur between 2 objects (i.e. not involving any human), which is often referred to as Machine-to-Machine (M2M) communication. Well known examples are home thermostats, home security systems, fitness and health monitors, wearables…​ This all seems futuristic, but   smartphones, tablets and smartwatches   can also be considered as IoT devices. More importantly, beside these futuristic visions of IoT, the smartphone will most likely continue to be the center of the connected devi

Neobanks should find their niche to improve their profitability

The last 5 years dozens of so-called   neo- or challenger banks  (according to Exton Consulting 256 neobanks are in circulation today) have disrupted the banking landscape, by offering a fully digitized (cfr. "tech companies with a banking license"), very customer-centric, simple and fluent (e.g. possibility to become client and open an account in a few clicks) and low-cost product and service offering. While several of them are already valued at billions of euros (like Revolut, Monzo, Chime, N26, NuBank…​), very few of them are expected to be profitable in the coming years and even less are already profitable today (Accenture research shows that the average UK neobank loses $11 per user yearly). These challenger banks are typically confronted with increasing costs, while the margins generated per customer remain low (e.g. due to the offering of free products and services or above market-level saving account interest rates). While it’s obvious that disrupting the financial ma

Beyond Imagination: The Rise and Evolution of Generative AI Tools

Generative AI   has revolutionized the way we create and interact with digital content. Since the launch of Dall-E in July 2022 and ChatGPT in November 2022, the field has seen unprecedented growth. This technology, initially popularized by OpenAI’s ChatGPT, has now been embraced by major tech players like Microsoft and Google, as well as a plethora of innovative startups. These advancements offer solutions for generating a diverse range of outputs including text, images, video, audio, and other media from simple prompts. The consumer now has a vast array of options based on their specific   output needs and use cases . From generic, large-scale, multi-modal models like OpenAI’s ChatGPT and Google’s Bard to specialized solutions tailored for specific use cases and sectors like finance and legal advice, the choices are vast and varied. For instance, in the financial sector, tools like BloombergGPT ( https://www.bloomberg.com/ ), FinGPT ( https://fin-gpt.org/ ), StockGPT ( https://www.as

Can Augmented Reality make daily banking a more pleasant experience?

With the   increased competition in the financial services landscape (between banks/insurers, but also of new entrants like FinTechs and Telcos), customers are demanding and expecting a more innovative and fluent digital user experience. Unfortunately, most banks and insurers, with their product-oriented online and mobile platforms, are not known for their pleasant and fluent user experience. The   trend towards customer oriented services , like personal financial management (with functions like budget management, expense categorization, saving goals…​) and robo-advise, is already a big step in the right direction, but even then, managing financials is still considered to be a boring intangible and complex task for most people. Virtual (VR) and augmented reality (AR)   could bring a solution. These technologies provide a user experience which is   more intuitive, personalised and pleasant , as they introduce an element of   gamification   to the experience. Both VR and AR

From app to super-app to personal assistant

In July of this year,   KBC bank   (the 2nd largest bank in Belgium) surprised many people, including many of us working in the banking industry, with their announcement that they bought the rights to   broadcast the highlights of soccer matches   in Belgium via their mobile app (a service called "Goal alert"). The days following this announcement the news was filled with experts, some of them categorizing it as a brilliant move, others claiming that KBC should better focus on its core mission. Independent of whether it is a good or bad strategic decision (the future will tell), it is clearly part of a much larger strategy of KBC to   convert their banking app into a super-app (all-in-one app) . Today you can already buy mobility tickets and cinema tickets and use other third-party services (like Monizze, eBox, PayPal…​) within the KBC app. Furthermore, end of last year, KBC announced opening up their app also to non-customers allowing them to also use these third-party servi

Eco-systems - Welcome to a new cooperating world

Last week I attended the Digital Finance Summit conference in Brussels, organized by Fintech Belgium, B-Hive, Febelfin and EBF. A central theme of the summit was the cooperation between banks and Fintechs and more in general the rise of ecosystems. In the past I have written already about this topic in my blogs about "Transforming the bank to an Open API Ecosystem ( https://www.linkedin.com/pulse/transforming-bank-open-api-ecosystem-joris-lochy/ ) and "The war for direct customer contact - Banks should fight along!" ( https://www.linkedin.com/pulse/war-direct-customer-contact-banks-should-fight-along-joris-lochy/ ), but still I was surprised about the number of initiatives taken in this domain. In my last job at The Glue, I already had the pleasure to work on several interesting cases: TOCO   ( https://www.toco.eu ): bringing entrepreneurs, accountants and banks closer together, by supporting entrepreneurs and accountants in their daily admin (and in the f

PFM, BFM, Financial Butler, Financial Cockpit, Account Aggregator…​ - Will the cumbersome administrative tasks on your financials finally be taken over by your financial institution?

1. Introduction Personal Financial Management   (PFM) refers to the software that helps users manage their money (budget, save and spend money). Therefore, it is often also called   Digital Money Management . In other words, PFM tools   help customers make sense of their money , i.e. they help customers follow, classify, remain informed and manage their Personal Finances. Personal Finance   used to be (or still is) a time-consuming effort , where people would manually input all their income and expenses in a self-developed spreadsheet, which would gradually be extended with additional calculations. Already for more than 20 years,   several software vendors aim to give a solution to this , by providing applications, websites and/or apps. These tools were never massively adopted, since they still required a lot of manual interventions (manual input of income and expense transaction, manual mapping transactions to categories…​) and lacked an integration in the day-to-da