Wednesday, April 4, 2012

Software Development Process Implementation: Things to Consider



 

I just finished this video explaining the most critical aspects of implementing a software development process.


It's an issue that I'm fanatical about, especially because it involves basic software development process strategies that can save companies tons of money and time. (And who doesn't love extra money and time?)


Anyway, the video is 4:23 long, and introduces the below topics.





    • Requirements





    • Design





    • Testing





    • Source Control



-Judi


 

 

Monday, March 26, 2012

Headless Embedded Systems

Something I have started to notice is the growing use of tablets to serve as the primary user interface for real-time embedded systems. This is in direct opposition to the long term tendency for embedded systems to sport integrated and increasingly sophisticated user interfaces.
At first glance this does not appear to be such a good idea due to the economics. The unit cost of a tablet is quite expensive. Only certain embedded systems could even consider the use of a tablet as the primary user interface due to the cost factor. However its use can make sense, in certain products, especially when considering the total cost of creating a custom graphical user interface.
Integrated graphical user interfaces require custom electronics and software. Much of the development is geared to integrate the user input and display devices with the rest of the system software. A great deal of software is often required to simply display data to a user or receive input from the user. This software device layer often takes a significant chunk of the development time and resources. And the application program that the user interacts with must still be written.
In the past year, several companies I have met with are considering the use of tablets or even smart phones for their user interface needs. They expect to reduce the complexity and the cost of developing the new product by essentially eliminating custom development of a graphical user interface. Leveraging an off-the-shelf solution enables the companies to get their product to the market sooner.
So I am curious, are you also seeing this as an emerging trend?

Tuesday, March 13, 2012

Testing Real Time Embedded Systems



 

Gary Felberbaum, the Principal of Advanced Decisions, talks about testing real time embedded systems.

How early should someone consider testing?

The earlier that someone gets involved in setting up the strategy and setting up the architecture to enable testing is really important. You should to start thinking about how you will test an embedded system as soon as you are conceiving a project or an embedded system.

What is needed to get started?

The same steps are needed when starting to test or develop an embedded system. The starting process refers back to the simplest thing which is requirements: sitting down, defining what it is that you want to build, and then thinking about how to test the system (adding special electronics, special software, etc.).

Why is embedded system testing different from other software application testing?

It is different because you are interacting with a lot more real-world, physical processes. You’re measuring things that you may not have control over, while in application testing you can set up a test database and test against the test database. In the real world, for applications you have to think about how you’re going to simulate processes that you can’t control and that may take designing certain types of computer model and simulations that you need to do to make embedding system testing actually work.

Friday, September 30, 2011

A Celebration of the Fastest Growing Companies in CT

This week the Connecticut Technology Council held one of my favorite events – the Marcum Tech Top 40 – celebrating the 40 fastest growing technology companies in Connecticut. It’s so much fun spending an evening meeting such successful people and reconnecting with old friends. We have been lucky to have the opportunity to work with many of the people in the room.

The diversity of the companies is amazing: from online travel service Priceline.com, to oil-drilling equipment manufacturer APS Technology, Inc, to vaccine maker Protein Sciences Corporation, to IT Services provider OpenSky, the overall winner with 18,221% growth!

One thing I can’t help but ask myself is: what makes some companies so successful while others struggle? Listening to the speeches of each category’s winner, there was one common answer – the team. I’ve always believed that a small, talented, focused team can accomplish amazing things, and these CEOs were saying the same thing.

Congratulations to this year’s Tech Top 40, and to all those who aspire to join them – my best advice – surround yourself with the best and brightest you can find.

Friday, September 9, 2011

Build or Buy? How to know if you need custom software

I met a woman yesterday who asked me if we could build some software for her business. I told her yes, we could, but it probably wouldn’t make sense. Let me explain.

Building custom software is an investment, and that investment usually doesn’t make sense unless you’re going to sell multiple copies of the software, or it’s going to give you a significant competitive advantage in your business. And I do mean significant.

For example, I spoke with a company not too long ago that was thinking about developing some software to help them with an internal business process. They had done their research, and there were packages on the market, but they didn’t exactly meet their needs. I spent enough time with them to give them a ball park quote, and it turns out the custom solution was seven times more expensive than the off-the-shelf solution. Frankly, this isn’t even a lot. Think about it – if the vender of the generic solution spent the same amount of money developing their solution, they would only need to sell seven copies to break even. I realize it’s more complicated than this, there’s distribution, support, marketing, overhead, etc. but what if they sold 70 copies? You can see how this kind of investment could pay off. And if they sold 700 – wow!

So this company decided to buy the off-the-shelf product that met most of their needs. In my opinion, that was the right decision. It only makes sense to build custom software for internal use when you can get a significant competitive advantage. Before you think about investing in custom software, look at what’s already on the market to meet your needs. It may not meet all of your needs, or meet them perfectly, but ask yourself how much would it be worth to have that perfect solution? Would I be willing to pay ten times the cost of this package? More? Often the answer will be no, and in that case, just find the product that meets your needs the best or allows you some ability to customize.

Friday, September 2, 2011

Want to develop a new product? Where do you start?

I’ve been working with a lot of companies lately that have never developed a new product from scratch. They all seem to have the same question – “Where do I start?”

The answer is always the same – with requirements, and by requirements I don’t mean a bullet list of features, although that’s a start. By requirements, I mean detailed requirements of what you want the product to do and how it should behave in every situation. Error conditions are one thing that’s typically forgotten. Requirements are also not necessarily functional, for example, the maximum (or target) manufacturing cost is a common, and commonly overlooked, requirement for an embedded system. They say the “devil’s in the details.” In this case, that’s true.

The first question clients have (well, maybe it’s not the first, but it’s the big one everyone wants to know) is “how much will this cost?” Without the kind of detailed requirements I’m talking about, it’s impossible to give any kind of meaningful estimate. That’s why we’ve had such great success creating an initial engagement that delivers requirements and a rough estimate of time and cost. This initial engagement typically lasts between a week and a month, depending on the scope and complexity of the project and gives the client accurate information that they can use to make decisions. We usually find areas of trade-off, like features that could be in a future release, and can balance the client’s time to market and budget needs.

So remember, next time you have a new product you’re developing. Details, details, details!

Friday, August 26, 2011

Training our future workforce

This week there was an article in the NY Times about Gadget Camp, a workshop for girls in River Grove, IL to expose girls to the skills needed to get jobs in manufacturing. I love this idea! As one of the few girls that took (and thoroughly enjoyed) wood shop and metal shop, I wish I had something like this growing up. There’s absolutely no reason girls and women can’t do these jobs.

Through my involvement with the New Haven Manufactures’ Association (NHMA) Workforce Development Committee, I’ve seen personally how many how many manufacturers there are in CT and how many jobs they have. Yes, there are jobs in manufacturing, and not only are there jobs, these are good jobs that don’t require a college degree. They do however require skills, especially math skills, and unfortunately, our public schools are not doing a great job providing them.

Our Vocational schools, however, are providing kids with the skills they need for these jobs as well as a good traditional education. Before getting involved with the NHMA, I didn’t realize that the kids at the Vo-Tech schools took the same academic course load as public schools PLUS training in their field. The kids that I’ve met are bright and passionate about their field. Whether they go on to college or not, they have a bright future ahead of them.

Programs like Gadget Camp and even more so, the Vo-Tech system, provide much need skills and opportunities for the kids that participate in them, and critical talent for our businesses. We should do anything we can to support them.