Skip to main content

Corporate Series: (1) Processes

This post comes as an observation on what is happening around us, in so called ‘Corporates’. I just realize that there will be more than one posts. There are many ideas and notes, that I want to treat them separately.
Before going further, I would like to mention that this post doesn’t have a connection with the company that I work for. It is only the output of different discussions that I had with friends that work around the globe for different ‘Corporates’.

Why I’m using ‘Corporate’ with ‘ ‘?
These companies are usually under 1.000 people and try to play like a ‘Corporate’, but in reality they are not ready for something like this. They have complex process and don’t care to optimize them. They forget that behind a process is one or more person that will run it and a process needs to add structure, clarity and repeatability – not only power and control. For a ‘Corporate’ like this, an external audit or an external opinion from a consultant is not acceptable, is too expensive and might damage the revenue, by adding extra costs.

Processes and Standards  
It is important to remember that not all companies are like this. I discovered (and still discovering) great companies, that yes, are truly a corp., but at the same time you don’t feel them like this. Even if they have processes, different communication paths and a complex structure, behind them you find people that share the same goals or the same vision (but from different perspective).
Imagine that you need to pre-order the lunch for workshop. You know that someone from the attendees is vegan. At the same time, you are aware that the current supplier(s) doesn’t have a vegan menu. In a so called ‘Corporate’, even if you reach a person, not only the web interface of a request form, you will find out:
-        Sorry, the current supplier doesn’t have a vegan menu and the company standard doesn’t allow us to order from other external provider(s).
A response like this is not useful and you will not have too many options. Well, there will be no option for you in such a case.
Yes, it is true that the current process and company standards doesn’t allow you to order from another provider, but we need to remember that in general a process is applicable in most cases (let’s say, 99%), but there are exceptional cases that needs to be treated separately. You might even realize that you could find solutions for different problems by respecting the process 100% - but with the support of a person, not only from the web form.
You might find out:
-          Unfortunately, we are not allowed to order from other provider. Let me check if I can order more fruits and salads. In this way, we might be okay.
Yes, this is not the perfect solution, but it is a better solution, than nothing.
Or even better:
-          Unfortunately, we are not allowed to order from other provider. Let’s me check if I can order more fruits and salads. In this way, we might be okay. Also, I will discuss with the process owner or with the suppliers owner to see if we can improve the current setup and to avoid such situations in the near future. I will follow-up with you related to this topic once I have updates.
Even if we have the same response with a hot-fix for the current solution, there is also something more. Someone is ready to help us and see what we can change (if is necessary) to avoid this kind of situations.

Should we change the current process for an exception
Of course, we should not change flows and processes, for each exception. But we need to be aware if we need to improve or change current processes. We are living in a world that changes every second. It is impossible to assume that a thing that is applicable NOW, will be also applicable in 2 or 3 years.
This is why it is important to be aware and try to get feedback related to current processes and needs. Simple solutions, like offering a preferred (recommended) list of suppliers, but also allow other suppliers to be used as long as some company standards are respected are enough. In most cases people will use the standard suppliers.

Conclusion: Don’t forget to CARE    
In situation like this, the thing that is the most important in my perspective is people. They need to CARE. They need to care about others, they need to care about what you want to do and they should be open to help you. On top of this, they should CARE about the current PROCESSES and STANDARDS and are ready to improve them when necessary.
The worst case where you can end up is with a company or group of people that don’t care anymore. They don’t care about the real needs and the others. They look and see only the process and company standards. With a team like this, I’m pretty sure that you will end up with a lot of frustration, unhappy people that will leave the company OR they will not care anymore also.

Don’t forget to CARE and HELP others. In the end we have the same purpose. 

Comments

Popular posts from this blog

How to check in AngularJS if a service was register or not

There are cases when you need to check in a service or a controller was register in AngularJS.
For example a valid use case is when you have the same implementation running on multiple application. In this case, you may want to intercept the HTTP provider and add a custom step there. This step don’t needs to run on all the application, only in the one where the service exist and register.
A solution for this case would be to have a flag in the configuration that specify this. In the core you would have an IF that would check the value of this flag.
Another solution is to check if a specific service was register in AngularJS or not. If the service was register that you would execute your own logic.
To check if a service was register or not in AngularJS container you need to call the ‘has’ method of ‘inhector’. It will return TRUE if the service was register.
if ($injector.has('httpInterceptorService')) { $httpProvider.interceptors.push('httpInterceptorService&#…

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine:
threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration:

TeamCity.NET 4.51EF 6.0.2VS2013
It seems that there …

Run native .NET application in Docker (.NET Framework 4.6.2)

Scope
The main scope of this post is to see how we can run a legacy application written in .NET Framework in Docker.

Context
First of all, let’s define what is a legacy application in our context. By a legacy application we understand an application that runs .NET Framework 3.5 or higher in a production environment where we don’t have any more the people or documentation that would help us to understand what is happening behind the scene.
In this scenarios, you might want to migrate the current solution from a standard environment to Docker. There are many advantages for such a migration, like:

Continuous DeploymentTestingIsolationSecurity at container levelVersioning ControlEnvironment Standardization
Until now, we didn’t had the possibility to run a .NET application in Docker. With .NET Core, there was support for .NET Core in Docker, but migration from a full .NET framework to .NET Core can be costly and even impossible. Not only because of lack of features, but also because once you…