Friday, August 12, 2016

What Today's Software Developers Need to Know

Last time we talked about which development 'stack' you should use and why, and today we are going to discuss SOME of the various technologies that go into a solution and what an individual developer needs to know.  While I don't agree with all of it, there are some very good points here and most of you, even developers will not have even heard of all of these technologies.  This article was originally posted in ITWorld on Sept., 14th 2011 and is by Daniel P. Dern

Today's software developers don't have to worry about many things that their predecessors used to, like coding to minimize RAM consumption even if it means significantly longer execution time, or WAN connections maxing out at 14.4 kilobits per second. (Although, there may be some out-of-fashion skills they could benefit from or that may yet regain relevance.)

However, the reverse is also true: there are many new skills and areas of expertise that today's software developers, hardware developers, system and network administrators, and other IT professionals need that simply didn't exist in the past. (Where "the past" could be anything from "more than three months ago" to five, ten, twenty or more years.) Or were only relevant for organizations and applications with immense budgets.

"The list of what you need today that you didn't need before depends on how long ago you went to school, how hard you've worked to keep up on technology, the software industry, and software engineering," says David Intersimone, Vice President of Developer Relations and Chief Evangelist for Embarcadero Technologies.

Knowing what you need to know matters, whether you're just starting out as a software developer (or planning to become one), or are a "seasoned" professional who wants to keep your chops fresh so you can stay in, re-enter, or advance.

So here, as a counterpoint to my "lost skills" article, are "found skills" -- what a number of IT professionals see as these new areas for software developers that you want add to your existing knowledge portfolio. (Disclaimer: For the most part, I've left out suggestions about specific programming languages, as too obvious.)


Using libraries


"One thing that strikes me as a new skill is the need to work with massive pre-packaged class libraries and template libraries in all the new languages, like Java or C++ or Python," says consultant and software developer Jeff Kenton. "It used to be that once you knew the language and a small set of system calls and string or math library calls, you were set to program. Now you can write complex applications by stringing library calls together and a little bit of glue to hold them all together. If you only know the language, you're not ready to produce anything."

iPhone app developer Hwee-Boon Yar, who has been writing and selling software for 10 years, says "More programming resources are now available online freely. Knowing where to look, such as stackoverflow.com, as well as what habits are good to adopt in the long run is important. For example, if you become someone who Googles for a solution to a programming problem and copy and paste every time, you will never advance your skills."


Factoring in your users


Meredith Anderson, a business and information architect, adds, "In 2008, discipline keywords like 'information architecture' and 'usability engineering' were scarce in online job postings. In 2010 there were numerous job postings with these keywords. I'm not sure whether the market acknowledged the need and existing skills, or whether the need coalesced around these words to find the skills. In any case, the skill set of user experience engineering -- usability engineering, user interface design, and information architecture -- all distinct from graphic design -- has become a formal area of expertise, described by a specific vocabulary. And in the last couple of years demand for these skills has exploded."

Merryl Gross, a UI Architect in the healthcare information technology area, says, "While knowing your technology is critical, knowledge of the people who use their software, how they use it, and what's important to them about the software is critical these days, when people expect more from their devices. This will keep you from making a lot of expensive mistakes. And where you don't already have this knowledge, assuming you will be spending some of your planning time understanding why your target users like or want the things they want -- and knowing how to do this information gathering and assessment."


Asynchronous programming and other techniques


"Because of the move to cloud computing mostly through web-based interfaces, we are seeing an emphasis on asynchronous programming," says Itai Danan, founder of Cybernium a software development and web design consulting company. "Ten years ago, this was mostly used by transactional systems such as banks, hotels and airline reservations. Today, all but the simplest applications require asynchronous programming, mostly because of AJAX. This is a very different style of programming -- most things taught about software optimizations do not apply across the network boundary."

Brian Fino, managing director, Fino Consulting, an IT consulting firm that specializes in developing enterprise, cloud and mobile applications for the modern business environment, stresses the need to understand the impact of distributed, networked infrastructures, multi-core hardware, etc.

"Cheap and readily available infrastructure has made most all applications multi-dimensional and distributed," says Fino. "Software engineers have to have a good understanding of how distributed systems work from the functional right down to the packets on the wire and how they're routed."


A breadth of skills


"It's become more important to have a breadth of skills" says Ben Curren, CoFounder, Outright.com, which offers easy-to-use online accounting and bookkeeping software for small businesses. "For example, web developers these days need to understand customers, usability, HTML, CSS, Javascript, APIs, server-side frame works, and testing/QA."

"Programmers don't learn that someone else is going to take care of the code they write," criticizes Sarah Baker, Director of Operations at an Internet media company. "They don't learn about release management, risk assessment of deploy of their code in a infrastructure, or failure analysis of their code in the production environment -- everything that happens after they write the code. They don't learn that a log is a communication to a operations person, and it should help an operations person determine what to do when they read that log."

Craig Schwartz, Senior Engagement Manager at Freeborders, a global IT services provider, sees three core skills being in demand: mobile development, global delivery and agile development experience. "With the growth in mobile computing, the ability to create Web applications designed to work on mobile devices, Rich Internet Applications (RIAs) for the mobile market and applications that run directly on mobile devices (Android and iOS) will be a necessary skill for developers as this market grows."

Jane Gilligan Hamner, VP Business Development, Harvey Nash USA, an executive search, professional recruitment and IT outsourcing firm, reports, "In the Chicago market we are finding that clients are requesting more client-rich application experience, such as Windows Presentation Foundation (WPF) with ASP.NET, and Ajax programming like jQuery and the DOJO Javascript tools.

It isn't just about what you already know, either. It's also about continuing to add to your knowledge and skill sets, comments Amy Wilson, Client Services Manager at web and mobile app design firm Accella. "With the ever changing face of technology, and the skills necessary to keep up with new software/hardware, programmers and developers have to be much more flexible in today's marketplace. Learning ONE language or skill won't cut it in today's workplace. Being flexible and staying up to date on new software releases is key to being a truly successful resource."


Domain expertise for new jobs


Many new jobs call for "domain" (subject matter) expertise in addition to software chops.

Mary-Anne Wolf, who is a senior software engineer, project technical lead and architect, sent me a list of four-score-plus skills and job foci; here's some selections:

  • Speech recognition-based non-visual user interface designer
  • Software designer for large-screen mobile devices with no hard disk
  • Designer of location-responsive and orientation-responsive applications
  • Specialist in software for oil and natural gas exploration and geology
  • Specialist in the design of medical devices which are embedded in the human body.


Bruce Douglass, Chief Evangelist, IBM Rational Software, suggests several areas of domain expertise, including:

  • Electric vehicle mechanics: "As automakers upgrade the features in electric, so will the amount of software code in each vehicle. Software engineers with knowledge and fundamentals on electric vehicles will be in better position to create complex battery systems, electric drive units and cabin electronics."
  • Environmental engineering: "The green movement will remain a hot button issue for future engineers. Finding new ways to improve the environment, provide healthy water, air, and land for human habitation, and to remediate polluted sites are all important areas of expertise for software engineers."

Agile and collaborative development methods



"Today's developers need to have awareness of more agile software development processes," says Jeff Langr, owner, Langr Software Solutions, a software consultancy and training firm. "Many modern teams have learned to incrementally build and deliver high-quality software in a highly collaborative fashion, to continually changing business needs. This ability to adapt and deliver frequently can result in significant competitive advantage in the marketplace.

"In order to deal with continual demands for change coming from the business, and sustain reasonable maintenance costs on their systems, today's developers need to understand how to incrementally grow their systems using appropriate quality technical practices," says Langr. "Some of these practices are: test-driven development (TDD), automated acceptance testing, refactoring, continuous integration, and continuous delivery."


Developing for deployability, scalability, manageability


"Sysadmins are likely to own the software for much longer than the developers -- what are you doing to make their stewardship pleasant enough that they look forward to your next deployment?" asks Luke Kanies, Founder and CEO of Puppet Labs: "This includes deployability and manageability. New technologies are often much more difficult to deploy on existing infrastructure because developers haven't had time to solve problems like packaging, running on your slightly older production OS, or connecting to the various services you have to use in production."

Also, says Kanies, manageability matters, "The most important part of an application's lifetime is when it's running in production, yet developers don't spend nearly enough time thinking about how to maintain the application while it runs. For example, is there debugging or performance instrumentation? If it's running slowly, can you tell why? If there are failures, can you trace the failure without the service being down? Can you hide failures from the user but still pass the debugging information on to the sysadmin and developers? Can you tune the application, or deploy more copies, without bringing it down?"


And, finally, some short sundries


Walter Gillett, a developer at software consultancy Twenty Geese Software, suggests:

  • Distributed computing technologies like Hadoop for seriously scalable cloud computing
  • "Big data" -- analytical capabilities to deal with the flood of web and scientific data, e.g., clickstreams from a gazillion users of a large-scale web site.
  • Web application frameworks, e.g., Ruby on Rails, Grails, for high productivity.
  • Dynamic "scripting languages" that emphasize developer productivity over run-time performance, such as Python, Ruby, PERL, JavaScript, and Groovy (an alternative to Java).


Senior software engineer Amy Unruh adds, "it is useful for today's developers to understand issues in realtime search, and techniques for pipelining data analysis and for managing 'activity streams.' And you should able to exploit the 'small pieces loosely joined' model, including use of microformats, and understand how to consume APIs from other services and support relevant APIs for your service, by building on RESTful computing principles."

What new skills have you found you've had to learn -- or are planning on learning?

This article, "What today's software developers need to know," was originally published at ITworld. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.

Daniel P. Dern is a freelance technology writer based in Newton Center, MA. His web site is www.dern.com and his technology blog is TryingTechnology.com.


Wednesday, August 10, 2016

What Development "Silo" is Best and What Should YOU Use?

Let's talk about what the industry is calling "silos." I really don't like that term, but it wraps up the offerings from a vendor in terms of development tools. We could talk about Drupal and Joomla and Access and Cold Fusion and any other WYSIWYG (What you see is what you get) Junior Developer train wreck, but what we are going to focus on are real, enterprise development environments. The first tenet we espouse is going to be having ONE tool for each development purpose. That means one development environment for procedural code and one for set based code. This gives us the ability to have one team for each task, instead of several teams all doing the same things.

At the set based or database level, we really only have two choices: Oracle and Microsoft SQL Server. Oracle does have a free development environment, but most developers use TOAD. Traditionally Oracle has been the de facto database server for business with something approaching 75% penetration. More recently, businesses have been using Microsoft's SQL Server more than Oracle, however. Since we are talking about business we are going to limit the discussion to closed source database engines, where support is just a phone call away. Oracle has the advantage of running on Unix/Solaris. SQL Server only runs on Windows, but side by side comparisons show it being faster on Windows. Installing SQL Server is a breeze. Accept the defaults and in ten minutes you have an enterprise database engine. With Oracle, you have a complicated (at best) installation and then you have to configure (what seems like) dozens of text files laying around everywhere to even get it to start. Many developers consider Oracle difficult to use as well with many limitations (you can't DO that) and some would even say a broken security model. So for speed, ease of installation, ease of use, a FAR less expensive product and an integrated development environment the only logical decision is to use SQL Server. ...unless your existing database works and is in Oracle.

At the procedural level, developers are limited to Java or Microsoft's .NET. I've watched the java guys come up with framework after framework for years in an effort to make development easier and faster. There is Spring, Struts, JBoss, Play, Grails, Eclipse and literally hundreds of others to pick and choose from. This bewildering array makes us wonder if there is something basically wrong with Java that we have to have so much help to use it. There isn't anything wrong with Java of course, but we still wonder. The good part is that Java is free. Microsoft's .NET on the other hand is decidedly NOT free. I'm sure you could download a compiler and write your .NET code in Notepad++ for free if you wanted to, and that is the way a LOT of Java guys do it, but if you want the real Microsoft experience complete with intellisense reading your mind and completing your programmatic thoughts for you, Visual Studio is the choice. The cost of Visual Studio is somewhere between free (for students) and close to a couple grand for the enterprise version, whatever they are calling that this year. Visual Studio also comes with a bewildering array of frameworks, but they are all integrated into the environment. You select the framework you want to develop in when you start a new project and you can get your add-ins from their web service NuGet. NuGet will install automatically all the Microsoft approved extensions and programmatic shortcuts you will ever need and do it in a way that is seamless and managed by the really bright people at Microsoft so you always know you are getting the best, tested plug-ins in addition to having one stop shopping. I would say that Java is free and worth every penny. I would further state that any serious developer working on enterprise software, and that is the only kind, would choose Microsoft, .NET and Visual Studio.

What is left? Ah, yes, server software. So the Oracle/Java guys are relegated to using Apache and PHP. PHP is the code; Apache is the server that runs the code to serve up web applications. Apache is open source, like everything else in this "silo." If it doesn't do something you need done, you can modify it. Wait. That can't be right. You modify the server??? Yup. You write Java Servelets to make your Apache installation work. Um. ok. So what does Microsoft have? They vend Internet Information Server (IIS) IIS, like every other Microsoft product has a dedicated team you can call and get answers to your questions. It has a management console. It's easy. It's effective. Once More, advantage Microsoft.

We've brought up cost a couple of times above so let's look at a simple example. For our purposes, we e going to configure two fully provisioned servers from Arvixe.com. I went to godaddy.com first, but they don't do windows servers. At Arvixe, the basic Linux server is $108/month. The basic Windows server is $108/month. Yes, Virginia, they are exactly the same. Further, the Windows server comes with an installation of SQL Server Express, suitable for a small to medium sized business. The Linux Server does NOT come with, nor can you get Oracle. You have the option of MySQL or PostGre SQL databases, neither of which are enterprise nor comparable to either Oracle or SQL Server. What is the conclusion? It isn't any cheaper to go with the "open source" development environments and as explained above, it has considerably more complication and therefore is more risky.

What is the bottom line? Open source is free. Open source is worth every penny. There is really only one "silo" (I hate that term if you can't tell) at all and that is Microsoft. We here at Sentia actually sat down in 1998 and did this analysis when we started and decided consciously to go with Microsoft. I'm willing to bet that from Mom and Pop to Bank of America, that particular analysis never got done. Either somebody was drawing on a cocktail napkin and happened to run into a developer who had a proclivity for one or the other, or that thought that open source is synonymous with free. Open source is not free. Ask Red Hat or MySQL how they make their money. Here is a clue: they have a support team that you pay for. Here is the problem with that: the support team can't modify the open source code and have no real impetus to answer your question, particularly in the case of "you can't DO that."

We do the research, we do the thinking, and we do the deep dive so that you don't have to. There is a reason we do things the way we do them and that reason is that it’s the best. This is why you can call us and have us literally create a business for you from scratch with you supplying nothing more than an idea and a little cash. We've done that. Not just once and not just twice, but multiple times. The businesses we make from scratch don't generally need people to run either. We automate processes. Go to our sister site Sentia Health and look at what we've done to the insurance industry.

Now get off your keister and give us a call or send an email.

Visit http://sentiasystems.com or email info@sentiasystems.com

Monday, August 8, 2016

Big Data: Modern Day Miracle or Same Old Snake Oil?

We've been hearing a lot about Big Data in news and social media. What exactly comprises it and why is it a big deal? This wiki article says "Big data is a term for data sets that are so large or complex that traditional data processing applications are inadequate." That certainly sounds ominous, but why is it being collected and what do you use it for? 

According to my research Big Data should be able to predict when a machine will fail, identify manufacturing bottlenecks, point out waste and care variability in healthcare, stop fraud on credit card purchases, predict drive times in high volume areas, even forecast the winners of sporting events and tune race cars. That's all great but how does it happen? I heard the terms "Hadoop" and "NoSQL" a lot while researching this article, so let's dive a little deeper into the technology. 

In "Hadoop: what it is And How It Works" Brian Proffitt explains: "It's a way of storing enormous datasets across distributed clusters of servers and then running distributed analysis applications in each cluster." Great, but that doesn't really tell me much. To me, that sounds like a regular everyday cluster and that technology has been around for decades. Mr. Proffitt goes on to explain that the Hadoop File System (HDFS), the Data Processing Framework and MapReduce are the secret sauce that makes things work. So you dump your data into the HDFS and you can use MapReduce to do the data processing. Great, but where does the data actually reside? Apparently it resides on the local machine in whatever place the Hadoop developer dumps it, so you are reduced to network speeds to transfer amazingly large amounts of data from one machine to the next in the cluster. Anyone who has ever used Neflix Streaming Service knows what a stupendously bad idea that is. Here is what Mr. Proffitt has to say about MapReduce: "(it) runs as a serious of jobs, with each job essentially a separate Java application that goes out into the data and starts pulling out information as needed." 

Danger Will Robinson. Here there be monsters. So you are telling me that we are going to use procedural programming tools to solve manufacturing bottleneck problems across a distributed network? 'Horse hockey.  Sufferin' Saddle Soap.  Buffalo Chips.  BULL COOKIES!  I've used this analogy before and I'm going to use it again: If you want to find a rock about the size of a quarter, build two boxes: one with holes lightly larger than a quarter, one with holes slightly smaller than a quarter and run all the rocks in the world through both boxes. What you are left with are all the rocks in the world about the size of a quarter. This is set based programming. Procedural programming on the other hand takes the proverbial quarter and lines up all the rocks in the world and compares the size one by one. In database circles this is known as RBAR (REE-bar, like the stuff that holds concrete together) and is the acronym for ‘Row By Agonizing Row.' I have run into this literally a hundred times in my career. Would you rather build two boxes or would you rather have a pair of tweezers in one hand and quarter in the other? So what is the conclusion? 


There is no such thing as Big Data

If you can't process it with traditional databases, it can't be processed. Take whatever data you have and structure it. Yes, some NoSQL alternatives are document based. You don't need documents. Even if you have documents (like this HTML page) take the contents add it to a full text index and then you can even search the documents, without using tweezers and a quarter. You have noticed that Microsoft didn't rush out and create a new Big Data engine, haven't you? Nope, Microsoft will let you use Hadoop because they will take your money if you are foolish enough to spend it that way, but there is already a better solution than RBAR. Structuring the data is going to take about as long as that first MapReduce query, but every query after that is basically free. the second MapReduce 'job' takes precisely as long as the first one, and for the same dumb reason: procedural code running against huge amounts of data. 

So what do we get and what do we lose by using a traditional Relational Database instead of Hadoop/NoSQL? First the data has to be structured. It is going to take time to look at the data and figure out how to get it into your Relational Database Management System (RDBMS). Of course, it would take the same amount of time to get it into your Hadoop train wreck as well, so that is a wash. SQL is pretty easy to use and MapReduce is mind-bogglingly complicated. Mr. Profitt (remember him?) even stated in his article above that some map reduce instances take a SQL like language and translate it for you. That seems a little backwards. If you can describe what you are trying to do using the tools you have, why not just use the tools that you have? 

You already have a relational database. It is how the world has worked to this point. You can use SQL queries to ask your existing database questions. If you need advanced analytics, maybe you should abandon Boyce and Codd and say hello to Kimball and Inmon. Probably your data isn't big enough to need even a data warehouse (read about the Kimball and Inmon guys above) but if it is, don't just scrap the Ferrari you've had built and go buy a Yugo with a Hadoop bumper sticker. The conclusion is that the whole Big Data movement is complete snake oil designed to get you, dear reader and holder of cash, to spend money on something you don't really understand and certainly do not need.

Tuesday, August 2, 2016

The Resurrection of Small Buisness

If you haven’t noticed, we here at Sentia aren’t overly respectful of big corporate business. This is because we have been in the corporate world and we have seen how they do things and know there is a better way. We even know what this better way is.
In a previous blog, I stated that if you are in the automobile industry, you design the car, build the car or sell the car. Anyone else is simply superfluous. Yes, I know it isn’t quite that simple, but it isn’t too far off the mark either.
No, we like small business. Mom and Pop run a lean, mean machine that does precisely what it needs to do and no more. The problem is that a small business owner has to nearly work himself to death to make a living. There is little time for vision or planning when there are orders to be filled, inventory to stock and books to be balanced.
Enter the Wal-Marts of the world (stage left, appropriately). They pay subsistence wages to their employees, if even that, strong arm their suppliers and literally don’t add any value to the products they sell except proximity. Through economies of scale, not through innovation do the huge faceless corporations make any profits at all. Who pays for endless layers of corporate management who make bad decisions, endless marketing campaigns and general incompetence? You do. The consumer. Do you think GIECO has any secret that any other car insurance company doesn’t have?  It is just a huge marketing budget that you pay for.
I am going to make a prediction and then I’m going to tell you how I’ll make it come true. There is going to be a golden age of small business coming, and soon. Probably in the next 5-7 years, the small business owner will once again dominate the market place they way they used to and the big corporate chains who add no value will go the way of the woolly Mammoth.The corporations have one thing that Mom and Pop don’t and that is information. Usually they have legions of analysts, accountants and clerks typing in and sifting data to figure out exactly how to do things. Mom and Pop just can’t afford to pay people to sift through terabytes of data looking for the one nugget.
Until NowSentia takes a holistic view of a business from Accounting and Human Resources to Manufacturing and Warehousing and everything in between. With this view in mind, we can design a database that will support the entire functionality of a business and then generate an application to get the information in and out of it. This means that a new application can be created in a matter of days, or hours, not months or years. With the holistic view, you don’t need to purchase applications that don’t communicate with each other to run various departments, we automate those departments out of existence.
Envision an office or plant that manages itself.  It does everything from ordering and inventory to shipping and receiving and every step along the way, all by itself.  Payroll becomes a report. Tax returns become reports. Process management is done via the application so you can track precisely who is doing what, which step he or she is executing, how much time and material he or she is spending on it, and all the associated capital and fixed costs so that you know precisely what a particular product or service costs to produce.
Some of you might recall a little company called Braniff. For those who don’t, Braniff declared bankruptcy in 1982 due to high fuel prices and airline deregulation and then finally called it quits in 1990. The reason Braniff went out of business? They couldn’t calculate how much it costs to fly you from one spot to the other. That sounds like egregious incompetence until you find out that no airline today can tell you how much it is going to cost per seat with any degree of accuracy; how much it costs per seat to execute any given route.
It really isn’t their fault. Before now, the more complex a process became, the more inputs and outputs were required, the more time it took to develop and algorithm to describe it. The upshot of this fact is that as a process approaches infinite complexity, like calculating the cost to fly a passenger jet around the country/world, the time to solve it also approaches infinity. Sentia has broken this paradigm by generating software of nearly infinite complexity by breaking a problem down to its constituent parts, describing the various pieces in a database and then generating the code to get data in and out of that database.
If you’ve been following the blog, you have heard this story. Mark Zuckerberg has spent tens of millions (maybe hundreds of millions) of dollars and hundreds of thousands of man hours developing Facebook. Sentia took on a contract with a new client (currently in development) to combine the functionality of eBay, Craigslist, Angie’s list and Facebook and we estimated the project would take three man weeks. Three. 21 days. One developer. Kinda makes ol’ Mark look dumb doesn’t it?
We’ve made a bold prediction: The resurrection of the small business. We’ve shown you how it will happen. What is really going to bake your noodle later is when you realize that we can have economies of scale with small boutique businesses. Mom and Pop can have a big distribution center like a Wal-Mart if they get together and pool their resources. What is going to bug you even more is when you realize that Mom and Pop (and everyone else for that matter) all do business the same way, so they can share (some) information (in a very secure fashion of course) with each other and have shipments of disparate items all going the same direction at the same time go on the same plane/train/truck and it can all happen seamlessly and not wastefully send everything to Memphis first. They won’t even have to pay the big faceless corporation of UPS or FedEx.
Think about it and get back to me.

Friday, July 29, 2016

Sometimes Things Work Out Perfectly or Bypassing the MBAs

So one of my good friends and former/future band mates, Brian is a high level UNIX security guy for Lowe’s Home Improvement. He’s not only a great drummer, but plays guitar better than I do and apparently is so good at his job that they can’t/won’t move him up. In typical corporate fashion they also won’t listen to the recommendations of a guy who has been-there-and-done-that, instead taking direction from MBA type managers.
So a few weeks ago he gets a call from a former supervisor who had jumped ship and gone to The Home Depot in Atlanta. They offer to nearly double his salary and even better promise to give him some authority to implement his own suggestions. Almost too good to be true right?
So on September 9, 2014, Krebs on Security broke the news that Home depot may have been hacked an compromised millions of credit card numbers going back months to April or May of 2014. Not wanting to sign on to a sinking ship, or even worse, get “housecleaned” when upper management comes through and has to make some kind of changes to show that they are in control and on top of the situation. Yes, everyone knows they are neither in control nor on top of any situation and they are just smart enough to have a reasonable expectation of jumping out of bed in the morning and being able to find the floor in the morning.
Not only does Brian turn down the job, but he gets to work the next day to find that Lowe’s knows he has been in Atlanta looking.
Uh-Oh.  So when the MBA types confront my buddy about interviewing with the competition, Brian lets them have it. First he gives the “you are lucky this security breach wasn’t you” speech followed up with “you all couldn’t secure a piece of candy from a baby” (I’m paraphrasing of course) and finally ended up with “there is one guy in this entire organization who can help you and that is me.”
Lowe’s and behold (yea, I went there) they listen. For the first time in recorded human history the guy that actually does the work got listened to over the MBA types who walk around with dirty bums because they can’t figure out how not to have dirty bums. Brian now reports directly to Chief Information Security Officer (CISO), has his own handpicked team to lead, a budget, and best of all bypasses all the demonstrably useless levels of management between those who point direction and those who cut the gears that make the world spin.

Sometimes, things work out perfectly.

Wednesday, July 27, 2016

How To NOT Get Scammed

Ten days ago, I get an email from lokoofficefile@gmail.com asking if my company can handle website design and "do you accept credit cards or check ??" The email closes with "kindly get back to me ASAP so i can send you the job details."

The first problem with this is that web application development is what my company does. The second is the use of the word "kindly." I despise that word and it is only ever used by English as a Second Language (ESL) speakers. Third, the email address is pretty hokey. Fourth, bad grammar and punctuation. Fifth, "do you accept credit cards or check ??" No, I prefer to run my company on a pro bono basis and as such we don't like to get paid. But, business is business so I wrote back and asked him for the details. He responds:


Hi, Here is the job details
I have small scale business which i want to turn into large scale business now and my company is based on importing and exporting of Agriculture products such as Kola Nut, Gacillia Nut and Cocoa so i need a best of the best layout design for it. Can you
handle that for me ?. so i need you to check out this site but i need something more perfect than this if its possible.http://www.agroamerica.com.... the site would only be informational, so i need you to give me an estimate based on the site i

Note:
  1. I want the same number of pages with the example site i gave you to check excluding videos and blogs.
  2. I want only English language
  3. I don't have a domain yet but i want the domain name as
    thecertifiedfarmproduct.com
  4. you will be updating the site for me.
  5. i will be proving the images, logos and content for the site.
  6. i want the site up and running before ending of next month.
  7. My budget is $4000 to $8000

Kindly get back to me with:
  1. an estimate
  2. your cell phone number
  3. And will like to know if you are the owner ??

Regards

Jeff Brown



Hm. What difference does it make that I'm the owner, I answered the email and speak for the company. The company phone number is published on our site at Sentia Systems.  I responded that we can do his project and that I would send over a contract for him to sign and return and we could get started. I copied the legal department and they sent me back a contract for him to sign on the following Monday. He signed it and sent it back. I was shocked. He also sent back this response:


Monte,

Attached is the copy of the sign contract, your estimate cost meet up with my initial budget and also ready to make down payment so that you can start work on the website design for my new company and do you have a manual terminal machine for the processing of my credit card. please advice so we can proceed with deposit.
Await your response.

Thank You

Jeff Brown



Now my spidey sense is really really tingling.

Is the credit card stolen? What does he have to gain by a manual entry process? I respond that he can use his credit card to PayPal me the deposit or he can snail mail me a check. He responds:


check work for me, i will need full name and address for check mailing.

Kindly get back to me so we can get the ball rolling.


Again, with the 'kindly' that sets my teeth on edge. I reply back with "the name of the company is Sentia Systems, Inc, and the address is on the contract." I informed him that we would wait for the check to clear and then begin on his site.

I haven't heard from him since. I get up this morning to a text message from the legal department with this link detailing the exact same scam, just with a different front man.

What is the moral of the story? Like they said at the end of the pre-shift meeting on Hill Street Blues "Let's be careful out there."

Yes, I am old and I remember watching Hill Street Blues in prime time.


This post originally appeared on http://sentiasystems.com/WebLog/Details/3009, today, 7/27/2016.

Monday, July 25, 2016

Software Design: Why You Can't Do Things By Committee

Have you ever noticed that the Government in the United States doesn’t really DO anything? Well, there are lots of meetings and paper shuffled and money changing hands and decisions made, but the work is done by someone else. Yes, all you military people, I know, you are a special case, the exception that proves the rule. So it seems to me that we need a little more military, which has proven extremely effective and a little less politics. Bear with me, the following three vignettes about the original pony car, the Mustang, illustrate my point.  Don't worry if you aren't a car person, you don't have to be.  It is about the process of producing a product.

By now, you should know that we don’t talk about politics and government here, the above is simply an illustration. Here is another: In 1962 a few engineers at Ford decided that they had a vision for a new direction at the company. With several British roadsters and the Chevrolet Corvette for inspiration they designed and built a two seat, V4, mid-engine, space frame super car. They called it the Mustang after the P51 fighter from World War II. Two were produced and the second was a fully functional race car that debuted at the United States Grand Prix in 1962 at Watkins Glen. The car was too complex for regular production so the then CEO at Ford, Lee Iacocca, Instantly created a new genre of automobile by telling those same engineers to produce a new car, but use existing technology (and add a back seat) but keep the same spirit of a sports/racing tradition. In 1964 The Mustang we all know and love hit the showrooms across the nation. The new Mustang was the most successful car produced to that date in terms of velocity of sales, moving 22,000 units the first day, proving that the confluence of brilliant design and execution with strong leadership produces great results.

In 1971 ford launched a new initiative, “Project 80” to produce two new prototypes for the Mustang, the “Ohio” based on a 1970 Maverick platform and the “Arizona” based on a 1971 Pinto platform. Tens of thousands of market research calls were made and 200 handpicked potential customers said that if Ford produced the Arizona they might be interested. The same thing happened with 700 more people in Long Beach. The Arizona was the basis for the new Mustang. In early 1973 the engineers simply couldn’t figure out how to make a Pinto handle like a mustang and came up with a rubber isolation disc that averaged out the loads and dubbed the “toilet seat” for its looks. This allowed production to go forward for the 1974 model year. In September 1973 the Mustang II hit the showrooms and buyers felt betrayed. There was no fire breathing V8. A fully optioned notchback topped $4500, more than most buyers could afford to pay. Barely 18,000 cars sold in the first month, compared to over 22,000 on the first day for the 1964 Mustang.

In 1973 Ford undertook a project to consolidate the European and American versions of various cars they built and make one platform that was sporty and hold 4 or 5 passengers. The code named it The Fox. Taking the new Fox platform and running with it, engineers designed a new body with a lower nose and higher cowl that produced a 6% reduction in drag, giving better fuel economy and better performance. A McPherson strut type suspension replaced the “toilet seat” and was cheaper, more durable and rode and handled better. Because of the lessons learned in the Gas Crisis of the 70s, the Fox Mustangs did come with a 4 cylinder engine, but you could get the 302 V8 and a turbo charged 2.3L that was better balanced and weighed less that the V8, giving similar performance with better fuel mileage. From 1979 to 2005 (26 years!) Ford built and sold 4,243,284 Fox bodied Mustangs making it one of the most successful designs of all time.

What lessons can we learn from all this? First and obviously, you can’t accomplish anything great by committee, of course. You get bogged down in font size and background color and never get any real work done. Second, let the smart people do smart things. If you don’t understand what the smart people do, how they do it, or why they make the decisions they make, you shouldn’t be pointing out the directions of their efforts. Here at Sentia, we call that Manageritis, where the Manager Gland gets swollen and inflamed taking over all normal brain functions. Third, we have to come up with a way to prototype new work in some reasonable amount of time that will let us prove the worth of our new design without spending a lot of time and effort to produce a product that isn’t what the consumer either wants or needs. Ford did this in three months with the Mustang concept in 1962 and that is why we do the things we do here at Sentia. That is why we designed and built the tools to easily generate the software that our clients want and need and to easily get the data in and out of these new applications. We don’t want, and you can’t afford for us to build you a Mustang II. That is why we can do it better, faster and less expensively than anyone else.