My Service

Freelancing for Technical Control of Software Projects

What it Is About

An extensive software solution is to be developed, altered, introduced, or newly adjusted in your company.

There are many users and teams involved. The software is used from several locations or countries. Different systems need to be connected to each other or integrated.

Users, management, and technical persons in charge ought to collaborate. Architectural topics in regard to hardware and software have to be clarified. Requirements need specification, time and budget are limited.

The software is expected to be safe, performant, and highly accessible.

And, last but not least, it should do what is expected from it: have a measurable positive effect on your business.

Und sie soll nicht zuletzt das tun, was von ihr erwartet wird: sich messbar positiv auf Ihr Geschäft auswirken.

I have plenty of experience with challenges of this sort and will help you approach the interpersonal and technical topics related to it and bring them to success.

I Will Help You Systematically in Reaching Your Goals

Analysis of the Starting Situation

Describe your situation and your issue to me. Complex software systems with many participants require a profound understanding if improvements and changes are to be induced. For this purpose, I speak to the participants of the different areas of responsibility. I gain insights on the given infrastructure, the current processes, and needs.

Clarification of Objectives and Direction of the Project

„What are we heading for?“ is the next question that needs to be addressed, „What should be the outcome?“.

Describe your objectives to me which result from your business’s area of responsibility. I think it important to additionally make the viewpoints and needs of all other participants of the project transparent in order to understand motivations and also to be able to meet potential conflicts early on. From your objectives results a clear direction for the project to start off towards.

Business Process Analysis and Requirements Management

For a successful software project it is indispensable to continuously be clear about the given requirements and their prioritization. I do not think it necessary to specify all the requirements down to the finest detail at the beginning of a project. On a rough level, however, the striven solution should be described in full. This already assumes extensive work that ideally is supported and promoted by on-site workshops.

Which group of users is supposed to be able to use the software? What is the interface between the software and the users supposed to look like? Which actions is the software supposed to enable the users to do? Which data is supposed to be saved? Which business processes are supposed to be realized by the software? Which requirements follow in regard to the physical surroundings and used technology? Which quality objective is the striven solution supposed to meet?

Mediation Between All Participants of the Project

Throughout extensive software projects problems often occur due to insufficient communication. The parties involved in the project have very different points of view of the mutual project.

Managers, for example, mind the business processes and overall economic viability, database administrators mind secure and performant databases, operators mind a stable technology and meeting standards and requirements. For the software users usability and work simplification are paramount. While they seek actual solutions for their issues, the support often wants to mark the trouble ticket as resolved as quickly as possible.

Oftentimes on the part of the user different departments are involved, resulting in different requirements and points of view there, too. What is more, participants often work at different places and in different time zones.

In situations like that, I obtain an overview of the major participants and make sure they communicate, decide, and come to agreements efficiently, effectively, and in as constructive of an atmosphere as possible.

Participation in the Architecture of Software and Hardware

Decisions made on the architecture early on, later on often have a significant impact on the solution. According to my understanding, architecture is a continuous process that is carried out not by single architects but that requires a constant dialogue with all participants.

When participating in the architecture of software solutions, several aspects are important to me: The product should be adjustable as easily as possible so that new circumstances can be reacted to with ease. At the same time, the costs of the architecture need to be borne in mind and minimized. The required quality objectives of the product need to be met and the satisfaction of the responsible persons and users involved should be as high as possible.

Project Planning and Continuous Project Management

Throughout complex software projects the participants constantly learn something new: about other participants, about the solution options of the software, and about the given and desired processes. What is more, oftentimes the outer circumstances change, the people involved switch, unforeseen obstacles or perhaps new possibilities appear.

IIn a setting that dynamic, I think it sensible to have a rough planning and fixed orientation for the overall project but to think in rather short terms when it comes to details. Extensive interventions in existing systems should be prepared carefully. In case of altering and developing new software, I think short cycles in which work can continue iteratively are sensible. This allows for a continuous control and alignment on those elements contributing the most to value creation.

Workshops, Training Courses, And General Consultancy

In the different phases of software projects it often makes sense to conduct workshops or training courses. Usually real, personal on-site meetings are most effective. For organizational reasons or due to cost factors, phone and video conferences or web meetings and online trainings may be suitable as well.

I will gladly prepare and perform according workshops or training courses for you. I will also be gladly available as a consultant for any other question related to software projects.

Software Development in Short Cycles, Continuous Delivery

I think it important that development teams, especially for complex software developments, start delivering functioning software from the beginning. Shortly after the project start this software includes only a few of the functions that are expected in total. It should, however, already be a productively usable piece of software. In short cycles of a few weeks each, the software will gradually be expanded by whatever promises the most immediate added value or is most crucial to the project’s progression. From a project perspective, the development in phases helps working dedicatedly towards realistic interim goals and making good estimations of time and expense.

If one wants to further optimize the development processes, by building a continuous delivery pipeline it can be accomplished that extensions and changes can be brought into production risk-free at almost any time. I will gladly advise you in building according processes and structures and supervise the practical implementation.

Supervision of the Operation / Service and Support

Running an extensive software for many users requires many skills and activities even when no changes are due and all the software should do is “just work”. The running servers need to be monitored regarding their stability and resources, and the software itself should also be subject to monitoring in order to reveal rare faults, too, and to be able to obviate critical situations precociously. Frequent maintenance works are pending, components put into place by third parties need to be updated, and users expect a functioning support they can turn to in case questions or problems arise.

Among the operators usually specialists from various areas (databases, server, network, etc.) work together, among the support trained persons with various degrees of background knowledge can be found. The costs of the support are to be kept in reasonable limits while at the same time ensuring that the software can be worked with well. Known issues or problems that keep on reoccurring need to be communicated to the development by the support in order to achieve improvements and solve problems. I support establishing according structures and purposefully bringing together the persons involved.

Escalation Management

Malfunctions and failures of huge software systems can cause great damage quickly. Even when beforehand everything was done to prevent such situations, they can never be entirely ruled out. In the event of a failure, measures need to be taken quickly yet prudently, an overview of the own actions kept, relevant persons brought together, communication done skillfully and highly efficient, and a cool head kept. I have experience with situations like that, too, and will gladly help you resolving the malfunction swiftly, finding its cause, and preventing similar problems in the future.

Evaluation

In how far does the realized project fulfill our expectations and requirements? Is it successful? Does something need to be corrected? What can be improved upon? There are different approaches to answer questions of this kind.

It is helpful when at the beginning of a project measurable objectives were defined which can be checked. For example, it could be measured how often a certain module of the software is used by users per day, how many trouble tickets get issued for a module, to which extent a working area is exonerated by a new software, or how much revenue is generated using a software. These are attempts to measure the success as objectively as possible.

However, it might also make sense to be pragmatic about a subjective evaluation. For example, one could ask simple questions to the participants, such as: Does your organization experience a positive effect because of the project? Do the users like the system and are they using it? Do you assume that the development team did their best and would you recommend this team?

Both the rather objective and rather subjective approach have – depending on the situation – their justification and advantages. I will gladly align with you on this topic and conduct evaluations for you.