User not logged in - login - register
Home Calendar Books School Tool Photo Gallery Message Boards Users Statistics Advertise Site Info
go to bottom | |
 Message Boards » » Stupid Software Engineering & Design Decisions Page 1 2 3 4 5 6 [7], Prev  
FroshKiller
All American
51275 Posts
user info
edit post

Well, it's not "the latest," and I have to think you've read it already, but Code Complete by Steve McConnell is required reading. Chapter 3 focuses on the prereqs of project planning. Chapter 28 is devoted to the management of a software development project. Chapter 33 has some further reading suggestions.

The Pragmatic Programmer by Dave Thomas and Andrew Hunt focuses on project planning and management in chapters 7 & 8. You could argue that it's basic knowledge, but it's basic knowledge motherfuckers don't put into practice, and I think the book has a lot of great tips for making sure you and others do the right thing instead of the easy thing.

[Edited on December 6, 2018 at 10:50 AM. Reason : Peace, we outta here.]

12/6/2018 10:50:31 AM

Lionheart
Costar un huevo
12606 Posts
user info
edit post

Quote :
"You could argue that it's basic knowledge, but it's basic knowledge motherfuckers don't put into practice, "


Yeah this is kind of where I'm hoping to kind of look for some pragmatic suggestions for incremental improvements. I mean I've practically thrown a copy of mythical man month at a managers face before for doing stupid shit that we've known is stupid for 40 years, but like most things there's all this advice and research that no one ever actually follows.

Basically my job is going to be as much cultural shift as anything else, getting our various PMs and HODs to stop falling into the trap of just turning on a dime and throwing resources late at whatever the current squeeky wheel is and thereby not only spending more time to transition than it would have been to stay the course but also making everybody miserable and what not.

Biggest challenges is that we are so lean and we can't go to a true Agile due to the QM and industry requirements we have to meet.

12/6/2018 11:33:25 AM

FroshKiller
All American
51275 Posts
user info
edit post

Lightly anonymized, but the code is actually this verbose:

        Public Function IsTraditionalAndCompanyBM(ByVal ClientId As Int64) As Boolean
Return SwissArmyKnife.GetBooleanValue(New FrameworkDataAccessLayer.Lookup.ClientTableLookup(FrameworkDataAccessLayer.Data.SourceType.Primary).GetClient(ClientId)?.AllowCompanyInvitations)

End Function


I don't know exactly what this is supposed to do, but it's in a fucking utility class that's about 15,000 lines at this point. All this does is run a goddamn database query and return a field value from the model type that corresponds to the database table.

6/11/2019 3:29:25 PM

aaronburro
Sup, B
51979 Posts
user info
edit post

Been pulled in to drag a UI system across the finish line in a server migration. First thing I notice is that every single window is opened and created on it's own thread; and none of those threads are cleaned up when the window is closed. Oh, and the VM's are created on a different thread, before the corresponding window is created, and in 5he VM's constructor, they try to capture the Dispatcher... which is guaranteed to be the wrong one

Next thing I notice is Thread.Sleep(2000) at the beginning of every single request for data to the server. Fucking awesome. And they still are getting incorrect data in asynchronously-loaded drop downs, because checking that you don't respond to out of order responses is an impossible task.

[Edited on July 9, 2019 at 11:23 PM. Reason : ]

7/9/2019 11:09:56 PM

wwwebsurfer
All American
10190 Posts
user info
edit post

Quote :
"Next thing I notice is Thread.Sleep(2000) at the beginning of every single request for data to the server."


Good news is that any performance targets you have will now be easily achievable once you, ya know, fix the code

7/10/2019 12:03:21 AM

smoothcrim
Universal Magnetic!
18420 Posts
user info
edit post

working on a service where we've (foolishly) decided to build a global edge network. I'm brought on to help this poorly run project. immediately I suggest simplifying the stack just because the doc alone is too complicated to make it through, let alone supporting it day to day. I write a simple poc with a central work dispatcher in AWS with consumers to pull stuff off the relevant queues at the edges. they ask for a big presentation on it and then the next day present their plans going forward where they plan to put an entire redundant control plane (~8U) in every deployment

I can't share code samples, but it's effectively passing static config back and forth on redis

quit the same day for a better job

7/12/2019 1:13:04 AM

FroshKiller
All American
51275 Posts
user info
edit post

wondering how you define "better job" because holy shit talk about collecting a check for taking a nap

you could've worked there for years and only done a few weeks of work

[Edited on July 12, 2019 at 10:08 AM. Reason : ///]

7/12/2019 10:08:21 AM

smoothcrim
Universal Magnetic!
18420 Posts
user info
edit post

i've quit every job i've ever had because i was bored, so it was par for the course. i literally built the same service at amazon 6 years ago and it's still running today, but hey, what do i know?

anyway, new job is super cool. squarely in the research org building net new tech and turning it into products. i probably work less, not having to explain the same shit to people that don't get it every day.

7/13/2019 8:38:02 AM

Lionheart
Costar un huevo
12606 Posts
user info
edit post

Not specifically design or engineering related but a major annoyance:

Nothing will make me respect you less professionally than having to watch you spend a ton of time doing something simple from the command line just to show off how "smart" you are.

Was on a call supporting a client with some troubleshooting and asked them to copy over a diagnostic tool to their server. They proceeded to open the command prompt navigate directory by directory stopping at each level to do a full directory listing, finally making it to the target calling a mkdir with the wrong name, deleting, making it again, just to proceed to open up an explorer window and drag and drop the package in there.

7/18/2019 2:00:10 PM

FroshKiller
All American
51275 Posts
user info
edit post

I came across a dumb pattern in an internal application where we had a dirt-stupid interface for rendering some buttons on a web page for various functions related to the screen you were viewing.

The interface just requires you to implement a function that returns a string instead of something sane like a list of control instances. The dumb pattern is that people had taken to generating handwritten HTML for an unordered list where each list item held a handwritten anchor element.

I thought, "There must be a better way," and proceeded to write a base class for these screens that had a collection property of actual instances of an actual link control from our first-party framework controls. The base class implements the button interface, and that function just renders our collection of link controls consistently.

Except I noticed that the screen didn't look quite right cosmetically, because the link style wasn't consistent with what had been handwritten. Should've been like this:

<ul class="menu-buttons">
<li>
<a class="menu-button" href="whatever">Button Caption</a>
</li>
</ul>


Instead, each anchor was wrapped in a div:
<ul class="menu-buttons">
<li>
<div>
<a class="menu-button" href="whatever">Button Caption</a>
</div>
</li>
</ul>


I recalled the default rendering method for our link control wraps everything in a div and thought I remembered that there was a property to control that behavior. Sure enough, I saw a Boolean field called WrapControlInDiv. I set that to false and...nothing changed.

So I pulled the code for the link control and searched for a reference to WrapControlInDiv. Nothing.

Then I noticed that WrapControlInDiv was a member of the base class, but someone had implemented a property called DoNotWrapWithDiv on the link class that was completely unrelated to the fucking base class field...yet the rendering method honored that one....

[Edited on August 5, 2019 at 2:18 PM. Reason : ///]

8/5/2019 1:58:34 PM

 Message Boards » Tech Talk » Stupid Software Engineering & Design Decisions Page 1 2 3 4 5 6 [7], Prev  
go to top | |
Admin Options : move topic | lock topic

© 2019 by The Wolf Web - All Rights Reserved.
The material located at this site is not endorsed, sponsored or provided by or on behalf of North Carolina State University.
Powered by CrazyWeb v2.37 - our disclaimer.