Incomplete SW - I’m upset

Anybody here used laserweb? I am wondering how it compares.

Here’s what it’s been like on many teams I’ve been part of. We write a bunch of code, day after day, fixing bugs, adding features, updating documentation, whatever. It gets code reviewed and checked in and QA has a go at it. Sometimes it’s reworked, sometimes the plan changes when the product owner has a look at it, sometimes a critical bug is found in testing and it gets rolled back. Meanwhile more changes are coming in to fix problems from the previous release. And when I say changes, I mean things with a description like “rename LocalStateMgrImpl to LocalStoreMgrImpl” or “refactor grid controller”. There might be hundreds or thousands of those in each release. And pretty late in the process, someone ends up having to write the release notes. That job sucks, even if you aren’t lazy. And laziness is the first of the Three Virtues.

Of course, there are ways to make writing release notes easier, but what I described above is a fairly common occurrence across a large number of companies and projects.

2 Likes

I can appreciate that. And most people aren’t looking for a high-level of detail. Simply:

Change Log
v0.32.4 (02-OCT-2017)
Addressed issue where Safari users could not see the bed image after a refresh.
Increased usable area to 12"x20" (Yay!)
Fixed issue where Internet Explorer 11 users could not properly place objects.
Various small bug fixes.
Various improvements to code to increase UI speed.

7 Likes

Exactly and with release dates, so when you go to use your machine you can see what has changed.

I wrote a server based Web GUI app that directed you to the release notes when you logged in if the version number had changed since you last logged in.

4 Likes

Indeed. Edited my post to reflect that. :wink:

I wrote that on my phone, always a bad idea. What I was trying to convey was that when the process is built around development and is a bit chaotic as things often are in the early stage, it can be surprisingly complicated figure out after the fact what’s actually in a given release. Not an excuse, as it doesn’t have to be this way, but an explanation of one way release notes can suffer. It does actually take more work than most people would expect to compile them.

That said, I desperately want release notes, an indication of which app version I’m looking at and what firmware is installed on my machine. More helpful than that to me would be an indication of what it’s doing. The light should flash different colors for starting up, authenticating to WiFi, connecting to the server, etc. And any failure should have a unique diagnostic pattern. And there needs to be an event log. It doesn’t have to give away company secrets, just tell me at a high level what happened, especially when something failed.

There are few things that make me see red more than meaningless error messages that just say “I got an oopsie-woopsie!” I literally made the decision to go into management based on this: I worked for an ISP doing tech support when I discovered that a certain e-mail client would tell the customer “An error has occurred” when I could clearly see it was sending our server the wrong password and the server was sending back “Password incorrect”. I decided then and there that my life’s mission was to walk around a room full of software developers with an encouragement stick so that whenever I saw one of them writing code that prints “An error has occurred”, I could issue a production change request in the form of a smack on the head.

12 Likes

I hear ya. Details aside, it seems pretty clear we all want to see some effort put into certain things…
Change Log
Specific errors
Alerts when there’s a firmware or software update in-progress.

If they’d just start doing those things, I think it’d go a long way with people.

3 Likes

Or even an explanation of why those simple things have not been addressed ?

2 Likes

Ah yes, and now you get to the root of the problem that you are trying to fix through enforced proper engineering planning techniques. The developers. In too many cases they are generally impatient folk who just want to code, and therefore do not do enough design up front before coding. The optimal way the code they write should interface with the user is not their highest priority. If a team spends as much time on debugging as they spend on coding, then the phase known as ‘coding’ should be more appropriately labeled ‘bugging’ instead. First they ‘bug’ and then they ‘debug’.

Which is not to say this happens at GF HQ. No insight into what is going on there.

2 Likes

Eh… That does us no good. I really don’t care why these things haven’t been done. If they’re spreading themselves too thin, everything will be done half-assed. Whole ass, or no ass at all, I say! :slight_smile:
Seriously, I think it would be better to focus on something until it’s done rather than attempt focus on 10 things and have them all be partially-done. That’s not always the case, mind you. I’m just saying that at this point in Glowforge’s development, that’s what I would certainly like to see.

2 Likes

Absolutely agree. I suppose I was thinking in terms of a little oil on troubled waters ?
< :upside_down_face: >

1 Like

Check out Whisperer too. That runs on stock K40 Nano boards. LaserWeb works with a Smoothie.

1 Like

It’s actually bad security practice to send that message back to the user - you just told them by implication that they’ve got the userid right so now it’s a fairly simple matter to crack the password (if you’re a miscreant :slightly_smiling_face:)

2 Likes

I’m sure he meant “Bad Username/Password.”

Well, yes, but if you’re already revealing the info in the internal response the hacker gets the info he wants without the user getting any utility out of it. Either the server has to hide it completely or the UI should tell the user. Server responding with info but the UI hiding it is the worst of the four possibilities.

3 Likes

Thank you for what you wrote. It’s was awesome.

2 Likes

OP’s post was perfectly respectable. I honestly feel the same way. I’m starting to worry that some of the promised features will be greatly delayed, or even cut entirely. Some I won’t miss, like automagical object recognition. Others, like full pass-through support and part flip alignment, would be devastating to lose.

As a software guy myself I am very curious about what work gets prioritized for what reason, and how features get designed and turned into specs. I believe that Dan said Tony, now departed, was their chief feature designer. If that was the case, his absence may have been more disruptive than we had thought. (Or, he might have left them a giant stack of perfect specs, ready to build.)

1 Like

Dan has said Tony is still a consultant.

@jessyjones, affectionately known as ‘The Laser Lady’, @smcgathyfay owns and has used two big lasers for 15+ years in her business.

I’ve put significant time in with several different lasers.

The problem in comparing them is difficult since they are very different approaches.

A traditional laser boots, finds it’s home by bumping into limit switches and then lives the rest of it’s life just translating movements from coordinates provided from the CNC. This is fine, straight forward, and dumb as nails. Glowforge does not try to mimic this functionality, so it’s very frustrating for someone with experience with traditional lasers who wants to “cut a line from (10,20) to (10,40)” and all they can do is approximately line things up with a blurry webcam.

That said… the Glowforge isn’t trying to be that… it’s trying to be smart. I watched the promo video and thought “this solves everything wrong with my traditional laser experience”. So where Glowforge currently solves for 80% of my traditional use cases, the promise is that it will greatly exceed it, and that’s still worth hanging around for.

3 Likes

This is pure supposition on your part. It might be poor coding. It could also be that they are running on VMs that are not sized for “unconstrained resources”. In fact, I’d be very surprised if they had unconstrained resources as such things don’t really exist.

Now, as to how constrained they are, that’s also up for question. Cloud services allow you to scale both “up” and “out”.

Scaling “up” means adding resources to improve the throughput of a single job. This is running on faster VMs, with more memory available per job.

Scaling “out” means adding the ability to handle more jobs at a time, but it doesn’t allow any particular job to go faster or have larger capacity.

Scaling in either direction adds cost. As they have more GFs in the field, their simultaneous user count will increase and they will need to scale “out” to keep services available whenever we want to use them. Multiply that by whatever costs are incurred to scale up performance. They will want to be careful on how much performance they provision or their operational costs could balloon.

This is quite likely compounded by different parts of the process needing different levels of performance. In most cloud services, there are different components you will use–each with their own performance characteristics and costs.

Often when development is behind, they will focus on getting features implemented, without regard to how efficiently they are implemented. This isn’t necessarily “poor coding”. Rather it indicates that they haven’t gotten to the point of tracking down bottlenecks. Some bottlenecks may not be in code they’ve written. They may be in libraries for which there may not be alternatives outside of re-writing them yourself.

When they do start cleaning things up, they may find some bottlenecks that are easy to fix. Others will take some serious re-thinking to come up with entirely different algorithms to effect much change.

I have no information whatsoever about the reality of the software development team at Glowforge. I don’t know how many people they have, or how well managed they are. I have looked a few times at their open jobs lists and they’ve consistently been looking to hire more developers. It’s possible they have a bunch of poor coders…but I doubt it.

7 Likes