|
Hi
Apologies for the long post, but there is a more directed question at the end of the slightly rambling background.
In September, I started working for an offshoot of another company, but since then, our IT departments are merging, and the cultures are completely different. In our office, established for just over a year there's me with bags of commercial IT experience, plus a guy with a PhD in aeronautical engineering, excellent dev & very quick on the uptake working with C# & SQL where possible.
In the other office they have been established over 10 years and the IT is doing the job the company needs, but there are no good practices.
Some examples :-
Virtually all development is in Python, which is run as a mass of scheduled tasks. There is one particular task that runs around lunchtime to pick up all the submissions from the previous day, and another to pick up the same class of thing to mop up what has come in today runs at around 5pm. Each is a separate python script with a couple of classes declared at the top (which are declared in virtually every script I have seen), followed by around 1000 lines of code mixing in database access, processing logic & composition of output XML in a single block of code with nothing split out for readability. The two scripts differ in four lines - they don't appear to have heard of parameters.
Also, they don't appear to have heard of stored procedures; I have seen scripts where, to get nested information, they run an inline query to get a set of data, then walk the set in Python & fire a separate query to get related information for each row.
Did I mention that they have no form of source control?
I really need to change the culture in the other office (I do have my boss's support in this). I started by going in there & demonstrating a bit of separation of concerns using classes in Python and unit testing, then leaving a copy of Clean Code with the guy who seems to be the main trusted developer who people look to for advice, but it sat on his desk unopened for 2 weeks.
On the plus side, a young guy (just 18, left school at 16, started in the warehouse & moved into development purely because he showed an interest in it) emailed me to say he hoped it was OK that he had taken the book home at the weekend to read, and is picking up C# with remote assistance from me. He's mega-keen & will probably make an excellent developer. There are other developers who also seem willing to learn, and they have all said that that the guru is very set in his ways.
So, any ideas on how I can start moving them towards learning sensible IT practices as a matter of course? I feel the main obstacle is the guru chap, but he has the trust of his non-technical superiors, so technical explanations may be wasted on them.
One possible light is that we will be examining the code of a product developed by a third party, written in VS Code C# - I'm hoping it will open their eyes to the possibilities, though I'm not looking forward to explaining <t> notation to Python devs, should it arise.
Regards & TIA
|
|
|
|
|
First, the bad news. Without support from Management, changing the culture is impossible.
Having said that, incremental changes are possible. For example, start with things that have obvious benefits, like a version control system. Emphasise the benefits - rollback abilities, change tracking, etc. Then, continue to other tools. Introducing new (to them) ideas such as stored procedures should be postponed until you have built up some credibility with Management in the new company.
Good luck!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
It sounds like you are on the right tracks. I would say have a look at the the Mikado Method[^] together with unit tests to ensure that you do not break anything on the way.
Basically making small changes as you go along adding unit tests to ensure that your changes are correct.
I sort of get what you say about stored procedure but I find myself in a situation where most of the business logic is in stored procedures which is a nightmare in its own special way.
Also get them to watch the Uncle Bob videos, just as a way to introduce them to good coding practices.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
My career journey is as : Started at 2006 in a reputed MNC as a fresher and have worked on C# .net for 2.5 years then gone for sabatical due to personal issues and then resigned the company after 2 years. Hence, worked for 2 yrs but have Service Certificate for almost 5 yrs. Then i have got job in another MNC and joined as .net developer , but the thing is i haven't enjoyed the dev lifecycle and much coding part. Hence, learned SAP BO and shifted career to SAP with certification in BO , but in new company was moved into support project where i was very comfortable for the last 7 years into data ware housing support project that involves very low level of SQL knowledge along with low level informatica knowledge along with Reporting. Now my total exp is around 12 years and i feel like an impostor with that many years of experience and no grip on any one technology. Since all current projects are moving to BIG DATA , started learning BIG Data (Hadoop exactly ) and identified that it requires either Java or Python programming knowledge and i feel like am not up to it or either data analytics statistics etc.,
while researching observed that SAP HANA also has interesting insights to it.Since, i dont want to go programming side , please let me know how good it is to consider HANA as next career path and will these open sources will SAP related technologies survive and will be in demand?
If any other technologies considering DWH , DB background that can be considered, pls share.
Thanks in advance.
|
|
|
|
|
Just become a manager. Then you don't have to really know anything.
|
|
|
|
|
<pre>My name is Macarena and I want to start with the programming it catches my attention, but I need a good notebook, since mine is very old and I do not know what kind of laptop I need, can you help me please?
|
|
|
|
|
I personally like Surface Pro by Microsoft
- Michael Haephrati מיכאל האפרתי
|
|
|
|
|
I'd agree with Surface Pro, or for the money conscious try this: Notebook.[^]
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
13 months late
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Covid is making my eyes go funny - I thought I'd refreshed the Lounge...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I hope you are getting better... seeing you "active" is nice
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
A couple months ago, I changed my MacBook air, for the Azus ZenBook 14.
I wanted something with a bigger screen, the same weight, not very much expensive, to use on vacations since I travel a lot.
About a month ago, my PC got a windows issue, and since in Europe we are in lockdown, I couldn't fix my computer, so I have been working with the Azus all the time. I do trading and blogging.
I have 4 or 5 financial platforms open, about 50 pages on my chrome, skype, whatsapp, edge, etc and I am writing this down.
|
|
|
|
|
I think it depends on what you are interested in with regards to programming. While my old Macbook Pro is fine for certain programming tasks, the more I developed the more I wanted more power out of my computer. There's very complex stuff you can get into like Natural Language Processing, or Machine Learning in general that if you want to make some cool stuff with requires a lot of powerful hardware.
So I think it depends on what your interests are and if you think those interests will expand in the future into other areas.
|
|
|
|
|
We are a setup of 2000 machines and dealing with challenges in Inventory, agent coverage and reports which are never consistent. Support team has to get manual inventory or manually install agents.
We have Symantec DLP agents and System center configuration manager (SCCM) agents deployed to all the client machines (PCs) through group policy.
We allocate machine to a user who roams along with user for his time with the company, when he changes his project or Team. Host name stays the same but IP address changes to his current projects VLAN. Which as per me has downsides –
1. Inventory records change. Machine IP address change that may cause agents to misbehave.
2. Machine has to physically be moved to other project.
3. Machine has to be rebuilt as per the allocated projects development environment which consumes time for both person waiting to get started for that project and support person who ensures system readiness.
4. Support members have to frequently do physical verification , install agents on machines that for reasons are not reachable or update them.
My query is what is the recommended practice widely followed by different enterprises. To allocate machine to user or allocate machine to project so that the machine stays with the same project which as per me has following advantages –
1. Inventory is mostly consistent as we always know hosts allocated to a project.
2. Developer environment is always as per the projects requirement.
3. A user allocated to the project can immediately continue with his work.
Our IT Management has long been following practice of allocating machine to users and not projects and these challenges are bothering us a lot. I am seeking opinion what is the practice followed by most enterprise setups and is recommended as preferred practice.
Please share your opinion.
|
|
|
|
|
Hello,
I am considering doing a coding bootcamp and getting a job as a web developer after that. However, I am not sure I can commit to web development for a career. I may be pursuing something else 1.5 - 2 years after the coding bootcamp. Do you think it would still be possible to get a web development job even though I may not be able to commit to it as a career? Will employers ask about the future in interviews or is demand high enough that I can still secure something?
Thank you very much.
|
|
|
|
|
I'm not sure how about the USA but here in Ukraine all those big words like "commit my future to web development" are just HR bullshit nobody pays attention to (except of HRs of course). What everyone cares is your skills to your salary demands ratio.
As for me throughout my 6 years of career, I've never switched to positions where technologies matched with my current skill set and it's perfectly normal for a developer as IT is an ever-evolving field.
Hope that helps
|
|
|
|
|
The first thing you need to do is find out what jobs are available in your location. There is no point aiming for a web developer role if all the local companies are looking for database designers. You also need to consider what levels of experiences they want. Bootcamps are fine as a starting point but are any intern jobs available?
|
|
|
|
|
Boot Camp? Look if you don't know the basics now you never will. learn c/c++ and baremetal programming like Rasp Pi or Adruno and learn the basics. if you can't do this you will never succeed.
|
|
|
|
|
Hello, currently i tried to develope ERP software but i still confuse what programming languange i should use, is Java the best for ERP?
|
|
|
|
|
Questions that start "what is the best ..." only have one valid answer: it depends.
Are you planning to use an existing toolkit or framework? That will most likely dictate which language(s) you can use.
Have you decided whether this will be a traditional application, a mobile "app", or a web application? The choice of language(s) will be affected by this decision.
In general, go with the language you and your team are most familiar with, as long as it supports the type of application you want to develop.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
On my decision, C++ is a mind-blowing programming tongue for an item build. It has multi-dimensional focal points. It is the most 'open' lingo, in any occasion as I might want to think. It's Dissent Arranged thoughts of composing PC programs is mind-boggling. It may show up fairly questionable if you are a student anyway it is a magnificent choice if you really need to wind up an item originator, site or application analyzer or in case you needs to make an application in solitude. This will assemble your knowledge about programming and what's more about the system and its diverse setups.
You can in like manner consider learning Android Studio(only after you learned C++) if you are possessed with Android stage and needs to diagram an application for Android.
|
|
|
|
|
As mentioned by other users you can use any language of your choice.
But keep in mind that ERPs are very complex system which you cannot build over one night. It takes long time. So it will be beneficial if you can leverage the built in features of some framework. Becuse the framework take care of most of the things. It separates the user, business logic and database. From that perspective Java (J2EE) is a good choice. I use Oracle ADF to build ERP along with PL SQL and JavaScript.
|
|
|
|
|
IMHO the most important and enduring language will be the one embedded natively inside your database of choice.
SQL and it's many add-ons and extensions are the core foundation of an ERP system (which over it's lifetime will probably be interfacing with different external clients written in several other front-end languages).
Model your business rules tight in the tables with triggers and stored procedures handling the standards like cascading updates and deletes, and all the non-standard data transformations handled by your database code, enforcing the business rules of your Enterprise at the core.
SQLServer, PostGre, MySQL, SQLite all are good options
|
|
|
|
|
I had to download Visual Studio into my D: drive because not enough room on C:. Now I can't launch it. How do I launch Visual Studio from my D: drive?
|
|
|
|
|
This might seem kinda off topic but I'm very concerned about this. I'm storing serialized objects in binary files as a data to load, there will be a lot of these files and I'm afraid that it might get corrupt because I want these files for a very looong time.
After reading this I have some more questions
Why, or How, do Files Become Corrupt? - Ask Leo![^]
1. There is no way I can prevent it?
2. If you don't use/interact a file there is a high chance of getting it corrupted?
3. Will the file get corrupted depending on its weight like if its 1 gb or more?
4. What is the best way to store/keep my data clean for long time usage?
5. I know there is a huge chance of files getting corrupted if a windows crash occurs while I'm saving it. But what about like after the file is saved and if a windows crash occurs? will the file still corrupt?
PS: My english sucks, hope you had a fun time reading it!
|
|
|
|