IT/Software career thread: Invert binary trees for dollars.

  • Guest, it's time once again for the massively important and exciting FoH Asshat Tournament!



    Go here and give us your nominations!
    Who's been the biggest Asshat in the last year? Give us your worst ones!

ShakyJake

<Donor>
7,970
20,089
Neither of those are super new. Both are excellent frameworks.
Wait, what? No, Angular2just went to RC1, I believe. ASP.NETCorejust released RC2 but with significant breaking changes between RC1.

In all honesty. Your Architect is correct. I can't speak to the skills of your team but none of this is new. The basic fundamentals (Business Logic de-coupled from UI) is pretty much tried, true and correct. Who knows if down the line you will want to expose your API to customers. Can't do this if the logic is jammed in the code-behind.
I totally agree that it's a sound architecture. But is it the right architecture forus? I'm not so sure, given our complete unfamiliarity with the technologies involved and with the time table we're given. I think it's expected that coding begins some time late this year. Given how new these frameworks are I think this is really naive.
 

Vinen

God is dead
2,791
497
Wait, what? No, Angular2just went to RC1, I believe. ASP.NETCorejust released RC2 but with significant breaking changes between RC1.


I totally agree that it's a sound architecture. But is it the right architecture forus? I'm not so sure, given our complete unfamiliarity with the technologies involved and with the time table we're given. I think it's expected that coding begins some time late this year. Given how new these frameworks are I think this is really naive.
I acknowledge they are new versions but the general technology and choices behind it are not new.

My companies product was developed on BETA .NET 4.0. We had to wait for GA of it before we could ship.

If your team cant get up to speed on a modern framework in a few months I question the value of the team.
 

Deathwing

<Bronze Donator>
16,971
7,989
I'm looking for suggestions to improve the testing hierarchy at my company. We follow the standard model where testbot take our product and run it through a multitude of automated tests. Test results are filed in a database and 90% of the time have to be reviewed by a human in order for a bug to be filed.

I'm one of those humans. On typical days where there's a lot of churn, it can take me up to half my day just to make sure the previous day's results are reviewed. Perhaps part of the problem is that I hold myself to a higher standard, so I like to do some investigative work before filing the bug. But I think the huge problem with this model is that the people reviewing the bugs do not work in the code base being tested. As in, I don't do any coding in the product's code base, I do all my coding in the testing system's code base.

So, I can't help but think there's a better way to do this, especially as a look at bug that has change the behavior of the product. Ideally, I'd love for there to be an automated way for test failures to be directly assigned to the devs that caused them. But I think that's wishful thinking. As it is now, the system we have now is heavily taxed. The other guy that reviews tests is kinda dumb, but he's a trooper and will do it all day with no complaints. It can take him all day to review his standard allotment, leaving us with very little time to improve the testing system itself. And hiring people for test/QA is next to impossible, especially outside the big tech hubs. I haven't interviewed anyone recently that lived locally nor wanted to move here.
 

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
Shaky, I would go with react, instead of angular. Angular has a very steep learning curve, and if you are used to just doing server side stuff, you will struggle. If you look at this thread 1 year ago we implemented a angular subsite. I regret not using react, as it is a lot more easier to use than angular. You can even plug it into an Mvc architecture with Api as the way of giving out information.

With angular you will spend a lot of time in JS debugging, for me it was hard.
I honestly will not recommend angular, and stick with react JS.
 

Vinen

God is dead
2,791
497
I'm looking for suggestions to improve the testing hierarchy at my company. We follow the standard model where testbot take our product and run it through a multitude of automated tests. Test results are filed in a database and 90% of the time have to be reviewed by a human in order for a bug to be filed.

I'm one of those humans. On typical days where there's a lot of churn, it can take me up to half my day just to make sure the previous day's results are reviewed. Perhaps part of the problem is that I hold myself to a higher standard, so I like to do some investigative work before filing the bug. But I think the huge problem with this model is that the people reviewing the bugs do not work in the code base being tested. As in, I don't do any coding in the product's code base, I do all my coding in the testing system's code base.

So, I can't help but think there's a better way to do this, especially as a look at bug that has change the behavior of the product. Ideally, I'd love for there to be an automated way for test failures to be directly assigned to the devs that caused them. But I think that's wishful thinking. As it is now, the system we have now is heavily taxed. The other guy that reviews tests is kinda dumb, but he's a trooper and will do it all day with no complaints. It can take him all day to review his standard allotment, leaving us with very little time to improve the testing system itself. And hiring people for test/QA is next to impossible, especially outside the big tech hubs. I haven't interviewed anyone recently that lived locally nor wanted to move here.
Honestly. You need to remove the crutch of Quality Assurance from your developers.

What I've seen done successfully is that the Test Engineers who can be converted to Developers are.
The ones who are not (or don't have the capability to learn) get layed off over time (Manual testers are useless in this day and age).

Developers should be responsible for
- Design
- Developing Features
- Functional Quality automation

Test should be responsible for
- System testing automation
-- Performance
-- Scale
-- Integration
-- End-to-End scenario

Here is a good post on this topic.
Yahoo's Engineers Move to Coding Without a Net - IEEE Spectrum
 

Deathwing

<Bronze Donator>
16,971
7,989
They definitely treat the testing system like a crutch. It's especially infuriating when they commit bugs that running ANY test in their sandbox would have caught. And since it was so easy to catch, it's now in the testing system, shitting up all the results. This is something I've recommended(dev's run some tests before committing), we'll see how much they actually do it.

How would test be responsible for performance? I can see testing performance, but I would have no idea how to fix any of it without have any of the Design or Developing Features experience.
 

Vinen

God is dead
2,791
497
They definitely treat the testing system like a crutch. It's especially infuriating when they commit bugs that running ANY test in their sandbox would have caught. And since it was so easy to catch, it's now in the testing system, shitting up all the results. This is something I've recommended(dev's run some tests before committing), we'll see how much they actually do it.

How would test be responsible for performance? I can see testing performance, but I would have no idea how to fix any of it without have any of the Design or Developing Features experience.
Ohh. I meant testing.
Once an issue is identified they would work with the Developer(s) required to fix it if it's determined it must be fixed.

System level testing tends to be more expensive and time consuming. This is why it's good to have dedicated resources for it.
 

ShakyJake

<Donor>
7,970
20,089
Shaky, I would go with react, instead of angular.
Apparently they researched all the popular client-side frameworks, including React, and decided on Angular2. It seems like they placed a HUGE amount of weight on the support of web components. Although from what I've read, web component technology hasn't really been finalized and, hell, Safari doesn't even support them.
 

Tenks

Bronze Knight of the Realm
14,163
607
Angular is good shit and widely used. I wouldn't sweat it these sound like pretty logical decisions even if they're using RCs of them. It isn't like they're using an RC of NewWebFramework Angular is a pretty established product.
 

Noodleface

A Mod Real Quick
38,384
16,303
How much stock do you guys actually put into this site?

I only entered keywords like "C, C++, UEFI, Software Engineering, Debugging" and this came out. I can't tell if I actually am way underpaid or if I just entered some combo of skills that shot the number through the roof:

rrr_img_135311.jpg

And I'm not asking to brag and be like "haha look how much money", but genuinely asking if I should be looking for way more money.
 

Vinen

God is dead
2,791
497
How much stock do you guys actually put into this site?

I only entered keywords like "C, C++, UEFI, Software Engineering, Debugging" and this came out. I can't tell if I actually am way underpaid or if I just entered some combo of skills that shot the number through the roof:

rrr_img_135311.jpg

And I'm not asking to brag and be like "haha look how much money", but genuinely asking if I should be looking for way more money.
It's hard to tell. That site is hugely based off a massive amount of keywords. Years of experience has to less to do then the right keywords.

Honestly. I'd value Glassdoor's information far more. Even then both fall curse to the same flaw: Humans entering the data. I got the site to value me at ~400K a year by adding all the technologies I have worked with extensively.
 

ShakyJake

<Donor>
7,970
20,089
Angular is good shit and widely used. I wouldn't sweat it these sound like pretty logical decisions even if they're using RCs of them. It isn't like they're using an RC of NewWebFramework Angular is a pretty established product.
Angular 1 is, but 2 is fresh off the presses. I have no doubt it's an amazing framework, but the problem I have with us going with is it that's so new that there hasn't been time for the community to run it through it's paces. Nor enough time for best practices to form, techniques discovered to create a convention-based application framework, etc. etc. I feel the only reason we're going with it is because it's the new shiny andnotbecause our product will be greatly improved by it.

For example, having the client and server totally separate, how does one keep the client and server models in sync? As far as I can tell, it's a manual process. If I have a class named "Product" on the server with a property of "Name", then on my client side I'll have some Javascript somewhere referencing this Product.Name property that's received via an Ajax call. Now, someone changes "Name" on the server to "ShortName" or something. Everything will compile just fine. There are no hard links on the client side that'll complain about that property being renamed. It's added maintenance like this that I have a huge problem with.
 

ShakyJake

<Donor>
7,970
20,089
You can have DTO classes that are the joining of the server side classes with the client side.
Of course, but take for instance this piece of server-side code that takes a DTO and returns a JSON string to the client:

Somewhere in your client Javascript you'll be referencing an ".AuthorName". If someone changes "AuthorName" on the server to "AuthorFirstName" or whatever, then you'll need to track down all references client-side that may be using "AuthorName" and then change it. This no compile-time check that will cause a build failure in this scenario. Everything compiles fine, but the client will later blow up.

I use Webstorm and all it basically does it do a project-wide string search to attempt to find usages of a property name. I've had it really fuck things up too because it makes the assumption that it should change something when it shouldn't have.
 

Tenks

Bronze Knight of the Realm
14,163
607
Isn't that just an encapsulation issue you're raising? Can you not have a getter in a DTO?
 

Tenks

Bronze Knight of the Realm
14,163
607
The client has no access to the DTO object. The DTO is being serialized into JSON which is transmitted to the client.
Couldn't you have a schema object to materialize the JSON instead of putting the burden of parsing and understanding the JSON onto the client?
 

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
You have to make a rule of thumb. Never modified the DTO object unless the client is modified as well. That way you can modify at your hearts content the "Book" class, and the DTO stay consistent.

It is not hard to follow the rule. If you want to be a dick, you can put the DTO in its own project and use TFS to only allow certain people to check in against it.

Another solution is you just return an anon(var) object from the Book class.
 

Tenks

Bronze Knight of the Realm
14,163
607
I just must not understand this problem space because there are plenty of solutions for how to abstract away knowledge of the actual JSON string from using the representation. Even if you didn't want to be too over-the-top and use a schema and something like JAXB just have an implementation of "BookParser" or something somewhere that reads in the JSON string and has a "getAuthor" method. That way if the JSON string changes all clients would just need to pull down the updated version of the BookParser instead of modifying their project-specific code for understanding the JSON.
 

ShakyJake

<Donor>
7,970
20,089
See, that's what my point is: there is now extra burden to make sure both the client and server code are in sync. That is why I'm advocating that we keep it all server-side. We, forourproduct, don't really gain anything by investing heavily into a client-side framework. It would be understandable if it was highly interactive and needed slick presentation, but it's really pretty basic.