Herding Cats. Signal processing is a domain of software development well suited to the paradigm of engineered systems.
In today's world, hardware and packaged solutions have replaced the 10's of 1,000's of punch cards needed to process signals. Matlab is one example. This early work took me into other fields of engineered systems. Process control, emergency shutdown, flight avionics, and other embedded real-time systems, including transaction processing business systems.
These systems were designed and built incrementally and iteratively decades before Agile was even a thought for the authors of the Agile Manifesto. There was even an effort at one time to have a system that translated formal specifications into code - skipping the coding part. Large-scale heterogeneous systems, embedded systems for automotive applications, telecommunications, wireless ad hoc systems, business applications with an emphasis on web services etc. Good question. The answer to the question above seems to be ... Continuous Integration. I vividly remember one of my first sightings of a large software project.
I was taking a summer internship at a large English electronics company. My manager, part of the QA group, gave me a tour of a site and we entered a huge depressing warehouse stacked full with cubes. I was told that this project had been in development for a couple of years and was currently integrating, and had been integrating for several months. My guide told me that nobody really knew how long it would take to finish integrating. From this I learned a common story of software projects: integration is a long and unpredictable process.
But this needn't be the way. This contrast isn't the result of an expensive and complex tool. When I've described this practice to people, I commonly find two reactions: "it can't work (here)" and "doing it won't make much difference". The term 'Continuous Integration' originated with the Extreme Programming development process, as one of its original twelve practices. Scrum Breakfast: From a Blame Culture to Fearless Trust. As a manager, you understand the second principle of Radical Management: your role is changing from being a controller of people to an enabler of teams.
In my coaching work, I've met many managers who, even though they understand this principle, they get really uncomfortable with relinquishing control. If I trust my team, how do I prevent them from abusing this trust? How do know I will I get results? This is a perfectly normal question at the beginning of a transition, especially in large organizations. What is trust? Without trust, people have to protect themselves from betrayal and attack. A company living a trust culture can be a wonder to behold! Trust means a lot of things to different people. Blind Trust: Don't worry, be happy! It's a common fear that Radical Managers must engage in blind trust. A Team commits to a achieve a "sprint goal" within a defined time box of one month or less. My Interview Questions for Potential Employers.
By common definition, the purpose of a job interview is to allow an employer to screen candidates and find someone to fill an open job position.
Each and every applicant must prove his or her worth to the potential employer. Many will apply, but only one (or very few) will be selected. In the world of software, the overall hiring process follows the same sort of pattern. I always aim to impress any potential employer by showcasing my work and showing the best of my abilities. However, I expect any potential employer to reciprocate and make an effort to impress me. "What's the most interesting thing you've worked on since you started at Potential Co.? " Nobody wants to work on uninteresting things with uninteresting people. "How does Potential Co. show that it values the professional development of its employees? " I'm constantly looking to improve my ability to build software. "Are you satisfied with the process and workflow of the team? " Mike Cohn's Blog - Succeeding With Agile®