Thursday, 23 January 2025

Fra idé til fundament: Sådan starter vi et IT-projekt rigtigt

Når et nyt IT-projekt sparkes i gang, er det fristende at springe direkte til teknologivalg, implementeringen af nye fede deatures, eller systemudvikling. Men succesfulde projekter starter med et solidt fundament. 

Her giver vi et indblik i, hvordan man kan strukturere opstartsfasen af et IT-projekt, hvilke overvejelser man bør gøre sig omkring projektstyring, og hvordan man griber teknologivalg og systemlandskab an.


Første halve år – det handler om at stille de rigtige spørgsmål

I projektets første seks måneder fokuserer vi på afklaring, analyse og planlægning. Det er her, vi lægger det grundlag, som resten af projektet skal bygges på:

Afklar forretningsbehov

Hvad er det egentlige behov? Vi går i dialog med brugerne og forretningen for at forstå, hvilke udfordringer der skal løses, og hvad der vil skabe reel værdi.

Identificér interessenter

Hvem bliver påvirket – og hvem skal involveres? Vi kortlægger nøglepersoner og afstemmer roller, ansvar og forventninger.

Forandringsledelse

Ethvert IT-projekt er også en organisatorisk forandring. Tidlig indsats på kommunikation, ejerskab og involvering kan gøre forskellen mellem modstand og medvind.

Metodik og processer

Skal vi arbejde agilt, vandfald, hybrid – eller noget helt andet? Vi vælger en projektmetodik, der passer til projektets kompleksitet, organisationens modenhed og behovet for fleksibilitet.

Kortlæg eksisterende systemer

Hvad har vi allerede – og hvad fungerer? En systemanalyse skaber overblik og forhindrer, at vi opfinder noget, der allerede findes.

Systemlandskab og teknologivalg

Vi vurderer mulige arkitekturer: Skal vi integrere, udskifte, bygge selv eller købe standardløsninger? Teknologivalg skal understøtte både nuværende og fremtidige behov.

Dokumentation

Vi dokumenterer alt undervejs – ikke som papirarbejde, men som beslutningsgrundlag og viden til fremtiden.

Opstartsmøde

Et fælles kickoff er både symbol og praksis: Det samler projektet, sætter retningen og sikrer commitment fra ledelse og nøgleinteressenter.

Hvilken projektstyringstilgang passer bedst?

Der findes ikke én rigtig metode – men der findes en rigtig metode til det konkrete projekt. Er projektet præget af høj kompleksitet og skiftende krav, er en agil tilgang som Scrum eller SAFe oplagt. Har vi derimod et klart defineret mål og en stabil kravspecifikation, kan en traditionel vandfaldsmodel være mere hensigtsmæssig. Ofte ender valget på en hybridmodel, hvor man kombinerer strukturen fra klassiske metoder med fleksibiliteten fra agile principper.

Det vigtigste er ikke navnet på metoden, men at teamet er enige om rammen – og at den understøtter både fremdrift og samarbejde.

Teknologivalg og systemlandskab – tænk langsigtet

Teknologivalg bør aldrig træffes isoleret. Det handler ikke kun om funktionalitet, men også om:

  • Integration med eksisterende systemer
  • Skalerbarhed og vedligehold
  • Sikkerhed og compliance
  • Brugeroplevelse
  • Totaløkonomi (TCO)

Vi anbefaler at udarbejde en arkitekturvision og tænke i systemlandskab frem for enkeltstående løsninger. Det skaber sammenhæng og understøtter en digital strategi, der holder.

Konklusion: Opstarten er en investering – ikke en forsinkelse

Et velplanlagt første halve år skaber klarhed, ejerskab og retning. Det kan føles som en "langsom start", men i praksis er det en investering, der minimerer risiko, sparer ressourcer og gør det nemmere at levere værdi til tiden og inden for budgettet.

Her er præsentationen i form af PowerPoint. Hvis du vælger "Open speaker notes" åbnes præsentationen i et separat vindue, så kan du se mange flere detaljer der er på næsten hver af slides.

Tuesday, 24 December 2024

Change Management in IT projects

In the world of IT, almost everyone is involved with projects, directly or indirectly. While there are several standardised project methods, the human element behind the projects is neglected and normally does not play a bigger role, even though it significantly impacts the project's success or failure.

Project Landscape and Focus

Top Management but also Project Leaders often lack adequate insight into the changes a project will bring. Top Management is occupied mostly focusing on ensuring the strategic plans are executed. Project Leaders on the other hand focus mainly on deliverables and timelines. 

And what about addressing human dynamics?

The projects introduce societal and technological changes, and everything is done at a fast pace. Those changes impact people, and prioritising the human aspect must be done, mostly by learning from individuals' experiences in the "project universe".


Features vs Feelings

Projects often focus on delivering technical features, on the other side failing to address the human side of changes to be implemented.

Change Management needs to ensure that the functional features implemented are also embraced by users.



Good Practices doing Change Management

The employees (and generally all stakeholders, especially i.e. end users) should be involved already from the earliest stages of projects. By "involving" it is not only meant to explain what is going to be done, but much more to listen to them, hear their concerns, and address the resistance. So the Change Management needs to be started alongside project initiation, to enable the organisation integration to happen seamlessly with technical implementation.

To ensure smooth organisational transitions, the projects must not just be implemented but also adopted.


Do not Overload the Organisation

Oftentimes the top management's focus is much more on identifying what projects need to be launched to implement the company strategy, and the organisation's "project capacity" is forgotten. Launching too many projects simultaneously can overwhelm teams, leading to reduced benefits, sometimes even to project failures. Maintaining a manageable strategic pacing is crucial for both organisational health and project success.


Change Leaders' Mission, Core Qualities and Tools

To be successful as a Change Leader, those are the main focus points:

  • Ensure the top management's support;
  • Involvement, having the focus on a human-centred approach, prioritising the people impacted by the projects;
  • Communication needs to be strong, clear, timely and effective;
  • Collaboration with Project Leaders, and while they focus on execution, Change Leaders address the human and organisational challenges, thus aligning technical and emotional dimensions;
  • Heatmaps help identify those departments most affected by projects, ensuring balanced workloads and readiness for change, avoiding overloading;
  • Choosing and using one of the Change Management methods, like the ADKAR model (Awareness, Desire, Knowledge, Ability, Reinforcement) helps analyse and address resistance, and foster engagement.

Future of Change Management

The top management is increasingly recognising Change Management's significance for long-term success, and it’s evolving into a broader organisational role beyond individual projects.
Its importance will also grow as a result of continuous technological advancement, which is happening at an increasingly quicker pace.
To ensure sustainable growth, organisations must integrate change leadership into the core strategies.


Monday, 16 December 2024

Why use Pascal programming language?

Why would anyone want to use Pascal, a programming language designed decades ago?

Some might be surprised that Pascal is still "alive" today, and does not belong to some IT museum.


Let us try to see what Pascal can be used for nowadays.


Educators and students

Pascal is used by both educators and students.

Learning programming fundamentals

Pascal is, in fact, an excellent choice for learning fundamental programming concepts, as it encourages good programming practices using structured programming and data structuring.

Math

There is a rumour that mathematicians like to use Pascal. Why? Well, first of all, remember that it was named after the French mathematician, philosopher and physicist Blaise Pascal. ☺

Also, it might be because of its correctness in terms of how it is written.
Mathematicians hate to see expressions like a=a+1 ❌ in some other programming languages, simply because a is not equal to a+1 in mathematics. 
In Pascal, one writes a:=a+1 ✅ which is not a mathematical expression, thus acceptable.
One can correctly use the equation symbol in Pascal, i.e. in the "if" statement: if a = 3 which is fully acceptable by mathematicians. ☺

OOP

Pascal was originally a procedural language, but what about Object-Oriented Programming? 

The more modern variants like Object Pascal, Free Pascal, and Delphi support OOP.


Cross-Platform Compatibility

Pascal compilers are available for various platforms/operating systems: Windows, OS-X and Linux.


Efficiency and Performance

Pascal is not an interpreted but a compiled language. The code is first compiled, then linked, and then executed:

Target OS: Linux for x86-64

Compiling main.p

Linking main

26 lines compiled, 2.8 sec

The code generated by Pascal compilers is highly efficient, making it a good choice for performance-critical applications.


Embedded systems

Pascal's compiled nature and strong type system contribute to the development of efficient and reliable embedded systems.


Legacy Systems

Many systems were developed with Pascal or related programming languages in the 1980s and 90s. Many of those systems still need to be operational, i.e., in industries like banking and manufacturing, simply because porting them to a modern programming language or platform is very expensive and complex. You know the saying, "If it works, do not fix it", and this is especially true when we talk about i.e. core banking systems.


Nostalgia

 Pascal still holds a special place in the hearts of many programmers. 💖


Compilers

Compilers are available today, and some are free, thanks to Florian Klaempfl and others

Free Pascal Compiler version 3.2.0 [2022/02/07] for x86_64

Copyright (c) 1993-2020 by Florian Klaempfl and others


IDE

The very popular IDE that can be installed on your computer locally is Lazarus.


Online IDEs

Some of the online IDEs are:

All of them are either free or have a free tier.


Conclusion

Pascal is still alive 🌞 why not try it?

Friday, 27 September 2024

High availability (HA) and the 9's

High availability (HA) is what everyone wants nowadays - the higher, the better.

The targeted availability depends on the business need, as it is different for i.e. a system that controls a billboard standing by the road somewhere, or for a system controlling a nuclear power plant.




Systems require regular maintenance, so availability is affected by both the scheduled and unscheduled unavailability. For example: a service may be down because of a regular patch of an operating system or a software deployment, but it could also be unavailable after some non-redundant power supply goes down somewhere in some single-point-of-failure component.

The term "availability" is not equal to "uptime", but the calculation is trivial:
  • Each year has about 365.25 days, which is 8,766 hours.
  • Let us say that a service had 8 hours of downtime over a year.
  • Then the uptime is 8,766 – 8 = 8,758 hours.
  • And the availability (in %) in this case is calculated as 8,758 hours / 8,766 hours * 100 % =  99.9087 %  ≈ 99.91 % so a three 9's.

What is the "three 9's"?

System availability is often measured by the "number of nines", so how many "9" figures are present in the availability percentage.

Here are some approximate calculations for availabilities for different downtimes:



When a system is designed for a customer, and they are asked about what availability they would like to have, it is only natural that they say 99.999 % or even better. 

It is first when they hear the price for the wanted uptime they start to remember their ROI and to consider other options.

The problem with those costs is that they are not progressing linearly with adding more 9's  - it goes more to an exponential growth.

It is not an easy task to calculate those expenses, as many of the factors are influencing the costs.

Let me try to mention some:
  • Architecture (both system and software)
  • Team (Operations / DevOps / Developers)
  • Monitoring
  • Maintenance
  • Testing & Fire drills
  • Processes implemented
  • Documentation



For a discussion regarding this matter, please join/visit the "Mission Critical Systems Forum" group, this post.



Fra idé til fundament: Sådan starter vi et IT-projekt rigtigt

Når et nyt IT-projekt sparkes i gang, er det fristende at springe direkte til teknologivalg, implementeringen af nye fede deatures, eller sy...