ah yes, I learned how to program the same way - or at least, what programming way before I learned how to do it using best practices (or mostly best practice;) )
Those early BASIC interpreters didn't handle much more than 2-digit variables and some of that learning is still with me - to this day, I still use x, y, and i.
that might be true today, the the 'goto considered evil' has been around for a lot longer than CPUs with L2 cache.
The problem was that it used to be used for program flow like it was an while statement. That led to some pretty convoluted and impossible to understand code, and we won't even go into jumping to other function code.
Nowadays, the idea of using goto as a 'jump to function end' is reasonable, and a lot less expensive than throwing an exception to do the same thing... yes, I've seen them used for that.
the one on your router does - if it blocks incoming requests, your PCs inside the network don't see them at all.
What you misunderstand is that with NAT you have 1 IP - that of the router itself, and if you do want an internal host to be accessed you tell the router to route packets to it (usually bypassing all firewall protection unless your internal host also runs a firewall). Once you open your router like this you've lost all protection the NAT gives you. Your router is still exposed to the global internet which can be a security issue in itself.
With IPv6 you will have multiple IPs and a firewall that protects all of them at the router level, so you can access any internal host, or not, explicitly. If you want, you can still expose only 1 IP to the internet and have it redirect packets to hosts on an internal network. I'm sure many routers will allow this type of connection (or you'll use Windows Internet Connection Sharing) even though its redundant - why bother having 1 IP exposed when you can expose them all (all of them having the same firewall protections as the main 1). If you're worried about security then you've got problems as you're still exposing at least 1 device!
Firewalls can stop any (not just certain) addresses from sending you data. Your NAT firewall does that for all devices, unless you add one of them to the router's DMZ, then it typically blocks nothing.
If you want a address analogy, its like with NAT all letters are delivered to your house address. With IPv6 each resident gets their own mailbox. With NAT all letters are delivered, even junk mail. With IPv6, the mail that's not addressed to an actual resident are undelivered (ok, pretty poor analogy:) )
(Me, I like NAT, I'm fairly happy that my devices are not globally addressable.)
repeat after me. "NAT is a proxy forwarder type solution. The thing that stops my devices not being globally addressable is the firewall."
With IPv6 you lose nothing, everything is as it was, but what you gain is the ability to expose more than one of your devices to the global internets.
Your router will still have a firewall which will (hopefully by default) block all incoming access attempts to all connected devices. Imagine IPv6 as a super-NAT that you can configure to have multiple DMZ (or port forwarder) options.
I used to think this, and it was very very true while home routers failed to support IPv6. (the manufacturers are idiots, imagine putting IPv6 on your routers and selling them as an added feature - most users won't know what it is, but they'll know its 'future proof' and shinier as it has a IPv6 sticker)
However, IPv6 home routers are starting to appear. In the UK the Andrews and Arnold ISP will give you IPv6 address, and they're evaluating routers.
They haven't decided which to use, but that's probably more down to cost considerations etc than technical as they have said the Technicolor TG582n is good to go.
As for performance, I imagine it'll be as good as the IPv4 as generally its just a bit of firmware change to get it running. Routing should be quicker, and if you're no longer going through NAT proxying, that should make it a tiny bit faster too.
Re:Was it copyrighted before the speech was given?
on
A Copyright Nightmare
·
· Score: 1
everything you create is implicitly copyrighted to you. You don't have to do anything special (except to prove it was yours in cases of dispute).
I think that it should be public domain as it was broadcast (ie given away) and that he didn't demand payment fees from the broadcasters of the time means he shouldn't be allowed to claim fees from broadcasters of today either. But that's just my stupid socialist opinion that would destroy the free-market capitalism of the great America state (so says the RIAA).
Re:You want copyright to protect the content creat
on
A Copyright Nightmare
·
· Score: 1
record and movie companies add great new content to their cataloges
once... and then they have to find a new cash-cow to exploit.
See, once the creator is dead, the media company gets to make 0 revenue off them, as all the work is copyright-free, all of us can download it to our hearts content without paying a dime. The media companies will have more interest in keeping a content creator alive as long as possible.
Remember that next time you go to see the Justin Bieber concert and he's wheeled out in the sterile bubble. It'll be like the old Soviet leadership.
On the other hand, they'll suddenly have incentive to prove that Elvis really is alive and working in that chip shop.
Ok, I meant "client tool", EF was just the one we had most problems with as it decided what SQL to use, and we couldn't get it to stick to the standard.
I'm fine with the DB having extensions you can choose to use (or not), it's a different matter if your client tool makes that choice for you. Once EF decides to use a cross apply clause, it stops being a DB-independant tool and starts being a SQLServer only one.
I think the big deal here is that memory was wasted, and the guy has done his profiling and tooling and has reduce the wastage dramatically.
Good job that man.
However, in general, apps that use lots of ram are bad for you - you may have 8Gb, but if it uses all that, your whole system is going to be slower simply because all the data is being sloshed around inside your PC. The days where more ram = fast PC is gone, today your CPU cache is the new bottleneck that turns your screaming-fast 3ghz processor into a tapping-its-fingers 3ghz processor as it waits for the memory to be shuffled over the bus. Using more ram is often just sloppy programming anyway, which is why a lot of people take issue with it (and, of course, if you try to run 2 huge memory hogs at the same time....)
Anyway, Firefox uses less memory, there's a great article explaining why and I'm happy.
first you say SQL would search for the data in squares and then clip off the corners for circular results, and then you say you want to organise all the data for your method into grid squares....
I think you'd be surprised at what the SQL GIS functionality can do. It isn't doing a query "between x and y" and then running a Pythagoras calculation on each point.
if you want to write a.NET application that accesses a PostgreSQL database, there's nothing stopping you
except there are some non-standard SQL extensions that Microsoft has lovingly developed. If you use the Entity Framework for example, you will find that complex queries start to automatically use these invalid clauses and your code will suddenly stop working on all but SQLServer DBs.
But yes, I agree - get Postgresql instead and use that, there's no need to use hugely expensive DBs nowadays unless you really need really really big DBs (and then you'll be buying Oracle)
ok, so Ubuntu is coming up with 'Ubuntu embedded' for device manufacturers (in this case TV devices) to stick a pre-written software stack in there to provide extra functionality.
I'd say this is less about providing true 'my TV is a computer' but rather 'my TV has one hell of a EPG'. The TV manufacturers generally don't spend much effort on the GUI aspects, which is one reason why Ubuntu might do well here - they get someone who's already written that pesky software, once integrated, they've got additional features to sell more units.
Upgrading is not really part of the plan, you want that, you buy a PC. This is for 'home users' to get better goodies without any hassle.
Maybe Canonical will produce a STB with this on it, but I doubt it - they're trying to build a revenue base from the current fashion in connected devices. Once they;ve done this, they might branch out and put Ubuntu on other things, like in-car entertainment or smart bedside radio/clock/tv/streamer or aircraft entertainment displays or interactive advertising hoardings, or whatever. And good luck to them, just don't make the mistake of thinking this is general purpose Ubuntu for computing.
I'm sure it'll be like the face of a Silverlight developer....
I know the old stuff won't go away, but MS is pushing HTML5 hard. That does not mean your apps will be entirely written in javascript (but it's interesting to see who thinks that apps are monolithic all-in-one things). It'll be HTML5+js GUIs (very similar to WPF+C# GUIs, as WPF is just another xml-based markup language with a bit of code-behind the gadgets), with a 'proper' language making up services for it to call, probably exposed as web services, but hopefully something a bit leaner and better.
some of that's true, but the metric I choose to be important is the one that pays me more:)
If someone wants a career helping others, and has the talent to be a doctor, they become a doctor, they do not choose to be charity workers or minimum-wage carers after all.
As for salaries, I did a search for 'manager' in the local area recently, (looking for a IT mgr job I'd seen). A 'manager' job selling fish and chip supplies earns more than most programmers. I was a little surprised, as it didn't seem to require much effort or skill at all.
As for averages, you have to look at everyone, not just yourself to decide things for the graduates. As for changing jobs, you simply 'lie' - "I am a great.net dev, but I've been using scala for my last rle so I may be a bit rusty" is all it takes, but you must be able to back it up somewhat and to be fair anyone who's taken the trouble to get into Scala will pick up C# in a few moments. I don't know what the job market will look like in a few years, but I think C# will fade (as you say, people can't hire them, so they will look elsewhere for the candidates) and HTML will rise. I can't really say any more than that though, unless more Linuxy-style languages appear.
These are the problems with TIOBEs methodology, and a better measure of popularity is to take a global sample of job listings in various cities across the world to see what companies are actually recruiting for - that gives us a more realistic idea of what's really, actually being used IMO.
I can't say globally, but the UK has the IT Jobs Watch which is based on job adverts. FYI, top skill is for "developer", 2nd for "finance", 3rd for "SQL".
It also shows average salaries, which I think is far more important than popularity. C# for example is around £40k, Java at £47k. For a contractor, C++ may have fallen in popularity but pays £100 a day more than C# contractors.
For languages, the biggest jumpers are Scala (on £55k) and Ruby (on £47.5k).
doesn't really matter what you think. Microsoft has said that HTML5 is the way to go for new apps on Win8. XAML was brought onto C++ as a way of helping "legacy" app development, and that includes C# too now.
C# is ok language, but it suffers from the old Visual Basic problems - like absolute references. You can't have a directory with your dlls in to reference, as these will all be relative to your project workspace - so everyone has to work on an identical directory tree or things will go wrong. Its great if you're working on a 'lets build an exe', but once you get into the realm of complex systems, it starts to get real messy. And then we get onto 'dependancy hell' which is worse than the 'dll hell' it was supposed to fix.
I guess adding a 'reference path' to the build environment was too hard for them (but you can do it, it's just on a per-user, per-project basis) Microsoft's answer is to use a huge solution to build all components in an app. Seriously.
We won't go into what happens if you want to include a shared file that's not inside your project's directory either.
In short, I think C# is a bit like VB was, it feels like VB and they've kept too many of the "lets make it easy" options that actually make it bloody difficult once you start to do real work with it.
Chances are C# will see a drop next year as Microsoft stops pushing it everywhere and starts concentrating on their "C++ renaissance". WinRT was introduced as a means of getting all the good stuff they've been working on to a C++ audience after all.
Oh, and the fact that MS is now pushing HTML5+js clients with C++ backends will be interesting (ie if they can pull it off and everyone agrees that Metro apps for Win8 is a good idea).
I'm still surprised that C is up at the top, but I guess there's a lot of defence and embedded development going on, with Java king of the enterprise.
You're basically saying that the creative people should be given as much free rein as they like because they won't do what they're supposed to anyway, and you'll annoy them if you try,
Heaps of undocumented code is a problem. That the only doc is in the heads of the developer is truly undesirable because the dev who doesn't document doesn't tend to communicate in other ways when needed, and also because you're expecting that dev to be the only point of contact for all the code he's ever written. That'll annoy him when he starts getting hassled constantly for the knowledge only he holds.
So its a management responsibility to ensure that this sorry state of affairs doesn't occur, and that his team works in a professional manner. That means the work paid for by the company doesn't stop when the code compiles successfully. If badgering doesn't work (and I doubt it will, but its a good step before you try more formal methods, and badgering doesn't have to be constant nagging - it can simply be a reminder when code is delivered that the dev has "accidentally forgotten" to include the docs too. I meant the same kind of badgering you get when you submit code for code review).
In the end, the whole product needs to be developed: binaries, installation, support, maintenance, training - all these are part of what you need to do in a professional environment. Some will be done by others (eg. the user guide is sometimes written by technical authors depending on the size of the company - but even then, the dev will be explaining how it works to the tech author/BA/PM so the doc *can* be written), but some will be done by the dev and that's just part of the job.
If you don't want to do that kind of job, you'll have to start your own company and work for yourself I guess.
no, you can keep badgering them to do their job properly, with the usual restrictions if they don't.
For example, what happens if coder A decides he doesn't want to use the company standards to write code, or he decides that writing the stock-keeping module is boring and works on an Android app instead? The same goes for not writing the support documentation to the minimum standard too.
I find that the process needs to say that no application is accepted as delivered until the minimum docs are supplied along with it. The docs should be enough that someone else can install it (as someone else usually does). Coders who don;t do the work properly get taken off their current code and put back on their old stuff until it's right. That includes the doc part.
Coders may thing they're some kind of elite, but they have to play according the the rules that are set by the company. If company requires docs, then docs is what they get.
So, yes, you're right that poor quality code bites you back, but that's still no excuse to allow guys who want to deliver the poor quality code and then let some other maintenance engineer maintain and support it (there are enough places where dev and maintenance are split tasks, this is bad IMHO)
hmm. isn't Corporate America is much more like this nowadays:
Bob Slydell: You see, what we're actually trying to do here is, we're trying to get a feel for how people spend their day at work... so, if you would, would you walk us through a typical day, for you? Peter Gibbons: Yeah. Bob Slydell: Great. Peter Gibbons: Well, I generally come in at least fifteen minutes late, ah, I use the side door - that way Lumbergh can't see me, heh heh - and, uh, after that I just sorta space out for about an hour. Bob Porter: Da-uh? Space out? Peter Gibbons: Yeah, I just stare at my desk; but it looks like I'm working. I do that for probably another hour after lunch, too. I'd say in a given week I probably only do about fifteen minutes of real, actual, work.
I don't think its the corporations this time, its the MBA "executives" and the general attitude that the populace falls into 2 broad categories: "them and their mates", and "the little people".
In essence, it means they think they do so much, are so under-rewarded, exceptionally talented, and deserve everything the world has for them, and also that the little people (ie you n me) are just replaceable peasants they can grind into the ground if they haven't already started to replace us with outsourced 'resources'.
The whole western world needs to shrink the difference in equity between the tiers of the workforce. Someone getting a million dollar bonus didn't do anything to deserve that more than the baker who made his sandwiches did that day. Until we start to solve that, all the abuses and failed economics will continue to thrive.
Wait, it's okay to share your Netflix password...?
I can think of at least three reasons why that's a bad idea.
Busty Trannies 1 (aka Dude looks like a lady)
Busty Trannies 2 (aka This time she's hung)
Busty Trannies 3 (aka The lady gets his man)
ah yes, I learned how to program the same way - or at least, what programming way before I learned how to do it using best practices (or mostly best practice ;) )
Those early BASIC interpreters didn't handle much more than 2-digit variables and some of that learning is still with me - to this day, I still use x, y, and i.
that might be true today, the the 'goto considered evil' has been around for a lot longer than CPUs with L2 cache.
The problem was that it used to be used for program flow like it was an while statement. That led to some pretty convoluted and impossible to understand code, and we won't even go into jumping to other function code.
Nowadays, the idea of using goto as a 'jump to function end' is reasonable, and a lot less expensive than throwing an exception to do the same thing... yes, I've seen them used for that.
the one on your router does - if it blocks incoming requests, your PCs inside the network don't see them at all.
What you misunderstand is that with NAT you have 1 IP - that of the router itself, and if you do want an internal host to be accessed you tell the router to route packets to it (usually bypassing all firewall protection unless your internal host also runs a firewall). Once you open your router like this you've lost all protection the NAT gives you. Your router is still exposed to the global internet which can be a security issue in itself.
With IPv6 you will have multiple IPs and a firewall that protects all of them at the router level, so you can access any internal host, or not, explicitly. If you want, you can still expose only 1 IP to the internet and have it redirect packets to hosts on an internal network. I'm sure many routers will allow this type of connection (or you'll use Windows Internet Connection Sharing) even though its redundant - why bother having 1 IP exposed when you can expose them all (all of them having the same firewall protections as the main 1). If you're worried about security then you've got problems as you're still exposing at least 1 device!
Firewalls can stop any (not just certain) addresses from sending you data. Your NAT firewall does that for all devices, unless you add one of them to the router's DMZ, then it typically blocks nothing.
If you want a address analogy, its like with NAT all letters are delivered to your house address. With IPv6 each resident gets their own mailbox. With NAT all letters are delivered, even junk mail. With IPv6, the mail that's not addressed to an actual resident are undelivered (ok, pretty poor analogy :) )
What the fuck happened to Wikipedia?
It's all about SOPA which is explained here. Happy reading.
(Me, I like NAT, I'm fairly happy that my devices are not globally addressable.)
repeat after me. "NAT is a proxy forwarder type solution. The thing that stops my devices not being globally addressable is the firewall."
With IPv6 you lose nothing, everything is as it was, but what you gain is the ability to expose more than one of your devices to the global internets.
Your router will still have a firewall which will (hopefully by default) block all incoming access attempts to all connected devices. Imagine IPv6 as a super-NAT that you can configure to have multiple DMZ (or port forwarder) options.
I used to think this, and it was very very true while home routers failed to support IPv6. (the manufacturers are idiots, imagine putting IPv6 on your routers and selling them as an added feature - most users won't know what it is, but they'll know its 'future proof' and shinier as it has a IPv6 sticker)
However, IPv6 home routers are starting to appear. In the UK the Andrews and Arnold ISP will give you IPv6 address, and they're evaluating routers.
They haven't decided which to use, but that's probably more down to cost considerations etc than technical as they have said the Technicolor TG582n is good to go.
As for performance, I imagine it'll be as good as the IPv4 as generally its just a bit of firmware change to get it running. Routing should be quicker, and if you're no longer going through NAT proxying, that should make it a tiny bit faster too.
everything you create is implicitly copyrighted to you. You don't have to do anything special (except to prove it was yours in cases of dispute).
I think that it should be public domain as it was broadcast (ie given away) and that he didn't demand payment fees from the broadcasters of the time means he shouldn't be allowed to claim fees from broadcasters of today either. But that's just my stupid socialist opinion that would destroy the free-market capitalism of the great America state (so says the RIAA).
record and movie companies add great new content to their cataloges
once... and then they have to find a new cash-cow to exploit.
See, once the creator is dead, the media company gets to make 0 revenue off them, as all the work is copyright-free, all of us can download it to our hearts content without paying a dime. The media companies will have more interest in keeping a content creator alive as long as possible.
Remember that next time you go to see the Justin Bieber concert and he's wheeled out in the sterile bubble. It'll be like the old Soviet leadership.
On the other hand, they'll suddenly have incentive to prove that Elvis really is alive and working in that chip shop.
Ok, I meant "client tool", EF was just the one we had most problems with as it decided what SQL to use, and we couldn't get it to stick to the standard.
I'm fine with the DB having extensions you can choose to use (or not), it's a different matter if your client tool makes that choice for you. Once EF decides to use a cross apply clause, it stops being a DB-independant tool and starts being a SQLServer only one.
I think the big deal here is that memory was wasted, and the guy has done his profiling and tooling and has reduce the wastage dramatically.
Good job that man.
However, in general, apps that use lots of ram are bad for you - you may have 8Gb, but if it uses all that, your whole system is going to be slower simply because all the data is being sloshed around inside your PC. The days where more ram = fast PC is gone, today your CPU cache is the new bottleneck that turns your screaming-fast 3ghz processor into a tapping-its-fingers 3ghz processor as it waits for the memory to be shuffled over the bus. Using more ram is often just sloppy programming anyway, which is why a lot of people take issue with it (and, of course, if you try to run 2 huge memory hogs at the same time....)
Anyway, Firefox uses less memory, there's a great article explaining why and I'm happy.
first you say SQL would search for the data in squares and then clip off the corners for circular results, and then you say you want to organise all the data for your method into grid squares....
I think you'd be surprised at what the SQL GIS functionality can do. It isn't doing a query "between x and y" and then running a Pythagoras calculation on each point.
if you want to write a .NET application that accesses a PostgreSQL database, there's nothing stopping you
except there are some non-standard SQL extensions that Microsoft has lovingly developed. If you use the Entity Framework for example, you will find that complex queries start to automatically use these invalid clauses and your code will suddenly stop working on all but SQLServer DBs.
But yes, I agree - get Postgresql instead and use that, there's no need to use hugely expensive DBs nowadays unless you really need really really big DBs (and then you'll be buying Oracle)
ok, so Ubuntu is coming up with 'Ubuntu embedded' for device manufacturers (in this case TV devices) to stick a pre-written software stack in there to provide extra functionality.
I'd say this is less about providing true 'my TV is a computer' but rather 'my TV has one hell of a EPG'. The TV manufacturers generally don't spend much effort on the GUI aspects, which is one reason why Ubuntu might do well here - they get someone who's already written that pesky software, once integrated, they've got additional features to sell more units.
Upgrading is not really part of the plan, you want that, you buy a PC. This is for 'home users' to get better goodies without any hassle.
Maybe Canonical will produce a STB with this on it, but I doubt it - they're trying to build a revenue base from the current fashion in connected devices. Once they;ve done this, they might branch out and put Ubuntu on other things, like in-car entertainment or smart bedside radio/clock/tv/streamer or aircraft entertainment displays or interactive advertising hoardings, or whatever. And good luck to them, just don't make the mistake of thinking this is general purpose Ubuntu for computing.
I'm sure it'll be like the face of a Silverlight developer....
I know the old stuff won't go away, but MS is pushing HTML5 hard. That does not mean your apps will be entirely written in javascript (but it's interesting to see who thinks that apps are monolithic all-in-one things). It'll be HTML5+js GUIs (very similar to WPF+C# GUIs, as WPF is just another xml-based markup language with a bit of code-behind the gadgets), with a 'proper' language making up services for it to call, probably exposed as web services, but hopefully something a bit leaner and better.
some of that's true, but the metric I choose to be important is the one that pays me more :)
If someone wants a career helping others, and has the talent to be a doctor, they become a doctor, they do not choose to be charity workers or minimum-wage carers after all.
As for salaries, I did a search for 'manager' in the local area recently, (looking for a IT mgr job I'd seen). A 'manager' job selling fish and chip supplies earns more than most programmers. I was a little surprised, as it didn't seem to require much effort or skill at all.
As for averages, you have to look at everyone, not just yourself to decide things for the graduates. As for changing jobs, you simply 'lie' - "I am a great .net dev, but I've been using scala for my last rle so I may be a bit rusty" is all it takes, but you must be able to back it up somewhat and to be fair anyone who's taken the trouble to get into Scala will pick up C# in a few moments.
I don't know what the job market will look like in a few years, but I think C# will fade (as you say, people can't hire them, so they will look elsewhere for the candidates) and HTML will rise. I can't really say any more than that though, unless more Linuxy-style languages appear.
These are the problems with TIOBEs methodology, and a better measure of popularity is to take a global sample of job listings in various cities across the world to see what companies are actually recruiting for - that gives us a more realistic idea of what's really, actually being used IMO.
I can't say globally, but the UK has the IT Jobs Watch which is based on job adverts. FYI, top skill is for "developer", 2nd for "finance", 3rd for "SQL".
You can filter by programming languages.
It also shows average salaries, which I think is far more important than popularity. C# for example is around £40k, Java at £47k. For a contractor, C++ may have fallen in popularity but pays £100 a day more than C# contractors.
For languages, the biggest jumpers are Scala (on £55k) and Ruby (on £47.5k).
I think C# is appealing because of Intellisense. Most junior programmers can code by typing and accepting what the IDE thinks they should type next.
doesn't really matter what you think. Microsoft has said that HTML5 is the way to go for new apps on Win8. XAML was brought onto C++ as a way of helping "legacy" app development, and that includes C# too now.
C# is ok language, but it suffers from the old Visual Basic problems - like absolute references. You can't have a directory with your dlls in to reference, as these will all be relative to your project workspace - so everyone has to work on an identical directory tree or things will go wrong. Its great if you're working on a 'lets build an exe', but once you get into the realm of complex systems, it starts to get real messy. And then we get onto 'dependancy hell' which is worse than the 'dll hell' it was supposed to fix.
I guess adding a 'reference path' to the build environment was too hard for them (but you can do it, it's just on a per-user, per-project basis)
Microsoft's answer is to use a huge solution to build all components in an app. Seriously.
We won't go into what happens if you want to include a shared file that's not inside your project's directory either.
In short, I think C# is a bit like VB was, it feels like VB and they've kept too many of the "lets make it easy" options that actually make it bloody difficult once you start to do real work with it.
Chances are C# will see a drop next year as Microsoft stops pushing it everywhere and starts concentrating on their "C++ renaissance". WinRT was introduced as a means of getting all the good stuff they've been working on to a C++ audience after all.
Oh, and the fact that MS is now pushing HTML5+js clients with C++ backends will be interesting (ie if they can pull it off and everyone agrees that Metro apps for Win8 is a good idea).
I'm still surprised that C is up at the top, but I guess there's a lot of defence and embedded development going on, with Java king of the enterprise.
rubbish.
You're basically saying that the creative people should be given as much free rein as they like because they won't do what they're supposed to anyway, and you'll annoy them if you try,
Heaps of undocumented code is a problem. That the only doc is in the heads of the developer is truly undesirable because the dev who doesn't document doesn't tend to communicate in other ways when needed, and also because you're expecting that dev to be the only point of contact for all the code he's ever written. That'll annoy him when he starts getting hassled constantly for the knowledge only he holds.
So its a management responsibility to ensure that this sorry state of affairs doesn't occur, and that his team works in a professional manner. That means the work paid for by the company doesn't stop when the code compiles successfully. If badgering doesn't work (and I doubt it will, but its a good step before you try more formal methods, and badgering doesn't have to be constant nagging - it can simply be a reminder when code is delivered that the dev has "accidentally forgotten" to include the docs too. I meant the same kind of badgering you get when you submit code for code review).
In the end, the whole product needs to be developed: binaries, installation, support, maintenance, training - all these are part of what you need to do in a professional environment. Some will be done by others (eg. the user guide is sometimes written by technical authors depending on the size of the company - but even then, the dev will be explaining how it works to the tech author/BA/PM so the doc *can* be written), but some will be done by the dev and that's just part of the job.
If you don't want to do that kind of job, you'll have to start your own company and work for yourself I guess.
no, you can keep badgering them to do their job properly, with the usual restrictions if they don't.
For example, what happens if coder A decides he doesn't want to use the company standards to write code, or he decides that writing the stock-keeping module is boring and works on an Android app instead? The same goes for not writing the support documentation to the minimum standard too.
I find that the process needs to say that no application is accepted as delivered until the minimum docs are supplied along with it. The docs should be enough that someone else can install it (as someone else usually does). Coders who don;t do the work properly get taken off their current code and put back on their old stuff until it's right. That includes the doc part.
Coders may thing they're some kind of elite, but they have to play according the the rules that are set by the company. If company requires docs, then docs is what they get.
So, yes, you're right that poor quality code bites you back, but that's still no excuse to allow guys who want to deliver the poor quality code and then let some other maintenance engineer maintain and support it (there are enough places where dev and maintenance are split tasks, this is bad IMHO)
hmm. isn't Corporate America is much more like this nowadays:
Bob Slydell: You see, what we're actually trying to do here is, we're trying to get a feel for how people spend their day at work... so, if you would, would you walk us through a typical day, for you?
Peter Gibbons: Yeah.
Bob Slydell: Great.
Peter Gibbons: Well, I generally come in at least fifteen minutes late, ah, I use the side door - that way Lumbergh can't see me, heh heh - and, uh, after that I just sorta space out for about an hour.
Bob Porter: Da-uh? Space out?
Peter Gibbons: Yeah, I just stare at my desk; but it looks like I'm working. I do that for probably another hour after lunch, too. I'd say in a given week I probably only do about fifteen minutes of real, actual, work.
I don't think its the corporations this time, its the MBA "executives" and the general attitude that the populace falls into 2 broad categories: "them and their mates", and "the little people".
In essence, it means they think they do so much, are so under-rewarded, exceptionally talented, and deserve everything the world has for them, and also that the little people (ie you n me) are just replaceable peasants they can grind into the ground if they haven't already started to replace us with outsourced 'resources'.
The whole western world needs to shrink the difference in equity between the tiers of the workforce. Someone getting a million dollar bonus didn't do anything to deserve that more than the baker who made his sandwiches did that day. Until we start to solve that, all the abuses and failed economics will continue to thrive.
the difference is that lawyers do the extorting.