Saw another oddity of the defense industry: when a government employee comes on site and is fed lunch there is a little bowl marked something like “Contributions Welcome” where the gov guy is supposed to pay what he thinks the meal is worth. This is due to the concept that we can’t bribe our project sponsor.
I guess they play the game, but there is no definition on the cost of the meal. So, it is up to the discretion of the gov employee to put something in the pot. This can be anything from a nickel to a few bucks, depending on what spare change the guy has in his pocket.
Isn’t it nice we are following such well thought out rules. I’m sure some accountant is actually keeping track of how much is put into the pot on these things so we can ‘prove’ that we didn’t provide a free lunch, aka bribe.
Uncategorized
Defense
I have been going through the process of building a Joomla web site for a client. I don’t think they had outrageous demands for the UI design. Lots of fonts, colors, a few popups.
First off, tinyMCE by default “cleans up” your edited content. This might mean stripping HTML tags, changing HTML tags or even better adding in a few extra HTML tags. Really quite a feature. So, now your very elaborate content ‘article’ has been manipulated badly by the article editor, it needs to be displayed.
A typical Joomla installation might have 10 CSS sheets, all of which are in play and possibly touching each other on a given page. This makes it real fun to figure out really simple things, like how to set the width of the page.
Now, we add in the editor manipulated content that needs to be displayed with several bogus style references and you end up with total c _ _ _. You have close to zero chance of figuring out why your content changed line height, font, indent, color, you name it - right in the middle of a paragraph.
I blame all of this on the cute idea of using table-less layouts via CSS. That ideal means that people have gone to the next step and are using CSS everywhere. It kind of reminds me of the first round of C++ programmers in the 80’s. Everyone was doing it with no grasp of the underlying object oriented concepts needed. So, we ended up with very hard to determine memory leaks in all kinds of programs (from simple apps to MS Windows). I think the same thing is going on now, everyone is using CSS without any idea of the fundamental style concepts involved in the base HTML entities. And we end up with the same mangled set of code which has very little hope of being displayed correctly.
Uncategorized
Business Practice
So, you are working on this super-duper set of software in the security (crypto) space. You are using all the latest software techniques and tools. You have a systems group that knows how all the supporting software and hardware works. You design the ui and some underlying behavior and have some questions as to how the end user might do something. WRONG!
If you think about it the number of end users for your product that exist in the world is small. Then they have to be articulate, open to change, etc… This limits the number to probably a handful. Then you have the small detail - they have to be available. Any person who meets the above criteria is likely on call, in the field at all times.
So, you get proxies:
- trainers in the States (again who aren’t occupied and likely in high demand due to low numbers of real users),
- consultants who did they job some years ago (and are therefore dated in their knowledge), and
- long time employees (who have always had this 3rd hand point of view)
For those of you who have developed code I assume you are just as amazed as I am.
Uncategorized
Process
We have an architect on the project. The architect makes no decisions, judgement calls, directives, etc… Everything is up for grabs by developers from the basic class syntax all the way up to authentication.
Again, this is a longer term employee that appears to be following the company path. Maybe there is enough history that people who have done so get hammered for making decisions that turned out to be ‘bad’.
Well, our fundamental client is the DOD. I would assume such a bureaucracy is risk averse. I would further guess that changes downstream on a project are treated very badly. Lots of huffing and puffing.
Now, you have some lower level line manager that should be making calls. They should be doing so. But I guess everyone around them is saying don’t do that. Don’t make a decision. Investigate further. Take your time.
How can an industry like this encourage risk taking?
Uncategorized
Industry
Our group is composed of mostly non-Java developers. We have recently started looking at error messages that have to bubble up to the ui. The natural course is a resource/property file.
However, the implementation pattern we are to follow involves using a wrapper that has enum’s of every message (to avoid collision) which we must access to get to a resource. So, every time we add a message we are also changing source code.
It seems to happen a lot in this company (and another defense co): we keep deciding that we can do something better than an off-the-shelf solution. So, we put a wrapper around good, solid functionality that drops features and usually adds noise to the system for no other reason.
And further, the incumbent players will argue to death that wrapping is a good idea.
Just painful.
Uncategorized
Industry