Basically we have rows upon rows of programmers that do mundane tasks every day. This would involve writing code that is not very effective, is not unit tested, and often integrates poorly with the application. Not to mention that there is no accountability in terms of hours spent versus hours worked. I am not trying to get people fired or make life miserable for anyone. All I want is a stream line agile (word is banned in our company) process.Would this involve setting up something like a Hudson integration server? Version control that is tied to project management software?
Share
This is the perfect question for a plug of the Seven Principles of Lean Software Development:
My point is that you can certainly adopt engineering practices like automated testing, refactoring, coding standards, pair programming, code reviews, continuous integration, etc. They will definitely not hurt. But they should be part of a bigger plan that involves organizational practices and, ultimately, the way your company drives the business. Agile is actually a business oriented thing, engineering practices and tools are just a small part of the story and won’t be enough by themselves to save hundreds of thousands of dollars.
In short, whatever you’ll use, if your current (probably sequential and defined) process produces poor results, not changing the process won’t drastically change the results.
I thus believe that enabling “inspect and adapt” cycles and feedback loops would be the most important thing to do.
But change usually involves the management.
See also